Releases: JasperFx/marten
Releases · JasperFx/marten
7.0.0 Beta 4
What's Changed
- (Mostly) using NpgsqlBatch and positional parameters behind the scenes by @jeremydmiller in #2894
- Ensuring that we don't try to check the ImplementationInstance prop f… by @jeremydmiller in #2905
- Couple LINQ fixes by @jeremydmiller in #2906
- Minor feature improvements to coordinators by @Hawxy in #2897
- feat: Allow Identity to use IEvent by @Blackclaws in #2884
New Contributors
- @Blackclaws made their first contribution in #2884
Full Changelog: 7.0.0-beta.3...7.0.0-beta.4
7.0.0-beta.3
What's Changed
- Child collection linq improvements by @jeremydmiller in #2828
- Feeling good about duplicated value array fields. Closes GH-2768 by @jeremydmiller in #2831
- Making the CreatedAt expression use DateTimeOffset. Might not even ma… by @jeremydmiller in #2832
- using snake case instead of kebab casing for derived column names w/ … by @jeremydmiller in #2833
- using Activator.CreateInstance() to build aggregates w/ no public cto… by @jeremydmiller in #2834
- Fix GH-2835 by @mysticmind in #2836
- Add functionality to support custom sql query using
with select
format by @mysticmind in #2837 - Fix NGram index on nested property throwing an exception by @mysticmind in #2839
- Improved LINQ support for Dictionaries. Closes GH-2651 by @jeremydmiller in #2840
- Ability to define multi-column indexes with anonymous object ala EF C… by @jeremydmiller in #2841
- Better exception for unusable LINQ combination. Closes GH-2649 by @jeremydmiller in #2842
- Making the aggregate projections smarter in the face of mixed Create() & Apply() methods for the same event by @jeremydmiller in #2844
- Allowing users to add LINQ order by operators with literal SQL. Close… by @jeremydmiller in #2845
- Removed FullTextIndex from Marten and used FullTextIndexDefinition instead by @oskardudycz in #2847
- Use built-in snake-casing implementation in .NET 8 by @Hawxy in #2851
- #2762 Include documentation on DevOps including database migrations by @erdtsieck in #2853
- Assorted Linq fixes by @jeremydmiller in #2857
- #2849 ApplyEventException can leak event data to logs by @erdtsieck in #2854
- Propagating tenant override filters to Include() queries. Closes GH-2618 by @jeremydmiller in #2858
- Can order by a combination of string name for the property and string… by @jeremydmiller in #2859
- #2762 menu item to documentation on DevOps by @erdtsieck in #2860
- Add support for NpgsqlDataSource by @oskardudycz in #2855
- LINQ improvements for string.ToLower()/ToUpper() and querying by arra… by @jeremydmiller in #2861
- Using the cast on descending order by. Closes GH-2862 by @jeremydmiller in #2863
- Update storage.md to remove
mt_append_event
by @gfoidl in #2868 - Added Helpdesk sample from EventSourcing.NET repo by @oskardudycz in #2870
- Making the event stream version check work for Append to empty stream… by @jeremydmiller in #2872
- Forcing function names created for flat table projections to be all l… by @jeremydmiller in #2873
- Ability to filter Include() documents. Closes GH-2444 by @jeremydmiller in #2874
- Fix docs: links and minor typos by @schnerring in #2869
- test helper for async projections. Closes GH-2624 by @jeremydmiller in #2875
- Improved LINQ Select() transformations. Closes GH-1926. Closes GH-1026 by @jeremydmiller in #2877
- Add warning about schema changes by @ParadiseFallen in #2880
New Contributors
- @ParadiseFallen made their first contribution in #2880
Full Changelog: 7.0.0-beta.2...7.0.0-beta.3
7.0.0-beta.2
What's New
- Added support for
IsNullOrEmpty
andIsNullOrWhiteSpace
string operators in Linq queries by @oskardudycz in #2823
✏️ What's Changed
- Fixed Ordering in combination Count/CountAsync in Linq queries. by @jeremydmiller in #2811
- Fixed tenant id usage within compiled queries. by @jeremydmiller in #2826
- Fixed edge scenarios when deleting multiple document types in one identity session by @jeremydmiller in #2818
- Fixed EventProjection to respect global ordering by @oskardudycz in #2824
- Made SelectMany().Distinct().Count() combination works in Linq queries by @jeremydmiller in #2814
Fixed querying events with
QueryRawEventDataOnly` with string stream identity when Id is selected* by @jeremydmiller in #2819 - Fixed unit of work list of changes to yield all information in dirty-tracking session by @jeremydmiller in #2820
- Ensured that
BadLinqExpressionException
is not being thrown anymore when using Contains in Where Linq clause. by @jeremydmiller in #2812 - Ensured that querying child collections doesn't impact each other by @T0shik in #2674
- Ensured that Include() gets proper count of documents when used with Take() in Linq queries by @luboshl in #2448
- Ensured that Include() plus ToPagedList() works after the LINQ overhaul by @jeremydmiller in #2816
- Ensured that Compiled Query with Guid list works correctly by @jeremydmiller in #2817
- Ensured that multiple members' comparisons work in Linq queries. by @jeremydmiller in #2827
📄 Docs
Full Changelog: 7.0.0-beta.1...7.0.0-beta.2
7.0.0-beta.1
✏️ What's Changed
- The giant Linq overhaul of 2023. Big improvements around handling Linq, especially around the nested queries. See the full list of closed issues. by @jeremydmiller in #2793
Full Changelog: 7.0.0-alpha.1...7.0.0-beta.1
7.0.0-alpha.1
✏️ What's Changed
- Initial .NET 8 upgrade Not much functional changes or breaking besides the peer dependency upgrade. Read more in Npgsql 8 release notes by @oskardudycz in #2789
- Dropped support for PostgreSQL older than 12.
Full Changelog: 6.4.1...7.0.0-alpha.1
6.4.1
✏️ What's Changed
- Fixed overlapping aliases for projection rebuild shard timeout parameter in
Marten.Command.Line
by @mysticmind in #2794, #2780 - Improved performance of streaming document queries into ASP.NET response. Avoided buffering the content into memory stream by streaming directly to the response body by @gfoidl in #2792
Full Changelog: v6.4.0...6.4.1
Milestone: https://github.com/JasperFx/marten/milestone/105?closed=1
6.4.0
🚀 What's New
- Added Support to stream JSON in ASP.NET with raw SQL to HttpContext by @kwestground in #2783
✏️ What's Changed
- Updated peer dependencies by minor version by @oskardudycz in #2788, #2790
- Fixed conjoined tenancy handing in Custom Aggregation Projections. A follow-up to #2497, which missed custom aggregation projections in the initial changes set. by @haefele in #2764
- Fixed event type handling order to be predictive in projection handling. There was an edge case causing code generation to generate event type handling order in a non-predictive manner. PR fixed sorting for pattern matching encapsulating logic in
EventTypePatternMatchFrame
by @svrx in #2760 - Hidden visibility of the old aggregations type by applying
EditorBrowsable
attribute by @gfoidl in #2784
📄 Docs updates and CI
- Update wording in Document Identity and the Introduction docs by @mjeaton in #2763, #2765
- Renamed
Custom Projection
toCustom Aggregations
in Event Sourcing docs menu by @gfoidl in #2774 - Replaced (internal)
Event<T>
withIEvent<T>
in docs by @gfoidl in #2776
New Contributors
- @mjeaton made their first contribution in #2763
- @haefele made their first contribution in #2764
- @kwestground made their first contribution in #2783
Full Changelog: v6.3.0...v6.4.0
Milestone: https://github.com/JasperFx/marten/milestone/104?closed=1
6.3.0
🚀 What's New
- Added optional metadata column to maintain created timestamp in documents. Previously, we had the last modified column deleted at, etc. Now you can also track when the document was created by @ribbal in #2741
- Add stream key variants of batched event query operations. Now you can do batch event queries not only if you use Guids as your stream ids. by @elexisvenator in #2742
- Add
IEvent<TEvent>
fanout overload on multistream projection. Now you can also define projections' FanOut rules to event with metadata. by @erdtsieck in #2748
✏️ What's Changed
- Making DocumentStore implement IAsyncDisposable and drain the tombstone block on dispose async. That should help in dead letter events queue resiliency by @jeremydmiller in #2757, #2737
- Applying the retry policy to opening database connections. When opening the connection and database got the transient error, the connection was not retried. Now it is. by @jeremydmiller in #2758
- Made AsyncDaemonHealthCheck constructor public to enable proper usage in ASP.NET middleware conventions. Tweak to properly handle Async Daemon health checks. by @daveHylde in #2727
- Updated peer dependencies by minor version. That includes Critter Stack libraries, and also improved concurrent indexes handling added in Weasel 6.1.2 by @oskardudycz in #2759
📄 Docs updates and CI
- Added initial documentation about integration testing by @erdtsieck in #2732
- Adjusted information about the column mapping naming convention in Flat Table Projection documentation by @ogysha in #2755
- Adjusted Async projection test with IoC injection to remove flakiness by @oskardudycz in #2756
New Contributors
Full Changelog: v6.2.0...v6.3.0
Milestone: https://github.com/JasperFx/marten/milestone/102?closed=1
6.2.0
🚀 What's New
- Added a new facility to work with IoC services in projections. Closes… by @jeremydmiller in #2722
✏️ What's Changed
- Using standard marten exception transformers in UpdateBatch.ApplyC… by @jeremydmiller in #2710
- Projection error handling improvements by @jeremydmiller in #2711
- Addressed the issue of the detector having trouble with a gap from th… by @jeremydmiller in #2717
- Fixed registration issues with AddMartenStore overload. Closes GH-2659 by @jeremydmiller in #2721
- Projection rebuild & doc improvements by @jeremydmiller in #2723
- StoreOptions.AutoCreateSchemaObjects xml doc fix by @mtech-mrajahalme in #2720
- Check for null identifier on add event. by @micahosborne in #2635
- Lazy serialization config by @jeremydmiller in #2724
- Upgrading Weasel to 6.1.1 by @jeremydmiller in #2726
📄 Docs updates
- AsyncHealthCheck docs updated by @daveHylde in #2716
New Contributors
- @mtech-mrajahalme made their first contribution in #2720
- @micahosborne made their first contribution in #2635
Full Changelog: 6.1.0...v6.2.0
6.1.0
🚀 What's New
- Added
AsyncDaemonHealthCheck
to track events handling lag in async projections. Marten now supports a customizable HealthChecks. This can be useful when running the async daemon in a containerized environment such as Kubernetes. The check will verify that no projection's progression lags more than maxEventLag behind the HighWaterMark. The default maxEventLag is 100. Read more in HealthChecks documentation by @daveHylde in #2679
✏️ What's Changed
- Fixed Marten Exceptions transformations when
NpgslCommand
is null. Now you'll see all exception details again when connection to the database cannot be established because of wrong credentials, database unavailability, etc., by @oskardudycz in #2689, #2670 - Set
DeadLetterEvent
as single tenanted for conjoined tenancy. Previously, it was following the global conventions around tenancy, which could be confusing. A dead letter event represents an event skipped for the particular projection. It references that event at a specific global event store sequence. Thus, it has to be global and does not have a tenant. If we rebuild the projection, all read models will be rebuilt using events from all tenants. Read more in the poison event detection docs. by @oskardudycz in #2690, #2686 - Enhanced ProjectionUpdateBatch disposal. There could be a race condition when the session was released, but the processing Queue wasn't completed, which caused the session to be null. Added nullable annotations to make that explicit and fixes accordingly (by checking the cancellation token and implementing disposal consistently). by @oskardudycz in #2690, #2686
- Fixed
NGramIndex
schema SQL diff generation. Now it won't be always dropped & recreated. by @mysticmind JasperFx/weasel#96, #2677 - Updated Weasel to 6.1.0 and other dependencies by @oskardudycz in #2677, #2701
- Added
readonly
modifier to fields that are never changed in various places throughout the codebase by @Lehonti in #2669
📄 Docs updates
- Rewrote introduction docs to make it more accessible and user-friendly by @oskardudycz in #2668
- Added documentation for Using Custom Grouper with Fan Out Feature for Event Projections. It's a useful feature when you want to make event transformations to fine-tune events for projections without impacting the regular event design. by @erdtsieck in #2695
- Added warning regarding connection bleed to the async-enumerable docs. Be aware not to return the
IAsyncEnumerable
out of the scope in which the session that produces it is used. This would prevent the database connection from being reused afterwards and thus lead to a connection bleed. by @FelixLorenz in #2673 - Fixed
mt_doc_deadletterevent
table name in Async Daemon docs by @GKotfis in #2700 - Added building docs steps to PR pipeline to find dead links earlier than after merge by @oskardudycz in #2671
- Excluded pure docs changes to trigger the code build (as we had dedicated pipelines for docs) by @oskardudycz in #2676
See also related Weasel 6.1.0 release notes.
New Contributors
- @Lehonti made their first contribution in #2669
- @FelixLorenz made their first contribution in #2673
- @daveHylde made their first contribution in #2679
- @GKotfis made their first contribution in #2700
- @erdtsieck made their first contribution in #2695
Full Changelog: 6.0.4...6.1.0