diff --git a/GitReleaseManager.yaml b/GitReleaseManager.yaml
index e0ef30dda16..41a50e6d795 100644
--- a/GitReleaseManager.yaml
+++ b/GitReleaseManager.yaml
@@ -13,6 +13,7 @@ issue-labels-exclude:
- "r: Obsolete"
- "r: Rejected"
- "r: Replaced"
+ - "r: Reverted"
- "t: Fix"
issue-labels-alias:
- name: "t: Bug"
diff --git a/ReleaseProcedure.txt b/ReleaseProcedure.txt
index bd0955b6613..305b4fac008 100644
--- a/ReleaseProcedure.txt
+++ b/ReleaseProcedure.txt
@@ -3,7 +3,7 @@ These are the tasks typically needed to create an official NHibernate release.
* In GitHub, make sure no open issues have milestone set to the release
that is about to happen (as these will show in the milestone).
- * Restore local dotnet tools: `dotnet tool restore`
+ * From inside nhibernate-core folder, restore local dotnet tools: `dotnet tool restore`
* Create a draft release in Github with GitReleaseManager. For example:
diff --git a/build-common/NHibernate.props b/build-common/NHibernate.props
index 529ecedfd41..5e27ab81d28 100644
--- a/build-common/NHibernate.props
+++ b/build-common/NHibernate.props
@@ -5,7 +5,7 @@
5.4
0
- dev
+
9.0
$(NhVersion).$(VersionPatch)
diff --git a/releasenotes.txt b/releasenotes.txt
index 527c4fb1978..6bc209ee7f3 100644
--- a/releasenotes.txt
+++ b/releasenotes.txt
@@ -1,4 +1,192 @@
-Build 5.3.14
+Build 5.4.0
+=============================
+
+Release notes - NHibernate - Version 5.4.0
+
+** Highlights
+ * NHibernate has gained three new target frameworks: .Net 6, .Net Framework 4.8 and .Net Standard 2.1. NHibernate NuGet package
+ provides them, along with the older targets, .Net Core 2.0, .Net Framework 4.6.1 and .Net Standard 2.0. These new targets allow
+ some NHibernate optimizations for applications using them. The same limitations apply for .Net 6 and .Net Standard 2.1 as for
+ .Net Core 2.0 and .Net Standard 2.0, see NHibernate 5.1.0 release notes.
+ * A new batching strategy is available, minimizing the batching memory footprint. See #2959. Using it may increase CPU usage.
+ * 201 issues were resolved in this release.
+
+ ##### Possible Breaking Changes #####
+ * Linq and criteria queries on unmapped entities will throw instead of returning an empty result list. See #1106, #1095.
+ * The second level cache UpdateTimestampsCache does not use locks anymore. This may slightly increase the number of cases
+ where stale data is returned by the query cache. See #2742.
+ * Equality and hashcode access on uninitialized persistent collections will no more trigger their loading. See #2461.
+ * DB2CoreDriver now uses named parameters instead of positional ones. See #2546.
+
+** Bug
+
+ * #3198 EntityUpdateAction increments version despite veto on update
+ * #3189 Support proxies of classes with init properties
+ * #3188 No way of detecting if AutoFlush performed in added AutoFlushEventListener
+ * #3176 Cached entity always fetches lazy properties with read-write concurrency strategy
+ * #3156 Evaluation failure when using `Nullable` without a value in LINQ
+ * #3150 LINQ query dynamic component by interface hangs the application
+ * #3109 Fix table group join issue with subclasses
+ * #3104 Inner Join fails with left Outer Join when referenced in Where clause
+ * #3076 Nested group by results in "A recognition error occured"
+ * #2968 Fix QueryStatistics.ExecutionAvgTime calculation
+ * #2827 Fix BadImageFormatException in dynamic proxies for abstract classes and interfaces
+ * #2822 "A recognition error ocurred" querying by a nullable component with more than N properties
+ * #2758 Fix AmbiguousMatchException in ClearPool with FirebirdClient 6.6.0 and above
+ * #2750 Using System.Transaction with IStatelessSession doesn't always flush batches to database
+ * #2738 Unused Left Join in LINQ throws exception
+ * #2717 MappingByCode discriminator column with string type throws exception
+ * #2675 Fix collection lazy loading with composite keys on subclass columns
+ * #2672 Linq query failure with left joins
+ * #2619 InvalidOperationException in ProxyGenerator for class with generic non-virtual method
+ * #2614 Obvious bug in two HQLQueryPlan classes with distinction Set
+ * #2594 Wrong SQL produced by DML LINQ when using a select clause for a property referencing the outer select
+ * #2555 Add spaces around concat operator
+ * #2552 One-to-one second level cache issue
+ * #2548 Mark DB2Dialect as not supporting null columns in unique constraint
+ * #2547 Fix paging in DB2Dialect
+ * #2540 Unable to use external predicate in subquery
+ * #2534 Fix asymmetrical SqlType.Equals
+ * #2454 ConditionalProjection containing the correlation to outer query fails to determine projection type
+ * #2330 join on multiple conditions
+ * #2201 Fetch Join generates incorrect SQL joins for the same entity type
+ * #2092 Projection and join fetch in hql leads to duplicated column aliases
+ * #1365 NH-3288 - Stale data checking does not work for one-to-one associations
+ * #1349 NH-3893 - HQL parse error of a query with 'left' or 'right' function
+ * #1326 NH-3622 - Fetching in query causes incorrect/missing joins in subquery
+ * #1316 NH-3530 - memory when using default_batch_fetch_size
+ * #1235 NH-2785 - StaleStateExceptions discarded on optional table
+ * #1215 NH-2208 - Error with filters on joined-subclass as many-to-one
+ * #1209 NH-2049 - Error with filters on joined-subclass as one-to-one
+ * #1180 NH-3847 - ConditionalProjection throws "Both true and false projections must return the same types" when the types are the same
+ * #1106 NH-2978 - LINQ: Queries for unmapped entity types return empty result set
+ * #1075 NH-2239 - Wrong OrderBy in generated SQL when using ICriteria, Eager fetching and order by clauses in collection mappings
+ * #1072 NH-2174 - Invalid SQL is generated for OneToMany collections
+ * #1062 NH-1893 - Trigger-Identity with Dynamic Insert throws ORA-01036 (10g)
+
+** New Feature
+
+ * #2959 Support Dynamic BatchFetchStyle
+ * #2744 Set which entities classes should never be cached, even indirectly
+ * #2737 Add more left join support
+ * #2645 Allow specifying the size of the query plan cache
+ * #2641 Avoid InvalidCastException with Oracle number high precision values
+ * #2551 Add support for joining a subquery in hql
+ * #2545 Table group joins for subclasses in Criteria
+ * #2486 Add Projections.Select in Criteria
+ * #2361 Table group joins support in hql
+
+** Improvement
+
+ * #3184 Support caching queries with autodiscovered types
+ * #3177 Disable default caching in tests
+ * #3160 Allow internal entity classess/interfaces in .NET Standard 2.0
+ * #3133 Automatically generate async code on pull request
+ * #3127 Register IType CLR types as aliases
+ * #3116 Simplify SqlGenerator.FromFragmentSeparator
+ * #3114 Exclude generated async files from Deepsource analysis
+ * #3106 Skip table group join processing for implicit join
+ * #3091 Use GitReleaseManager dotnet tool
+ * #3083 Update SHFB in order to build documentation without MSBuild
+ * #3050 Add .NET Standard 2.1 target
+ * #3027 Avoid allocations on lock in SyncCacheLock
+ * #3000 Add .NET 6 and .NET Framework 4.8 targets
+ * #2990 Use inner join instead of implicit join for implied entity joins
+ * #2957 Avoid lambda compilation as much as possible
+ * #2948 Avoid lambda compilation for member access expressions in LINQ
+ * #2947 LINQ queries triggers JIT a bit too much
+ * #2920 Add parameter type to ADO exception
+ * #2804 Projections.Conditional for CASE expressions with multiple conditions
+ * #2752 Change cascade style for DefaultDirtyCheckEventListener to persist to avoid flushing the session
+ * #2742 Remove locks from UpdateTimestampsCache
+ * #2723 Avoid double param type guessing and better NULL parameter handling in LINQ
+ * #2706 Set the rolledBack flag when disposing active transactions
+ * #2700 Potential improvement to AliasToBeanResultTransformer
+ * #2621 Regression bug with enums used as parameter for string column
+ * #2571 Default value for CancellationToken in IQueryBatch.GetResultAsync
+ * #2568 Support internal entity classes by proxy factory
+ * #2556 Register right function for Firebird and PostgreSQL
+ * #2546 Enable named parameters on DB2CoreDriver
+ * #2539 Skip no longer needed moving ON condition to Where clause in LINQ
+ * #2538 Remove no longer needed alias substitution for filtered many-to-many collection in hql
+ * #2518 Support Aggregate subqueries with paging on MS SQL Server
+ * #2510 Remove OrderByClause from query models with Contains, All and Any result operators
+ * #2492 Replace casting with NodeType checks in Criteria ExpressionProcessor
+ * #2479 When using a paged sub-query in Linq, generates incorrect SQL
+ * #2461 Remove persistent collections Equals/GetHashCode overrides
+ * #2460 Simplify single alias retrieval for SimpleProjections
+ * #2448 Avoid lambda compilation for constant and member access expressions in Criteria
+ * #1285 NH-3249 - Cannot perform HQL with "COUNT(DISTINCT Date(s.Date))"
+ * #1244 NH-2868 - Generate method of ForeignGenerator fails with stateless sessions
+ * #1095 NH-2829 - QueryOver/Criteria should throw exception when querying against unmapped class
+ * #871 NH-3115 - Should de-duplicate joins when using fetching with where in LINQ query
+ * #869 NH-2952 - Setting the SqlCheck is not supported in the ByCode mapping
+ * #809 NH-2799 - Provide the CancelQuery() method in IStatelessSession
+ * #766 NH-3813 - Eager fetch on key-many-to-one relation adds inner joins to the query
+ * #715 NH-1040 - property-ref on joined-subclasses should work or error
+
+** Task
+
+ * #3197 Update dependency System.Data.SqlClient to v4.8.5
+ * #3195 Release NHibernate 5.4
+ * #3161 Tell NuGet about the readme file
+ * #3147 Add `datetimex` keyword to SapSQLAnywhere17Dialect
+ * #3146 Run tests against Oracle XE 21c
+ * #3123 Update dependency Npgsql to v6
+ * #3121 Update dependency Microsoft.NETFramework.ReferenceAssemblies to v1.0.3
+ * #3119 Update actions/setup-dotnet action to v2
+ * #3118 Update actions/checkout action to v3
+ * #3117 Update dependency NSubstitute to v4.4.0
+ * #3111 Update dependency log4net to v2.0.15
+ * #3080 Replace Dependabot with Renovate
+ * #3063 Bump Oracle.ManagedDataAccess from 19.12.0 to 21.6.1
+ * #3061 Bump Oracle.ManagedDataAccess.Core from 2.19.120 to 3.21.61
+ * #3059 Bump log4net from 2.0.12 to 2.0.14
+ * #3057 Run tests using .NET 4.8
+ * #3017 Add deepsource.io code analysis
+ * #3002 Bump NUnit3TestAdapter from 4.1.0 to 4.2.1
+ * #2987 Disable auto rebasing for depandabot PRs
+ * #2951 Run tests on .NET 6
+ * #2946 Bump Microsoft.SourceLink.GitHub from 1.0.0 to 1.1.1
+ * #2936 Bump System.Data.SQLite.Core from 1.0.114.3 to 1.0.115.5
+ * #2911 Bump System.Data.SqlClient from 4.8.2 to 4.8.3
+ * #2898 Bump FirebirdSql.Data.FirebirdClient from 6.6.0 to 8.5.2
+ * #2887 Bump Oracle.ManagedDataAccess from 19.11.0 to 19.12.0
+ * #2886 Bump Oracle.ManagedDataAccess.Core from 2.19.110 to 2.19.120
+ * #2878 Bump System.Linq.Dynamic.Core from 1.2.10 to 1.2.12
+ * #2870 Bump MySql.Data from 8.0.25 to 8.0.26
+ * #2851 Cache Dialect in tests
+ * #2818 Bump Microsoft.Data.SqlClient from 2.1.3 to 3.0.0
+ * #2800 Bump System.Data.SQLite.Core from 1.0.113.7 to 1.0.114.2
+ * #2799 Bump Npgsql from 4.0.3 to 4.1.9
+ * #2796 Bump System.Linq.Dynamic.Core from 1.2.9 to 1.2.10
+ * #2790 Bump Microsoft.NET.Test.Sdk from 16.9.4 to 16.10.0
+ * #2786 Bump Microsoft.Data.SqlClient from 2.1.2 to 2.1.3
+ * #2771 Bump MySql.Data from 8.0.22 to 8.0.25
+ * #2770 Bump System.Data.SQLite.Core from 1.0.109.2 to 1.0.113.7
+ * #2765 Bump Microsoft.NETFramework.ReferenceAssemblies from 1.0.0 to 1.0.2
+ * #2759 Enable dependabot
+ * #2756 Update dependencies
+ * #2607 Merge 5.3.5
+ * #2605 Upgrade AsyncGenerator to 0.19.1
+ * #2593 Merge 5.3.4
+ * #2582 Remove no longer used code in QueryModelVisitor
+ * #2570 Update Relinq and LinFu links
+ * #2516 Suppress Codefactor single class per file rule for test project
+ * #2501 Upgrade MySql client and remove allowed failures on CI builds
+
+** Tests
+
+ * #3024 Enable test accessing Component's Parent property in LINQ
+ * #2921 Fix test for SAP SQL Anywhere
+ * #2848 Add Oracle to GitHub Actions
+ * #2541 LINQ SELECT tests with WHERE subquery
+ * #2489 Improve CriteriaAssertFixture
+ * #2456 Test case for #1180 and improve NullableType.ToString
+ * #2242 Test case for NH-3972 - SQL error when selecting a column of a subclass when sibling classes have a column of the same name
+
+
+Build 5.3.14
=============================
Release notes - NHibernate - Version 5.3.14