From aff2e59584262163fdf0932e7c76a7884f14365e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?=
<12201973+fredericdelaporte@users.noreply.github.com>
Date: Sun, 31 Aug 2025 18:33:31 +0200
Subject: [PATCH 1/6] Release 5.6.0
And upgrade the GitReleaseManager tool
---
ReleaseProcedure.txt | 2 +-
build-common/NHibernate.props | 2 +-
releasenotes.txt | 103 +++++++++++++++++++++++++++++++++-
3 files changed, 104 insertions(+), 3 deletions(-)
diff --git a/ReleaseProcedure.txt b/ReleaseProcedure.txt
index 305b4fac008..b86ce96b9e6 100644
--- a/ReleaseProcedure.txt
+++ b/ReleaseProcedure.txt
@@ -7,7 +7,7 @@ These are the tasks typically needed to create an official NHibernate release.
* Create a draft release in Github with GitReleaseManager. For example:
-dotnet gitreleasemanager create -o nhibernate -r nhibernate-core -m 5.3 --token yourGitHubTokenWithRepoScope
+dotnet gitreleasemanager create -o nhibernate -r nhibernate-core -m 5.3 --token yourGitHubTokenWithRepoContentWritePermission
(Adjust the -m milestone parameter above, and add "-c branchname" if
releasing another branch than master)
diff --git a/build-common/NHibernate.props b/build-common/NHibernate.props
index 09d85864c70..8385e5451f3 100644
--- a/build-common/NHibernate.props
+++ b/build-common/NHibernate.props
@@ -5,7 +5,7 @@
5.6
0
- dev
+
12.0
$(NhVersion).$(VersionPatch)
diff --git a/releasenotes.txt b/releasenotes.txt
index 33e7829f17a..5de35402693 100644
--- a/releasenotes.txt
+++ b/releasenotes.txt
@@ -1,4 +1,105 @@
-Build 5.5.3
+Build 5.6.0
+=============================
+
+Release notes - NHibernate - Version 5.6.0
+
+ ##### Possible Breaking Changes #####
+ * A thread synchronization timeout may now occur in case of transaction scope timeout, throwing
+ an additional exception. The additional throw can be disabled through the new setting
+ `transaction.ignore_session_synchronization_failures`. See #3355.
+ * The default value of `transaction.system_completion_lock_timeout` has been lowered from 5000
+ (5 seconds) to 1000 (1 second). See #3355.
+ * Binary serializations of a session factory or a session from previous versions of NHibernate
+ will not be deserializable with NHibernate 5.6.
+
+68 issues were resolved in this release.
+
+** Bug
+
+ * #3643 Collection cache lookup failure with enum keys
+ * #3631 Missing version update on dirty collection with another property having optimistic-lock false
+ * #3618 ISQLQuery.ExecuteUpdate produces an exception in certain cases
+ * #3602 Unable to implement custom tuplizer due to internal constructor
+ * #3557 Fix configuration order in tests
+ * #3546 Fix incorrect import in DynamicClassFixture
+ * #3525 Querying Seconds on DateTime(Offset) can cause issues in e.g PostgreSQL
+ * #3523 ScaleDefined is not set by SqlType ctor
+ * #3519 Fix reference errors in XML comments
+ * #3518 Add workaround for Rider to see the Antlr3 generated files at design time
+ * #3498 collection [CollectionKey[]] not located in load context
+ * #3480 Fix null reference exception when running tests with Npgsql 8
+ * #3474 Unwanted implied commits may occur for Oracle and MySql
+ * #3464 Remove duplicate entry in dialects documentation
+ * #3424 Exception when using Future to load an entity with no-lazy children
+ * #3421 Empty dynamic components cause phantom updates
+ * #3355 InvalidOperationException on SequencedHashMap.OrderedEnumerator.MoveNext
+
+** New Feature
+
+ * #3624 Add SybaseASE16Dialect with LIMIT and OFFSET pagination support
+ * #3559 Add new DB2NetDriver and obsolete DB2CoreDriver
+ * #3556 Add support for .NET 8 Math functions
+ * #3461 Support for DbBatch
+
+** Improvement
+
+ * #3687 Relax collection-id mapping
+ * #3682 InternalsVisibleTo NHibernate.Test
+ * #3676 When referencing a composite-id in Linq, the fkey table is wrongly joined
+ * #3657 Allow thread safe usage of SessionFactoryObjectFactory
+ * #3649 Improve some sparse arrays
+ * #3640 Some string.Intern's for minimizing duplicate strings count
+ * #3610 Eliminate memory allocations in GuidCombGenerator under .NET 8+
+ * #3513 Int32Type: avoid unnecessary boxing for common cases
+ * #3486 LinkedHashMap creates enormous amount of memory traffic
+ * #3475 Adjust the doc about flush on commit
+ * #3473 The sql type of the CultureInfoType is too short
+ * #854 NH-1284 - Initialization of nullable structs component
+
+** Task
+
+ * #3696 Release 5.6.0
+ * #3694 Merge 5.5.3 into master
+ * #3690 Update actions/checkout action to v5
+ * #3689 Update Microsoft.Data.SqlClient to v5
+ * #3619 Update dependency gitreleasemanager.tool to 0.18.0
+ * #3612 Update dependency log4net to v3
+ * #3596 Migrate renovate config
+ * #3594 Update dependency NUnit3TestAdapter to 4.6.0
+ * #3593 Update dependency NUnit.Console to v3.18.1
+ * #3590 Remove Microsoft.SourceLink.GitHub
+ * #3581 Update dependency NUnit.Analyzers to v4.2.0
+ * #3580 Update dependency log4net to v2.0.17
+ * #3579 Merge 5.5.2 into master
+ * #3574 Remove usage of NHIBERNATE_BOT_TOKEN
+ * #3570 Fixing a typo in PersistEvent.cs
+ * #3562 Migrate .NET Core PostgreSQL Windows tests from AppVeyor to GitHub Actions
+ * #3561 Migrate .NET Core SQLite Windows tests from AppVeyor to GitHub Actions
+ * #3555 Obsolete IValue SetTypeUsingReflection & associated methods
+ * #3553 Obsolete ForeignKeys.IsNotTransientSlow
+ * #3552 Cache zero values to reduce boxing in PrimitiveType.DefaultValue
+ * #3549 Obsolete NullableType.Get by column name
+ * #3543 Obsolete JoinedEnumerable
+ * #3542 Add a security policy
+ * #3533 Update Iesi.Collections to 4.1.1
+ * #3532 Remove mentions of Prevalence cache from documentation
+ * #3522 Fix NUnit2050 warnings
+ * #3521 Update dependency NUnit.Analyzers to v4.1.0
+ * #3510 Merge 5.5.1 into master
+ * #3501 Update dependency NUnit.Console to v3.17.0
+ * #3494 Add .NET 8.0 target
+ * #3492 Add NUnit analyzers
+ * #3484 Modernize the test case example
+ * #3479 Update actions/setup-dotnet action to v4
+ * #3477 Update dependency NSubstitute to v5.1.0
+ * #3372 Update dependency gitreleasemanager.tool to v0.17.0
+
+** Tests
+
+ * #3309 Test Case for Invalid SQL with property-ref on property using a formula
+
+
+Build 5.5.3
=============================
Release notes - NHibernate - Version 5.5.3
From ae40d3b17c957ea77b90552828d32cc617770f1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?=
<12201973+fredericDelaporte@users.noreply.github.com>
Date: Thu, 25 Sep 2025 08:07:33 +0200
Subject: [PATCH 2/6] Update security.md
---
ReleaseProcedure.txt | 2 ++
SECURITY.md | 4 ++--
src/NHibernate.sln | 18 ++++++++++--------
3 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/ReleaseProcedure.txt b/ReleaseProcedure.txt
index b86ce96b9e6..597603318ae 100644
--- a/ReleaseProcedure.txt
+++ b/ReleaseProcedure.txt
@@ -27,6 +27,8 @@ dotnet gitreleasemanager create -o nhibernate -r nhibernate-core -m 5.3 --token
* Check/update version number in NHibernate.props under build-common folder.
Clear VersionSuffix if present.
+ * If releasing a new minor or major, check whether SECURITY.md should be updated or not.
+
* Don't forget to commit the above.
* Check the CI release build.
diff --git a/SECURITY.md b/SECURITY.md
index 50416634993..599415b84e9 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -4,9 +4,9 @@
| Version | Supported |
| ------- | ------------------ |
+| 5.6.x | :white_check_mark: |
| 5.5.x | :white_check_mark: |
-| 5.4.x | :white_check_mark: |
-| < 5.4 | :x: |
+| < 5.5 | :x: |
## Reporting a Vulnerability
diff --git a/src/NHibernate.sln b/src/NHibernate.sln
index 0b2a7f25d0b..d38ca264326 100644
--- a/src/NHibernate.sln
+++ b/src/NHibernate.sln
@@ -1,19 +1,21 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2024
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36518.9 d17.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{593DCEA7-C933-46F3-939F-D8172399AB05}"
ProjectSection(SolutionItems) = preProject
+ ..\.editorconfig = ..\.editorconfig
+ ..\appveyor.yml = ..\appveyor.yml
AsyncGenerator.yml = AsyncGenerator.yml
+ ..\build-common\common.xml = ..\build-common\common.xml
..\default.build = ..\default.build
+ ..\global.json = ..\global.json
..\build-common\NHibernate.props = ..\build-common\NHibernate.props
..\releasenotes.txt = ..\releasenotes.txt
- ..\teamcity.build = ..\teamcity.build
- ..\build-common\common.xml = ..\build-common\common.xml
- ..\appveyor.yml = ..\appveyor.yml
..\ReleaseProcedure.txt = ..\ReleaseProcedure.txt
- ..\global.json = ..\global.json
- ..\.editorconfig = ..\.editorconfig
+ ..\SECURITY.md = ..\SECURITY.md
+ ..\teamcity.build = ..\teamcity.build
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NHibernate", "NHibernate\NHibernate.csproj", "{5909BFE7-93CF-4E5F-BE22-6293368AF01D}"
From 6b1b3a6d3bac895124844665662439876f0069b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?=
<12201973+fredericDelaporte@users.noreply.github.com>
Date: Thu, 25 Sep 2025 23:14:48 +0200
Subject: [PATCH 3/6] Update release note
---
releasenotes.txt | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/releasenotes.txt b/releasenotes.txt
index 5de35402693..cd6f896f9c5 100644
--- a/releasenotes.txt
+++ b/releasenotes.txt
@@ -12,12 +12,13 @@ Release notes - NHibernate - Version 5.6.0
* Binary serializations of a session factory or a session from previous versions of NHibernate
will not be deserializable with NHibernate 5.6.
-68 issues were resolved in this release.
+72 issues were resolved in this release.
** Bug
* #3643 Collection cache lookup failure with enum keys
* #3631 Missing version update on dirty collection with another property having optimistic-lock false
+ * #3622 ISession.Refresh does not update lazy properties
* #3618 ISQLQuery.ExecuteUpdate produces an exception in certain cases
* #3602 Unable to implement custom tuplizer due to internal constructor
* #3557 Fix configuration order in tests
@@ -58,6 +59,9 @@ Release notes - NHibernate - Version 5.6.0
** Task
+ * #3706 Update actions/setup-dotnet action to v5
+ * #3705 Enable skip_branch_with_pr: true for appveyor
+ * #3701 Update dependency gitreleasemanager.tool to v0.20.0
* #3696 Release 5.6.0
* #3694 Merge 5.5.3 into master
* #3690 Update actions/checkout action to v5
From b655c976c497eb526bafb8465fa770faebaf8983 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?=
<12201973+fredericDelaporte@users.noreply.github.com>
Date: Fri, 26 Sep 2025 19:10:46 +0200
Subject: [PATCH 4/6] Update release note
---
releasenotes.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/releasenotes.txt b/releasenotes.txt
index cd6f896f9c5..21e5149c8c3 100644
--- a/releasenotes.txt
+++ b/releasenotes.txt
@@ -12,7 +12,7 @@ Release notes - NHibernate - Version 5.6.0
* Binary serializations of a session factory or a session from previous versions of NHibernate
will not be deserializable with NHibernate 5.6.
-72 issues were resolved in this release.
+74 issues were resolved in this release.
** Bug
@@ -44,6 +44,7 @@ Release notes - NHibernate - Version 5.6.0
** Improvement
+ * #3703 Guidelines for handling breaking changes
* #3687 Relax collection-id mapping
* #3682 InternalsVisibleTo NHibernate.Test
* #3676 When referencing a composite-id in Linq, the fkey table is wrongly joined
@@ -61,6 +62,7 @@ Release notes - NHibernate - Version 5.6.0
* #3706 Update actions/setup-dotnet action to v5
* #3705 Enable skip_branch_with_pr: true for appveyor
+ * #3702 Configure backports with Mergify
* #3701 Update dependency gitreleasemanager.tool to v0.20.0
* #3696 Release 5.6.0
* #3694 Merge 5.5.3 into master
From 7cbe08b693b3e96f8dccf1eae5f1168776ec16ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?=
<12201973+fredericdelaporte@users.noreply.github.com>
Date: Sat, 4 Oct 2025 22:43:50 +0200
Subject: [PATCH 5/6] Update release note
---
releasenotes.txt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/releasenotes.txt b/releasenotes.txt
index 21e5149c8c3..d11804d9499 100644
--- a/releasenotes.txt
+++ b/releasenotes.txt
@@ -11,11 +11,14 @@ Release notes - NHibernate - Version 5.6.0
(5 seconds) to 1000 (1 second). See #3355.
* Binary serializations of a session factory or a session from previous versions of NHibernate
will not be deserializable with NHibernate 5.6.
+ * Oracle9iDialect now registers localtimestamp as current_timestamp, instead of systimestamp.
+ See #3707.
74 issues were resolved in this release.
** Bug
+ * #3707 Register localtimestamp as current_timestamp in Oracle9iDialect
* #3643 Collection cache lookup failure with enum keys
* #3631 Missing version update on dirty collection with another property having optimistic-lock false
* #3622 ISession.Refresh does not update lazy properties
From 46a7979c6974ac76fb81c4f41161b6cbca8b365e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?=
<12201973+fredericdelaporte@users.noreply.github.com>
Date: Sun, 5 Oct 2025 15:03:47 +0200
Subject: [PATCH 6/6] Fix issues count
---
releasenotes.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/releasenotes.txt b/releasenotes.txt
index d11804d9499..7d209e839b7 100644
--- a/releasenotes.txt
+++ b/releasenotes.txt
@@ -14,7 +14,7 @@ Release notes - NHibernate - Version 5.6.0
* Oracle9iDialect now registers localtimestamp as current_timestamp, instead of systimestamp.
See #3707.
-74 issues were resolved in this release.
+76 issues were resolved in this release.
** Bug