Releases: JasperFx/marten
Releases · JasperFx/marten
V7.0.0 -- Lucky Number 7!
Highlights
- Much improved LINQ provider support, including far more performant querying through child collections
- More efficient command execution pipeline in the Marten internals
- Effectively uses Polly for transient error resiliency
- Substantial improvements for asynchronous projections
- Dynamic tenant databases
- Some support for zero downtime projection rebuilds and versioned projections
- Project Aspire integration
FetchForWriting()
improvements
Issues Resolved
https://github.com/JasperFx/marten/milestone/96?closed=1
What's Changed
- Initial .NET 8 upgrade by @oskardudycz in #2789
- The giant Linq overhaul of 2023 by @jeremydmiller in #2793
- Disabling ordering when using count() operator in Linq statement generation by @jeremydmiller in #2811
- Test verifying an old Linq bug with flitering string arrays by @jeremydmiller in #2812
- querying child collections impacts each other by @T0shik in #2674
- Add failing test for #2433 by @luboshl in #2448
- Linq Fixes for SelectMany() by @jeremydmiller in #2814
- Test to verify that Include() plus ToPagedList() works after the LINQ overhaul by @jeremydmiller in #2816
- test from Hawxy on compiled queries by @jeremydmiller in #2817
- Improved Document Deletions by @jeremydmiller in #2818
- Fix for event Linq querying if you happen to have an Event.Id member by @jeremydmiller in #2819
- Little improvement to change tracking of dirty session because someone wanted that. by @jeremydmiller in #2820
- Modified ConsoleLogger to output array parameter values by @slovely in #2821
- Added support for IsNullOrEmpty and IsNullOrWhiteSpace string operators in Linq queries by @oskardudycz in #2823
- Fixed tenant id usage within compiled queries. Closes GH-2595 by @jeremydmiller in #2826
- Test cases verifying member comparisons in Linq. by @jeremydmiller in #2827
- Fixed EventProjection to respect global ordering by @oskardudycz in #2824
- 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
- (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
- Overhaul of the execution pipeline by @jeremydmiller in #2918
- "Sticky" connection mode, doc updates, 7.0 migration guide by @jeremydmiller in #2929
- Index creation bug fixes. Closes GH-2893. Closes GH-2916. Closes GH-2914 by @jeremydmiller in #2930
- fix: Use count(*) instead of count(1) for performance reasons by @Blackclaws in #2925
- Clarify what happens with the batch file by @lamelyan in #2913
- Documentation on understanding event sourcing by @erdtsieck in #2920
- Patch implementation using pure PL/pgSQL by @mysticmind in #2923
- Add functionality to chain patch operations on multiple fields by @mysticmind in #2931
- #2943 Do not fail aggregate code generation on parallel execution by @erdtsieck in #2944
- Linq fixes for Hawxy (and V7) by @jeremydmiller in #2958
- LINQ bug fixes for a couple items around dictionaries and enum usage.… by @jeremydmiller in #2959
- Using the document Id itself for including a related document. Closes… by @jeremydmiller in #2960
- Alternative numeric revision strategy for optimistic concurrency by @jeremydmiller in #2963
- Update Vitepress by @Hawxy in #2899
- Updating to JasperFx.CodeGeneration. Closes GH-2932 by @jeremydmiller in #2969
- Got a BeforeCommitAsync() as part of async listeners. Closes GH-2962 by @jeremydmiller in #2970
- Async Daemon Overhaul for V7 -- and also a new Dynamic Tenant Database recipe by @jeremydmiller in #2954
- Blue green async projection deployments! And zero downtime too. Closes GH-1720 by @jeremydmiller in #2973
- Removed [Obsolete] and upgraded to Weasel 7.0.0. Closes GH-2806 by @jeremydmiller in #2974
- Dynamic spin of async daemons for dynamic tenant databases by @jeremydmiller in #2977
- feat(#2945): AsyncDaemonHealthCheck - add
maxSameLagTime
option by @MateuszNaKodach in #2950 - Linq fixes for Wh...
V7.0.0.rc-2
LINQ fixes for Pascal/Raphael
What's Changed
- Linq fixes for Where(x => false) by @jeremydmiller in #2981
Full Changelog: V7.0.0.rc-1...V7.0.0.rc-2
V7.0.0.rc-1
What's Changed
- Add functionality to chain patch operations on multiple fields by @mysticmind in #2931
- #2943 Do not fail aggregate code generation on parallel execution by @erdtsieck in #2944
- Linq fixes for Hawxy (and V7) by @jeremydmiller in #2958
- LINQ bug fixes for a couple items around dictionaries and enum usage.… by @jeremydmiller in #2959
- Using the document Id itself for including a related document. Closes… by @jeremydmiller in #2960
- Alternative numeric revision strategy for optimistic concurrency by @jeremydmiller in #2963
- Update Vitepress by @Hawxy in #2899
- Updating to JasperFx.CodeGeneration. Closes GH-2932 by @jeremydmiller in #2969
- Got a BeforeCommitAsync() as part of async listeners. Closes GH-2962 by @jeremydmiller in #2970
- Async Daemon Overhaul for V7 -- and also a new Dynamic Tenant Database recipe by @jeremydmiller in #2954
- Blue green async projection deployments! And zero downtime too. Closes GH-1720 by @jeremydmiller in #2973
- Removed [Obsolete] and upgraded to Weasel 7.0.0. Closes GH-2806 by @jeremydmiller in #2974
- Dynamic spin of async daemons for dynamic tenant databases by @jeremydmiller in #2977
- feat(#2945): AsyncDaemonHealthCheck - add
maxSameLagTime
option by @MateuszNaKodach in #2950
New Contributors
- @MateuszNaKodach made their first contribution in #2950
Full Changelog: 7.0.0-beta.5...V7.0.0.rc-1
7.0.0-beta.5
What's Changed
- Overhaul of the execution pipeline by @jeremydmiller in #2918
- "Sticky" connection mode, doc updates, 7.0 migration guide by @jeremydmiller in #2929
- Index creation bug fixes. Closes GH-2893. Closes GH-2916. Closes GH-2914 by @jeremydmiller in #2930
- fix: Use count(*) instead of count(1) for performance reasons by @Blackclaws in #2925
- Clarify what happens with the batch file by @lamelyan in #2913
- Documentation on understanding event sourcing by @erdtsieck in #2920
- Patch implementation using pure PL/pgSQL by @mysticmind in #2923
New Contributors
Full Changelog: 7.0.0-beta.4...7.0.0-beta.5
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