diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index 15824a0e03..0e15c35aa0 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -89,8 +89,8 @@ "Mocha", "NpmInstall", "Pack", - "PublicDocs", - "PublicDocsPreview", + "PublishDocs", + "PublishDocsPreview", "RebuildDb", "RecordBenchmarks", "Restore", @@ -135,8 +135,8 @@ "Mocha", "NpmInstall", "Pack", - "PublicDocs", - "PublicDocsPreview", + "PublishDocs", + "PublishDocsPreview", "RebuildDb", "RecordBenchmarks", "Restore", diff --git a/Directory.Build.props b/Directory.Build.props index e926ec4f8f..50575732d2 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,7 +1,7 @@ - 7.26.1 + 8.0.2 12.0 Jeremy D. Miller;Babu Annamalai;Oskar Dudycz;Joona-Pekka Kokko https://martendb.io/logo.png diff --git a/src/CoreTests/AssemblyInfo.cs b/src/CoreTests/AssemblyInfo.cs new file mode 100644 index 0000000000..c24077a113 --- /dev/null +++ b/src/CoreTests/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using Xunit; +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/CoreTests/CoreTests.csproj b/src/CoreTests/CoreTests.csproj index 34e4f701ec..2399010265 100644 --- a/src/CoreTests/CoreTests.csproj +++ b/src/CoreTests/CoreTests.csproj @@ -1,6 +1,6 @@ - net6.0;net7.0;net8.0 + net8.0 true false diff --git a/src/DaemonTests/DaemonTests.csproj b/src/DaemonTests/DaemonTests.csproj index dcb6bfe382..2e5a1d0b9f 100644 --- a/src/DaemonTests/DaemonTests.csproj +++ b/src/DaemonTests/DaemonTests.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 latest diff --git a/src/DocumentDbTests/AssemblyInfo.cs b/src/DocumentDbTests/AssemblyInfo.cs new file mode 100644 index 0000000000..c24077a113 --- /dev/null +++ b/src/DocumentDbTests/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using Xunit; +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/DocumentDbTests/DocumentDbTests.csproj b/src/DocumentDbTests/DocumentDbTests.csproj index 7a0972871e..c1b2535056 100644 --- a/src/DocumentDbTests/DocumentDbTests.csproj +++ b/src/DocumentDbTests/DocumentDbTests.csproj @@ -1,6 +1,6 @@ - net6.0;net7.0;net8.0 + net8.0 true false diff --git a/src/EventSourceWorker/EventSourceWorker.csproj b/src/EventSourceWorker/EventSourceWorker.csproj index e28a2b499f..71f89b6aa0 100644 --- a/src/EventSourceWorker/EventSourceWorker.csproj +++ b/src/EventSourceWorker/EventSourceWorker.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 dotnet-EventSourceWorker-01BE20B5-3C2D-434B-8822-823B56E3F401 enable diff --git a/src/EventSourcingTests/AssemblyInfo.cs b/src/EventSourcingTests/AssemblyInfo.cs new file mode 100644 index 0000000000..c24077a113 --- /dev/null +++ b/src/EventSourcingTests/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using Xunit; +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/EventSourcingTests/EventSourcingTests.csproj b/src/EventSourcingTests/EventSourcingTests.csproj index 76bd70d0c2..74598a12d0 100644 --- a/src/EventSourcingTests/EventSourcingTests.csproj +++ b/src/EventSourcingTests/EventSourcingTests.csproj @@ -1,6 +1,6 @@ - net6.0;net7.0;net8.0 + net8.0 true false diff --git a/src/IssueService/IssueService.csproj b/src/IssueService/IssueService.csproj index 6daf9ce288..902fa4b2ca 100644 --- a/src/IssueService/IssueService.csproj +++ b/src/IssueService/IssueService.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 diff --git a/src/LinqTests/LinqTests.csproj b/src/LinqTests/LinqTests.csproj index d7b5357e5b..68316948b2 100644 --- a/src/LinqTests/LinqTests.csproj +++ b/src/LinqTests/LinqTests.csproj @@ -1,6 +1,6 @@ - net6.0;net7.0;net8.0 + net8.0 true false diff --git a/src/Marten.AspNetCore.Testing/AssemblyInfo.cs b/src/Marten.AspNetCore.Testing/AssemblyInfo.cs new file mode 100644 index 0000000000..c24077a113 --- /dev/null +++ b/src/Marten.AspNetCore.Testing/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using Xunit; +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/Marten.AspNetCore.Testing/Marten.AspNetCore.Testing.csproj b/src/Marten.AspNetCore.Testing/Marten.AspNetCore.Testing.csproj index 7c33197e66..571d113690 100644 --- a/src/Marten.AspNetCore.Testing/Marten.AspNetCore.Testing.csproj +++ b/src/Marten.AspNetCore.Testing/Marten.AspNetCore.Testing.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 false diff --git a/src/Marten.AspNetCore/Marten.AspNetCore.csproj b/src/Marten.AspNetCore/Marten.AspNetCore.csproj index d2c63f2cae..38b78f77f6 100644 --- a/src/Marten.AspNetCore/Marten.AspNetCore.csproj +++ b/src/Marten.AspNetCore/Marten.AspNetCore.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 Helpers for Marten-backed AspNetCore applications 7.0.0-beta.5 true diff --git a/src/Marten.CommandLine.Tests/Marten.CommandLine.Tests.csproj b/src/Marten.CommandLine.Tests/Marten.CommandLine.Tests.csproj index 065abe2855..f40dd44f6d 100644 --- a/src/Marten.CommandLine.Tests/Marten.CommandLine.Tests.csproj +++ b/src/Marten.CommandLine.Tests/Marten.CommandLine.Tests.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 enable enable false diff --git a/src/Marten.CommandLine/Marten.CommandLine.csproj b/src/Marten.CommandLine/Marten.CommandLine.csproj index 6f46518b82..fb683daad6 100644 --- a/src/Marten.CommandLine/Marten.CommandLine.csproj +++ b/src/Marten.CommandLine/Marten.CommandLine.csproj @@ -2,7 +2,7 @@ Command line tooling for Marten - net6.0;net7.0;net8.0 + net8.0 false false false diff --git a/src/Marten.NodaTime.Testing/AssemblyInfo.cs b/src/Marten.NodaTime.Testing/AssemblyInfo.cs index fe1d771a4a..c24077a113 100644 --- a/src/Marten.NodaTime.Testing/AssemblyInfo.cs +++ b/src/Marten.NodaTime.Testing/AssemblyInfo.cs @@ -1,2 +1,2 @@ using Xunit; -[assembly: CollectionBehavior(DisableTestParallelization = false)] \ No newline at end of file +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/Marten.NodaTime.Testing/Marten.NodaTime.Testing.csproj b/src/Marten.NodaTime.Testing/Marten.NodaTime.Testing.csproj index 3b155abfd9..5827066628 100644 --- a/src/Marten.NodaTime.Testing/Marten.NodaTime.Testing.csproj +++ b/src/Marten.NodaTime.Testing/Marten.NodaTime.Testing.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0;net8.0 + net8.0 Marten.NodaTimePlugin.Testing diff --git a/src/Marten.NodaTime/Marten.NodaTime.csproj b/src/Marten.NodaTime/Marten.NodaTime.csproj index 2f1208d502..a54c6faad2 100644 --- a/src/Marten.NodaTime/Marten.NodaTime.csproj +++ b/src/Marten.NodaTime/Marten.NodaTime.csproj @@ -2,7 +2,7 @@ NodaTime extension for Marten 7.0.0-beta.5 - net6.0;net7.0;net8.0 + net8.0 true true true diff --git a/src/Marten.PLv8.Testing/AssemblyInfo.cs b/src/Marten.PLv8.Testing/AssemblyInfo.cs new file mode 100644 index 0000000000..c24077a113 --- /dev/null +++ b/src/Marten.PLv8.Testing/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using Xunit; +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/Marten.PLv8.Testing/Marten.PLv8.Testing.csproj b/src/Marten.PLv8.Testing/Marten.PLv8.Testing.csproj index c9291f63b7..3bca2d1283 100644 --- a/src/Marten.PLv8.Testing/Marten.PLv8.Testing.csproj +++ b/src/Marten.PLv8.Testing/Marten.PLv8.Testing.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 false diff --git a/src/Marten.PLv8/Marten.PLv8.csproj b/src/Marten.PLv8/Marten.PLv8.csproj index 91529f6be2..3126f26e44 100644 --- a/src/Marten.PLv8/Marten.PLv8.csproj +++ b/src/Marten.PLv8/Marten.PLv8.csproj @@ -3,7 +3,7 @@ Document transforms and patching extension for Marten 7.0.0-beta.5 - net6.0;net7.0;net8.0 + net8.0 true true true diff --git a/src/Marten.Testing.OtherAssembly/Marten.Testing.OtherAssembly.csproj b/src/Marten.Testing.OtherAssembly/Marten.Testing.OtherAssembly.csproj index 900229155b..139db446de 100644 --- a/src/Marten.Testing.OtherAssembly/Marten.Testing.OtherAssembly.csproj +++ b/src/Marten.Testing.OtherAssembly/Marten.Testing.OtherAssembly.csproj @@ -2,7 +2,7 @@ Dummy project for test scenario - net6.0;net7.0;net8.0 + net8.0 false false false diff --git a/src/Marten.Testing.ThirdAssembly/Marten.Testing.ThirdAssembly.csproj b/src/Marten.Testing.ThirdAssembly/Marten.Testing.ThirdAssembly.csproj index 900229155b..139db446de 100644 --- a/src/Marten.Testing.ThirdAssembly/Marten.Testing.ThirdAssembly.csproj +++ b/src/Marten.Testing.ThirdAssembly/Marten.Testing.ThirdAssembly.csproj @@ -2,7 +2,7 @@ Dummy project for test scenario - net6.0;net7.0;net8.0 + net8.0 false false false diff --git a/src/Marten.Testing/AssemblyInfo.cs b/src/Marten.Testing/AssemblyInfo.cs new file mode 100644 index 0000000000..c24077a113 --- /dev/null +++ b/src/Marten.Testing/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using Xunit; +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/Marten.Testing/Marten.Testing.csproj b/src/Marten.Testing/Marten.Testing.csproj index 29122173b4..84ca576008 100644 --- a/src/Marten.Testing/Marten.Testing.csproj +++ b/src/Marten.Testing/Marten.Testing.csproj @@ -1,6 +1,6 @@  - net6.0;net7.0;net8.0 + net8.0 true false diff --git a/src/Marten/Events/EventGraph.Actions.cs b/src/Marten/Events/EventGraph.Actions.cs index 6fd1743a56..98801437d5 100644 --- a/src/Marten/Events/EventGraph.Actions.cs +++ b/src/Marten/Events/EventGraph.Actions.cs @@ -1,12 +1,13 @@ using System; using System.Linq; +using JasperFx.Core; using Marten.Internal.Sessions; namespace Marten.Events; public partial class EventGraph { - internal StreamAction Append(DocumentSessionBase session, Guid stream, params object[] events) + internal StreamAction Append(DocumentSessionBase session, Guid stream, DateTimeOffset? backfillTimestamp = null, params object[] events) { EnsureAsGuidStorage(session); @@ -22,6 +23,11 @@ internal StreamAction Append(DocumentSessionBase session, Guid stream, params ob return e; }).ToArray(); + if (backfillTimestamp is not null) + { + wrapped.Each(x => x.Timestamp = backfillTimestamp.Value); + } + if (session.WorkTracker.TryFindStream(stream, out var eventStream)) { eventStream.AddEvents(wrapped); @@ -37,7 +43,7 @@ internal StreamAction Append(DocumentSessionBase session, Guid stream, params ob return eventStream; } - internal StreamAction Append(DocumentSessionBase session, string stream, params object[] events) + internal StreamAction Append(DocumentSessionBase session, string stream, DateTimeOffset? backfillTimestamp = null, params object[] events) { EnsureAsStringStorage(session); @@ -53,6 +59,11 @@ internal StreamAction Append(DocumentSessionBase session, string stream, params return e; }).ToArray(); + if (backfillTimestamp is not null) + { + wrapped.Each(x => x.Timestamp = backfillTimestamp.Value); + } + if (session.WorkTracker.TryFindStream(stream, out var eventStream)) { eventStream.AddEvents(wrapped); diff --git a/src/Marten/Events/EventStore.Append.cs b/src/Marten/Events/EventStore.Append.cs index e88c313955..556db426cc 100644 --- a/src/Marten/Events/EventStore.Append.cs +++ b/src/Marten/Events/EventStore.Append.cs @@ -7,33 +7,33 @@ namespace Marten.Events; internal partial class EventStore { - public StreamAction Append(Guid stream, IEnumerable events) + public StreamAction Append(Guid stream, IEnumerable events, DateTimeOffset? backfillTimestamp = null) { //TODO NRT: We're ignoring null here as to not unintentionally change any downstream behaviour - Replace with null guards in the future. - return Append(stream, events?.ToArray()!); + return Append(stream, backfillTimestamp, events?.ToArray()!); } - public StreamAction Append(Guid stream, params object[] events) + public StreamAction Append(Guid stream, DateTimeOffset? backfillTimestamp = null, params object[] events) { - return _store.Events.Append(_session, stream, events); + return _store.Events.Append(_session, stream,backfillTimestamp, events); } - public StreamAction Append(string stream, IEnumerable events) + public StreamAction Append(string stream, IEnumerable events, DateTimeOffset? backfillTimestamp = null) { - return Append(stream, events?.ToArray()!); + return Append(stream, backfillTimestamp, events?.ToArray()!); } - public StreamAction Append(string stream, params object[] events) + public StreamAction Append(string stream, DateTimeOffset? backfillTimestamp = null, params object[] events) { - return _store.Events.Append(_session, stream, events); + return _store.Events.Append(_session, stream,backfillTimestamp, events); } - public StreamAction Append(Guid stream, long expectedVersion, IEnumerable events) + public StreamAction Append(Guid stream, long expectedVersion, IEnumerable events, DateTimeOffset? backfillTimestamp = null) { - return Append(stream, expectedVersion, events?.ToArray()!); + return Append(stream, expectedVersion, backfillTimestamp, events?.ToArray()!); } - public StreamAction Append(Guid stream, long expectedVersion, params object[] events) + public StreamAction Append(Guid stream, long expectedVersion, DateTimeOffset? backfillTimestamp = null, params object[] events) { var eventStream = Append(stream, events); eventStream.ExpectedVersionOnServer = expectedVersion - eventStream.Events.Count; @@ -45,14 +45,14 @@ public StreamAction Append(Guid stream, long expectedVersion, params object[] ev return eventStream; } - public StreamAction Append(string stream, long expectedVersion, IEnumerable events) + public StreamAction Append(string stream, long expectedVersion, IEnumerable events, DateTimeOffset? backfillTimestamp = null) { - return Append(stream, expectedVersion, events?.ToArray()!); + return Append(stream, expectedVersion, backfillTimestamp, events?.ToArray()!); } - public StreamAction Append(string stream, long expectedVersion, params object[] events) + public StreamAction Append(string stream, long expectedVersion, DateTimeOffset? backfillTimestamp = null, params object[] events) { - var eventStream = Append(stream, events); + var eventStream = Append(stream, events, backfillTimestamp); eventStream.ExpectedVersionOnServer = expectedVersion - eventStream.Events.Count; return eventStream; diff --git a/src/Marten/Events/IEventOperations.cs b/src/Marten/Events/IEventOperations.cs index 1267fdc6be..555c1327ea 100644 --- a/src/Marten/Events/IEventOperations.cs +++ b/src/Marten/Events/IEventOperations.cs @@ -10,28 +10,28 @@ public interface IEventOperations /// /// /// - StreamAction Append(Guid stream, IEnumerable events); + StreamAction Append(Guid stream, IEnumerable events, DateTimeOffset? backfillTimestamp = null); /// /// Append one or more events in order to an existing stream /// /// /// - StreamAction Append(Guid stream, params object[] events); + StreamAction Append(Guid stream, DateTimeOffset? backfillTimestamp = null, params object[] events); /// /// Append one or more events in order to an existing stream /// /// /// - StreamAction Append(string stream, IEnumerable events); + StreamAction Append(string stream, IEnumerable events, DateTimeOffset? backfillTimestamp = null); /// /// Append one or more events in order to an existing stream /// /// /// - StreamAction Append(string stream, params object[] events); + StreamAction Append(string stream, DateTimeOffset? backfillTimestamp = null, params object[] events); /// /// Append one or more events in order to an existing stream and verify that maximum event id for the stream @@ -40,7 +40,7 @@ public interface IEventOperations /// /// Expected maximum event version after append /// - StreamAction Append(Guid stream, long expectedVersion, params object[] events); + StreamAction Append(Guid stream, long expectedVersion, DateTimeOffset? backfillTimestamp = null, params object[] events); /// /// Append one or more events in order to an existing stream and verify that maximum event id for the stream @@ -49,7 +49,7 @@ public interface IEventOperations /// /// Expected maximum event version after append /// - StreamAction Append(string stream, long expectedVersion, IEnumerable events); + StreamAction Append(string stream, long expectedVersion, IEnumerable events, DateTimeOffset? backfillTimestamp = null); /// /// Append one or more events in order to an existing stream and verify that maximum event id for the stream @@ -58,7 +58,7 @@ public interface IEventOperations /// /// Expected maximum event version after append /// - StreamAction Append(string stream, long expectedVersion, params object[] events); + StreamAction Append(string stream, long expectedVersion, DateTimeOffset? backfillTimestamp = null, params object[] events); /// /// Creates a new event stream based on a user-supplied Guid and appends the events in order to the new stream diff --git a/src/Marten/Events/IEventStore.cs b/src/Marten/Events/IEventStore.cs index a51d881f2f..ca6c34d2dc 100644 --- a/src/Marten/Events/IEventStore.cs +++ b/src/Marten/Events/IEventStore.cs @@ -16,7 +16,7 @@ public interface IEventStore: IEventOperations, IQueryEventStore /// /// Expected maximum event version after append /// - StreamAction Append(Guid stream, long expectedVersion, IEnumerable events); + StreamAction Append(Guid stream, long expectedVersion, IEnumerable events, DateTimeOffset? backfillTimestamp = null); /// /// Creates a new event stream based on a user-supplied Guid and appends the events in order to the new stream diff --git a/src/Marten/Events/Schema/EventTableColumn.cs b/src/Marten/Events/Schema/EventTableColumn.cs index b33967949e..4a343450a2 100644 --- a/src/Marten/Events/Schema/EventTableColumn.cs +++ b/src/Marten/Events/Schema/EventTableColumn.cs @@ -19,7 +19,8 @@ internal class EventTableColumn: TableColumn, IEventTableColumn { private readonly Expression> _eventMemberExpression; - public EventTableColumn(string name, Expression> eventMemberExpression): base(name, "varchar") + public + EventTableColumn(string name, Expression> eventMemberExpression): base(name, "varchar") { _eventMemberExpression = eventMemberExpression; Member = MemberFinder.Determine(eventMemberExpression).Single(); diff --git a/src/Marten/Events/Schema/EventsTable.cs b/src/Marten/Events/Schema/EventsTable.cs index bde1cf6d31..163fd56339 100644 --- a/src/Marten/Events/Schema/EventsTable.cs +++ b/src/Marten/Events/Schema/EventsTable.cs @@ -21,8 +21,7 @@ public EventsTable(EventGraph events): base(new PostgresqlObjectName(events.Data AddColumn(new VersionColumn()); AddColumn(); AddColumn(); - AddColumn(new EventTableColumn("timestamp", x => x.Timestamp)) - .NotNull().DefaultValueByString("(now())"); + AddColumn(new EventTableColumn("timestamp", x => x.Timestamp)).NotNull().DefaultValueByString("(now())"); AddColumn(); @@ -122,6 +121,7 @@ internal IList SelectColumns() var data = columns.OfType().Single(); var typeName = columns.OfType().Single(); var dotNetTypeName = columns.OfType().Single(); + var timestamp = columns.OfType().Single(x => x.Name == "timestamp"); columns.Remove(data); columns.Insert(0, data); @@ -129,6 +129,8 @@ internal IList SelectColumns() columns.Insert(1, typeName); columns.Remove(dotNetTypeName); columns.Insert(2, dotNetTypeName); + columns.Remove(timestamp); + columns.Insert(3, timestamp); return columns; } diff --git a/src/Marten/Events/Schema/StreamsTable.cs b/src/Marten/Events/Schema/StreamsTable.cs index 19fd0fd5e0..bdcaa9f511 100644 --- a/src/Marten/Events/Schema/StreamsTable.cs +++ b/src/Marten/Events/Schema/StreamsTable.cs @@ -39,7 +39,7 @@ public StreamsTable(EventGraph events): base(new PostgresqlObjectName(events.Dat AddColumn(new StreamTableColumn("timestamp", x => x.Timestamp) { - Type = "timestamptz", Writes = false, AllowNulls = false, DefaultExpression = "(now())" + Type = "timestamptz", Writes = true, AllowNulls = false, DefaultExpression = "(now())" }); @@ -48,7 +48,7 @@ public StreamsTable(EventGraph events): base(new PostgresqlObjectName(events.Dat AddColumn(new StreamTableColumn("created", x => x.Created) { - Type = "timestamptz", Writes = false, AllowNulls = false, DefaultExpression = "(now())" + Type = "timestamptz", Writes = true, AllowNulls = false, DefaultExpression = "(now())" }); if (events.TenancyStyle != TenancyStyle.Conjoined) diff --git a/src/Marten/Events/StreamAction.cs b/src/Marten/Events/StreamAction.cs index d651e18600..fbe0e9e417 100644 --- a/src/Marten/Events/StreamAction.cs +++ b/src/Marten/Events/StreamAction.cs @@ -112,6 +112,20 @@ protected StreamAction(Guid id, string key, StreamActionType actionType) /// public DateTimeOffset? Created { get; internal set; } + /// + /// Support for backfilling events into the stream + /// + /// + /// + /// + public StreamAction WithBackfill(DateTimeOffset? created = null, DateTimeOffset? timestamp = null) + { + Created = created ?? Created; + Timestamp = timestamp ?? Timestamp; + + return this; + } + internal StreamAction AddEvents(IReadOnlyList events) { _events.AddRange(events); @@ -341,7 +355,7 @@ private void applyQuickMetadata(EventGraph graph, IMartenSession session, DateTi } @event.TenantId = session.TenantId; - @event.Timestamp = timestamp; + @event.Timestamp = @event.Timestamp == default ? timestamp : @event.Timestamp; ProcessMetadata(@event, graph, session); } @@ -365,7 +379,7 @@ private void applyRichMetadata(long currentVersion, EventGraph graph, Queue events) + public StreamAction Append(Guid stream, IEnumerable events, DateTimeOffset? backfillTimestamp = null) { var step = action(e => e.Append(stream, events)); if (events.Count() > 3) @@ -24,7 +24,7 @@ public StreamAction Append(Guid stream, IEnumerable events) return StreamAction.Append(_store.Events, stream, events); } - public StreamAction Append(Guid stream, params object[] events) + public StreamAction Append(Guid stream, DateTimeOffset? backfillTimestamp = null, params object[] events) { var step = action(e => e.Append(stream, events)); if (events.Count() > 3) @@ -39,7 +39,7 @@ public StreamAction Append(Guid stream, params object[] events) return StreamAction.Append(_store.Events, stream, events); } - public StreamAction Append(string stream, IEnumerable events) + public StreamAction Append(string stream, IEnumerable events, DateTimeOffset? backfillTimestamp = null) { var step = action(e => e.Append(stream, events)); if (events.Count() > 3) @@ -54,7 +54,7 @@ public StreamAction Append(string stream, IEnumerable events) return StreamAction.Append(_store.Events, stream, events); } - public StreamAction Append(string stream, params object[] events) + public StreamAction Append(string stream, DateTimeOffset? backfillTimestamp = null, params object[] events) { var step = action(e => e.Append(stream, events)); if (events.Count() > 3) @@ -69,9 +69,9 @@ public StreamAction Append(string stream, params object[] events) return StreamAction.Append(_store.Events, stream, events); } - public StreamAction Append(Guid stream, long expectedVersion, params object[] events) + public StreamAction Append(Guid stream, long expectedVersion, DateTimeOffset? backfillTimestamp = null, params object[] events) { - var step = action(e => e.Append(stream, expectedVersion, events)); + var step = action(e => e.Append(stream, expectedVersion,backfillTimestamp, events)); if (events.Count() > 3) { step.Description = $"Append({stream}, {expectedVersion}, events)"; @@ -85,7 +85,7 @@ public StreamAction Append(Guid stream, long expectedVersion, params object[] ev return StreamAction.Append(_store.Events, stream, events); } - public StreamAction Append(string stream, long expectedVersion, IEnumerable events) + public StreamAction Append(string stream, long expectedVersion, IEnumerable events, DateTimeOffset? backfillTimestamp = null) { var step = action(e => e.Append(stream, expectedVersion, events)); if (events.Count() > 3) @@ -101,7 +101,7 @@ public StreamAction Append(string stream, long expectedVersion, IEnumerable e.Append(stream, expectedVersion, events)); if (events.Count() > 3) diff --git a/src/Marten/Marten.csproj b/src/Marten/Marten.csproj index ed0a36c817..4229de0fc7 100644 --- a/src/Marten/Marten.csproj +++ b/src/Marten/Marten.csproj @@ -1,7 +1,7 @@ .NET Transactional Document DB and Event Store on PostgreSQL - net6.0;net7.0;net8.0 + net8.0 true true true diff --git a/src/MartenBenchmarks/MartenBenchmarks.csproj b/src/MartenBenchmarks/MartenBenchmarks.csproj index a48c53b7e4..85d63e9b08 100644 --- a/src/MartenBenchmarks/MartenBenchmarks.csproj +++ b/src/MartenBenchmarks/MartenBenchmarks.csproj @@ -1,6 +1,6 @@ - net6.0;net7.0;net8.0 + net8.0 Exe false false diff --git a/src/MultiTenancyTests/MultiTenancyTests.csproj b/src/MultiTenancyTests/MultiTenancyTests.csproj index 64c6e21ffc..72ddf07115 100644 --- a/src/MultiTenancyTests/MultiTenancyTests.csproj +++ b/src/MultiTenancyTests/MultiTenancyTests.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 true false diff --git a/src/PatchingTests/PatchingTests.csproj b/src/PatchingTests/PatchingTests.csproj index c437a6a1fa..eb604ecb03 100644 --- a/src/PatchingTests/PatchingTests.csproj +++ b/src/PatchingTests/PatchingTests.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 false diff --git a/src/StressTests/StressTests.csproj b/src/StressTests/StressTests.csproj index eaec47217c..da14c8d63a 100644 --- a/src/StressTests/StressTests.csproj +++ b/src/StressTests/StressTests.csproj @@ -1,6 +1,6 @@ - net6.0;net7.0;net8.0 + net8.0 true false diff --git a/src/TestingSupport/TestingSupport.csproj b/src/TestingSupport/TestingSupport.csproj index 4936c7bf8c..6669e6a228 100644 --- a/src/TestingSupport/TestingSupport.csproj +++ b/src/TestingSupport/TestingSupport.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net8.0 enable enable default diff --git a/src/ValueTypeTests/AssemblyInfo.cs b/src/ValueTypeTests/AssemblyInfo.cs new file mode 100644 index 0000000000..c24077a113 --- /dev/null +++ b/src/ValueTypeTests/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using Xunit; +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file