From 1ca4aa3c2976d3129976f172f4d9717d9249a36f Mon Sep 17 00:00:00 2001 From: Eric Sibly Date: Wed, 14 Oct 2026 14:51:42 -0700 Subject: [PATCH] Prepare v3.3.1 release Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: Eric Sibly --- CHANGELOG.md | 4 +++ Common.targets | 2 +- src/DbEx.MySql/DbEx.MySql.csproj | 2 +- src/DbEx.Postgres/DbEx.Postgres.csproj | 2 +- src/DbEx.SqlServer/DbEx.SqlServer.csproj | 10 ++++++- src/DbEx/DbEx.csproj | 2 +- tests/DbEx.Test.Empty/DbEx.Test.Empty.csproj | 30 +++++++++++++------- tests/DbEx.Test/DbEx.Test.csproj | 12 ++++---- tests/DbEx.Test/PostgresMigrationTest.cs | 18 ++++++------ tests/DbEx.Test/SqlServerMigrationTest.cs | 18 ++++++------ 10 files changed, 60 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a034f4..6435d53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ Represents the **NuGet** versions. +## v3.3.1 +- *Fixed:* Updated package dependencies to the latest compatible versions within their existing major versions. +- *Fixed:* Updated `System.Security.Cryptography.Pkcs` to patched versions (`8.0.2` for `net8.0`; `9.0.21` for `net9.0` and `net10.0`) to address known vulnerabilities. + ## v3.3.0 - *Enhancement:* Non-primitive database types are now mapped to their correct .NET types (unqualified; a `global using` is expected) instead of throwing `Database data type 'x' does not have corresponding .NET type mapping defined`, which previously failed the `Data`, `Reset` and `Inspect` commands for the whole database. Originated from PR #72 by Wesley Teixeira. - SQL Server: `geography`/`geometry` (`Geometry`), `hierarchyid` (`HierarchyId`), `vector` (`SqlVector`), `xml`/`json` (`string`) and `sql_variant` (`object`). diff --git a/Common.targets b/Common.targets index 2e9deb9..0bda209 100644 --- a/Common.targets +++ b/Common.targets @@ -1,6 +1,6 @@ - 3.3.0 + 3.3.1 preview Avanade Avanade diff --git a/src/DbEx.MySql/DbEx.MySql.csproj b/src/DbEx.MySql/DbEx.MySql.csproj index b8805da..b29fa15 100644 --- a/src/DbEx.MySql/DbEx.MySql.csproj +++ b/src/DbEx.MySql/DbEx.MySql.csproj @@ -23,7 +23,7 @@ - + diff --git a/src/DbEx.Postgres/DbEx.Postgres.csproj b/src/DbEx.Postgres/DbEx.Postgres.csproj index 8f322c4..47e75d4 100644 --- a/src/DbEx.Postgres/DbEx.Postgres.csproj +++ b/src/DbEx.Postgres/DbEx.Postgres.csproj @@ -27,7 +27,7 @@ - + diff --git a/src/DbEx.SqlServer/DbEx.SqlServer.csproj b/src/DbEx.SqlServer/DbEx.SqlServer.csproj index e1c5d8c..7d5391e 100644 --- a/src/DbEx.SqlServer/DbEx.SqlServer.csproj +++ b/src/DbEx.SqlServer/DbEx.SqlServer.csproj @@ -24,10 +24,18 @@ - + + + + + + + + + diff --git a/src/DbEx/DbEx.csproj b/src/DbEx/DbEx.csproj index 9aebae9..d8c6175 100644 --- a/src/DbEx/DbEx.csproj +++ b/src/DbEx/DbEx.csproj @@ -22,7 +22,7 @@ - + diff --git a/tests/DbEx.Test.Empty/DbEx.Test.Empty.csproj b/tests/DbEx.Test.Empty/DbEx.Test.Empty.csproj index 3f8878f..019c59d 100644 --- a/tests/DbEx.Test.Empty/DbEx.Test.Empty.csproj +++ b/tests/DbEx.Test.Empty/DbEx.Test.Empty.csproj @@ -7,28 +7,36 @@ - 10.0.5 + 10.0.13 - - + + - 9.0.14 + 9.0.21 - - - + + + - 8.0.25 + 8.0.32 - - - + + + + + + + + + + + diff --git a/tests/DbEx.Test/DbEx.Test.csproj b/tests/DbEx.Test/DbEx.Test.csproj index db36787..efa0611 100644 --- a/tests/DbEx.Test/DbEx.Test.csproj +++ b/tests/DbEx.Test/DbEx.Test.csproj @@ -20,12 +20,12 @@ - - - - - - + + + + + + all diff --git a/tests/DbEx.Test/PostgresMigrationTest.cs b/tests/DbEx.Test/PostgresMigrationTest.cs index 7f81062..352ad61 100644 --- a/tests/DbEx.Test/PostgresMigrationTest.cs +++ b/tests/DbEx.Test/PostgresMigrationTest.cs @@ -125,15 +125,15 @@ public async Task B110_Throw_Exceptions() var cs = UnitTest.GetConfig("DbEx_").GetConnectionString("PostgresDb"); using var db = new PostgresDatabase(() => new Npgsql.NpgsqlConnection(cs)); - Assert.AreEqual("56003", Assert.ThrowsAsync(() => db.StoredProcedure("sp_throw_authorization_exception").Param("@message", (string)null).NonQueryAsync()).SqlState); - Assert.AreEqual("56002", Assert.ThrowsAsync(() => db.StoredProcedure("sp_throw_business_exception").Param("@message", (string)null).NonQueryAsync()).SqlState); - Assert.AreEqual("56004", Assert.ThrowsAsync(() => db.StoredProcedure("sp_throw_concurrency_exception").Param("@message", (string)null).NonQueryAsync()).SqlState); - Assert.AreEqual("56006", Assert.ThrowsAsync(() => db.StoredProcedure("sp_throw_conflict_exception").Param("@message", (string)null).NonQueryAsync()).SqlState); - Assert.AreEqual("56007", Assert.ThrowsAsync(() => db.StoredProcedure("sp_throw_duplicate_exception").Param("@message", (string)null).NonQueryAsync()).SqlState); - Assert.AreEqual("56005", Assert.ThrowsAsync(() => db.StoredProcedure("sp_throw_not_found_exception").Param("@message", (string)null).NonQueryAsync()).SqlState); - Assert.AreEqual("56001", Assert.ThrowsAsync(() => db.StoredProcedure("sp_throw_validation_exception").Param("@message", (string)null).NonQueryAsync()).SqlState); - - var vex = Assert.ThrowsAsync(() => db.StoredProcedure("sp_throw_validation_exception").Param("@message", "On no!").NonQueryAsync()); + Assert.AreEqual("56003", Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("sp_throw_authorization_exception").Param("@message", (string)null).NonQueryAsync())).SqlState); + Assert.AreEqual("56002", Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("sp_throw_business_exception").Param("@message", (string)null).NonQueryAsync())).SqlState); + Assert.AreEqual("56004", Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("sp_throw_concurrency_exception").Param("@message", (string)null).NonQueryAsync())).SqlState); + Assert.AreEqual("56006", Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("sp_throw_conflict_exception").Param("@message", (string)null).NonQueryAsync())).SqlState); + Assert.AreEqual("56007", Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("sp_throw_duplicate_exception").Param("@message", (string)null).NonQueryAsync())).SqlState); + Assert.AreEqual("56005", Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("sp_throw_not_found_exception").Param("@message", (string)null).NonQueryAsync())).SqlState); + Assert.AreEqual("56001", Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("sp_throw_validation_exception").Param("@message", (string)null).NonQueryAsync())).SqlState); + + var vex = Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("sp_throw_validation_exception").Param("@message", "On no!").NonQueryAsync())); Assert.AreEqual("On no!", vex.MessageText.TrimEnd()); } diff --git a/tests/DbEx.Test/SqlServerMigrationTest.cs b/tests/DbEx.Test/SqlServerMigrationTest.cs index ac100de..1ad5cb7 100644 --- a/tests/DbEx.Test/SqlServerMigrationTest.cs +++ b/tests/DbEx.Test/SqlServerMigrationTest.cs @@ -247,15 +247,15 @@ public async Task C110_Throw_Exceptions() var (cs, l, m) = await CreateConsoleDb().ConfigureAwait(false); using var db = new SqlServerDatabase(() => new SqlConnection(cs)); - Assert.AreEqual(Assert.ThrowsAsync(() => db.StoredProcedure("spThrowAuthorizationException").Param("message", (string)null).NonQueryAsync()).Number, 56003); - Assert.AreEqual(Assert.ThrowsAsync(() => db.StoredProcedure("spThrowBusinessException").Param("message", (string)null).NonQueryAsync()).Number, 56002); - Assert.AreEqual(Assert.ThrowsAsync(() => db.StoredProcedure("spThrowConcurrencyException").Param("message", (string)null).NonQueryAsync()).Number, 56004); - Assert.AreEqual(Assert.ThrowsAsync(() => db.StoredProcedure("spThrowConflictException").Param("message", (string)null).NonQueryAsync()).Number, 56006); - Assert.AreEqual(Assert.ThrowsAsync(() => db.StoredProcedure("spThrowDuplicateException").Param("message", (string)null).NonQueryAsync()).Number, 56007); - Assert.AreEqual(Assert.ThrowsAsync(() => db.StoredProcedure("spThrowNotFoundException").Param("message", (string)null).NonQueryAsync()).Number, 56005); - Assert.AreEqual(Assert.ThrowsAsync(() => db.StoredProcedure("spThrowValidationException").Param("message", (string)null).NonQueryAsync()).Number, 56001); - - var vex = Assert.ThrowsAsync(() => db.StoredProcedure("spThrowValidationException").Param("message", "On no!").NonQueryAsync()); + Assert.AreEqual(Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("spThrowAuthorizationException").Param("message", (string)null).NonQueryAsync())).Number, 56003); + Assert.AreEqual(Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("spThrowBusinessException").Param("message", (string)null).NonQueryAsync())).Number, 56002); + Assert.AreEqual(Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("spThrowConcurrencyException").Param("message", (string)null).NonQueryAsync())).Number, 56004); + Assert.AreEqual(Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("spThrowConflictException").Param("message", (string)null).NonQueryAsync())).Number, 56006); + Assert.AreEqual(Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("spThrowDuplicateException").Param("message", (string)null).NonQueryAsync())).Number, 56007); + Assert.AreEqual(Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("spThrowNotFoundException").Param("message", (string)null).NonQueryAsync())).Number, 56005); + Assert.AreEqual(Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("spThrowValidationException").Param("message", (string)null).NonQueryAsync())).Number, 56001); + + var vex = Assert.ThrowsAsync((AsyncTestDelegate)(() => db.StoredProcedure("spThrowValidationException").Param("message", "On no!").NonQueryAsync())); Assert.AreEqual("On no!", vex.Message); }