From 1909b137ae545eed9e173241540daecba6e3b025 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Aug 2026 16:27:23 +0000 Subject: [PATCH 1/9] Chore: Bump the actions-minor group with 2 updates Updates `softprops/action-gh-release` from 3.0.1 to 3.0.2 Updates `lycheeverse/lychee-action` from 2.8.0 to 2.9.0 --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-version: 3.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions-minor - dependency-name: lycheeverse/lychee-action dependency-version: 2.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/base-installer-cd.yml | 2 +- .github/workflows/link-check.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/base-installer-cd.yml b/.github/workflows/base-installer-cd.yml index 99f88e46bd..b0a451c928 100644 --- a/.github/workflows/base-installer-cd.yml +++ b/.github/workflows/base-installer-cd.yml @@ -284,7 +284,7 @@ jobs: - name: Tag, Create Release, and Upload artifacts if: ${{ inputs.make_release == 'true' }} - uses: softprops/action-gh-release@718ea10b132b3b2eba29c1007bb80653f286566b + uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 with: target_commitish: ${{ github.event.inputs.fw_ref || github.ref }} tag_name: build-${{ env.FW_BUILD_NUMBER }} diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml index 24fe0db73f..eb06ac8164 100644 --- a/.github/workflows/link-check.yml +++ b/.github/workflows/link-check.yml @@ -11,7 +11,7 @@ jobs: - name: Checkout uses: actions/checkout@v7 - name: Link check with lychee (non-blocking) - uses: lycheeverse/lychee-action@v2.8.0 + uses: lycheeverse/lychee-action@v2.9.0 with: # Limit concurrency and accept 429 (rate-limited) as non-fatal args: >- From 3e9c3199b7d65dd339d2015d55bedb4219216703 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Aug 2026 16:27:51 +0000 Subject: [PATCH 2/9] Chore: Bump actions/setup-dotnet from 5 to 6 Bumps actions/setup-dotnet from 5 to 6. --- updated-dependencies: - dependency-name: actions/setup-dotnet dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/base-installer-cd.yml | 2 +- .github/workflows/patch-installer-cd.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/base-installer-cd.yml b/.github/workflows/base-installer-cd.yml index b0a451c928..b5bc3caebd 100644 --- a/.github/workflows/base-installer-cd.yml +++ b/.github/workflows/base-installer-cd.yml @@ -134,7 +134,7 @@ jobs: } - name: Setup dotnet - uses: actions/setup-dotnet@v5 + uses: actions/setup-dotnet@v6 with: dotnet-version: | 3.1.x diff --git a/.github/workflows/patch-installer-cd.yml b/.github/workflows/patch-installer-cd.yml index c52578186a..ecea81755c 100644 --- a/.github/workflows/patch-installer-cd.yml +++ b/.github/workflows/patch-installer-cd.yml @@ -149,7 +149,7 @@ jobs: } - name: Setup dotnet - uses: actions/setup-dotnet@v5 + uses: actions/setup-dotnet@v6 with: dotnet-version: | 3.1.x From 86a06d90fffbc8b70b5d9e6b3a064cb76caad5ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Aug 2026 16:41:20 +0000 Subject: [PATCH 3/9] Chore: Bump the nuget-minor group with 12 updates Bumps dotnet-coverage from 18.7.0 to 18.9.0 Bumps dotnet-reportgenerator-globaltool from 5.3.11 to 5.5.11 Bumps Microsoft.Build.Utilities.Core from 18.7.1 to 18.8.2 Bumps Microsoft.Extensions.DependencyModel from 9.0.16 to 9.0.18 Bumps SIL.Core from 18.0.0-beta0027 to 18.0.0-beta0030 Bumps SIL.LCModel from 11.0.0-beta0173 to 11.0.0-beta0176 Bumps SIL.LCModel.Core from 11.0.0-beta0173 to 11.0.0-beta0176 Bumps SIL.LCModel.Utils from 11.0.0-beta0173 to 11.0.0-beta0176 Bumps System.Drawing.Common from 9.0.17 to 9.0.18 Bumps System.Reflection.Metadata from 10.0.9 to 10.0.10 Bumps System.Resources.Extensions from 9.0.17 to 9.0.18 Bumps System.Security.Permissions from 9.0.17 to 9.0.18 --- updated-dependencies: - dependency-name: dotnet-coverage dependency-version: 18.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor - dependency-name: dotnet-reportgenerator-globaltool dependency-version: 5.5.11 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor - dependency-name: Microsoft.Build.Utilities.Core dependency-version: 18.8.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor - dependency-name: Microsoft.Extensions.DependencyModel dependency-version: 9.0.18 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor - dependency-name: SIL.Core dependency-version: 18.0.0-beta0030 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor - dependency-name: SIL.LCModel dependency-version: 11.0.0-beta0176 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor - dependency-name: SIL.LCModel.Core dependency-version: 11.0.0-beta0176 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor - dependency-name: SIL.LCModel.Utils dependency-version: 11.0.0-beta0176 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor - dependency-name: System.Drawing.Common dependency-version: 9.0.18 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor - dependency-name: System.Reflection.Metadata dependency-version: 10.0.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor - dependency-name: System.Resources.Extensions dependency-version: 9.0.18 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor - dependency-name: System.Security.Permissions dependency-version: 9.0.18 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor ... Signed-off-by: dependabot[bot] --- .config/dotnet-tools.json | 6 +++--- Build/SilVersions.props | 4 ++-- Build/Src/Directory.Packages.props | 2 +- Directory.Packages.props | 10 +++++----- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index f1415e08e7..c884c33b2e 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,18 +3,18 @@ "isRoot": true, "tools": { "dotnet-reportgenerator-globaltool": { - "version": "5.3.11", + "version": "5.5.11", "commands": [ "reportgenerator" ], "rollForward": false }, "dotnet-coverage": { - "version": "18.7.0", + "version": "18.9.0", "commands": [ "dotnet-coverage" ], "rollForward": false } } -} +} \ No newline at end of file diff --git a/Build/SilVersions.props b/Build/SilVersions.props index b90cd986fc..508e9beb42 100644 --- a/Build/SilVersions.props +++ b/Build/SilVersions.props @@ -12,8 +12,8 @@ ============================================================= --> - 11.0.0-beta0173 - 18.0.0-beta0027 + 11.0.0-beta0176 + 18.0.0-beta0030 18.0.0-beta0012 6.0.0-beta0065 3.0.1 diff --git a/Build/Src/Directory.Packages.props b/Build/Src/Directory.Packages.props index f45369d24f..68c80e2bb1 100644 --- a/Build/Src/Directory.Packages.props +++ b/Build/Src/Directory.Packages.props @@ -17,7 +17,7 @@ - + diff --git a/Directory.Packages.props b/Directory.Packages.props index 97851b4a60..d0f2bcf48b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -29,11 +29,11 @@ 9.0.17 breaks ICU initialization in the .NET Framework test host. --> - - + + - + - + - + From cadfc264de18686d1e69b73ee814efc34c769852 Mon Sep 17 00:00:00 2001 From: Jason Naylor Date: Wed, 12 Aug 2026 16:58:09 -0700 Subject: [PATCH 4/9] Chore: Keep DependencyModel pinned at 9.0.16 The nuget-minor group bumped Microsoft.Extensions.DependencyModel to 9.0.18, but Directory.Packages.props pins it deliberately: 9.0.17 broke ICU initialization in the .NET Framework test host, as reproduced and investigated in PR #1000. 9.0.18 has not been retested, so this restores 9.0.16. Also refreshes the three pin comments that still named 9.0.17 for the packages that did move to 9.0.18. Co-Authored-By: Claude Opus 5 --- Directory.Packages.props | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index d0f2bcf48b..9c45162b6a 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -24,30 +24,31 @@ --> + but ParatextData 9.5.x requires >= 9.0.9. Pin to 9.0.18. --> - - + + System.Security.AccessControl needs >= 6.0.0. Pin to 9.0.18. --> From 75540cf6674f726b360f820434fb6f5935710023 Mon Sep 17 00:00:00 2001 From: Jason Naylor Date: Thu, 13 Aug 2026 08:11:31 -0700 Subject: [PATCH 5/9] Chore: Exclude DependencyModel from dependabot, clarify pin comments Adds Microsoft.Extensions.DependencyModel to the nuget ignore block so the pin at 9.0.16 stops being re-proposed every month. Nothing in the package graph holds it there: every dependant declares only a floor that 9.0.18 clears, so the pin rests entirely on the runtime break found in PR #1000. Also rewrites three pin comments that described floors as though they were exact or capped requirements. Checked against the nuspec ranges under packages/: ParatextData, SIL.Machine, ProDotNetZip, icu.net, SIL.LCModel.Core and Avalonia.Skia all declare minimums only, so pinning above them is always safe and pinning below is what causes NU1109. Co-Authored-By: Claude Opus 5 --- .github/dependabot.yml | 9 +++++++++ Directory.Packages.props | 21 +++++++++++++-------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index b956b60819..d5fc13613d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -32,6 +32,15 @@ updates: ignore: - dependency-name: "*" update-types: ["version-update:semver-major"] + # Microsoft.Extensions.DependencyModel is held at 9.0.16 by an observed + # runtime break, not by any declared dependency range: 9.0.17 throws + # TypeInitializationException on Icu.NativeMethods in the .NET Framework + # test host (PR #1000). Every package that depends on it asks only for a + # floor (ParatextData >= 9.0.9, icu.net and SIL.LCModel.Core >= 2.0.4), so + # nothing in the package graph prevents a bump and Dependabot re-proposed + # it in #1037 after #1000 reverted it. See the retest procedure in the + # comment above the pin in Directory.Packages.props before removing this. + - dependency-name: "Microsoft.Extensions.DependencyModel" groups: nuget-minor: patterns: diff --git a/Directory.Packages.props b/Directory.Packages.props index 9c45162b6a..7704187f82 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -35,23 +35,28 @@ in .NET Framework SDK-style projects. --> + retested and is not known to fix it. Because no declared range blocks + the bump, it is also listed under ignore: in .github/dependabot.yml. + To retest: bump, run a full test.ps1, and grep the .trx for + "Icu.NativeMethods" - zero hits means safe. --> - + - + From 834f4073944e41f4e77aba32340cf3d9a728f6a0 Mon Sep 17 00:00:00 2001 From: Jason Naylor Date: Fri, 14 Aug 2026 10:09:27 -0700 Subject: [PATCH 6/9] Internalize LCModel's DI container into the Paratext lexicon plugin SIL.LCModel 11.0.0-beta0176 replaced StructureMap with Microsoft.Extensions.DependencyInjection, which appeared as new external references of the ILRepack-merged FwParatextLexiconPlugin.dll. Paratext loads that plugin into its own process, where FieldWorks' binding redirects do not apply and Paratext ships no copy of these assemblies, so they had to resolve from the FieldWorks directory at their exact recorded versions - any drift broke the plugin only inside Paratext, invisibly to every FieldWorks test. liblcm exposes no DI type on its public API and bootstraps the container without reflection-by-name, so the assemblies are internalized instead, along with Microsoft.Bcl.AsyncInterfaces which they pull in. Pins all three packages so the internalized copies are deterministic; Build/Src overrides Microsoft.Bcl.AsyncInterfaces to the 10.0.4 floor that Microsoft.Build.Utilities.Core's System.Text.Json chain requires. Co-Authored-By: Claude Opus 5 --- Build/Src/Directory.Packages.props | 3 +++ Directory.Packages.props | 11 +++++++++++ Src/FwParatextLexiconPlugin/ILRepack.targets | 13 +++++++++++++ 3 files changed, 27 insertions(+) diff --git a/Build/Src/Directory.Packages.props b/Build/Src/Directory.Packages.props index 68c80e2bb1..a503313a33 100644 --- a/Build/Src/Directory.Packages.props +++ b/Build/Src/Directory.Packages.props @@ -18,6 +18,9 @@ + + diff --git a/Directory.Packages.props b/Directory.Packages.props index 7704187f82..41f3753896 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -46,6 +46,17 @@ To retest: bump, run a full test.ps1, and grep the .trx for "Icu.NativeMethods" - zero hits means safe. --> + + + + diff --git a/Src/FwParatextLexiconPlugin/ILRepack.targets b/Src/FwParatextLexiconPlugin/ILRepack.targets index 18bd584edc..27d65fdc02 100644 --- a/Src/FwParatextLexiconPlugin/ILRepack.targets +++ b/Src/FwParatextLexiconPlugin/ILRepack.targets @@ -25,6 +25,19 @@ This software is licensed under the LGPL, version 2.1 or later + + + + + From 5f702906045cac20ceec924e537c70908993ae06 Mon Sep 17 00:00:00 2001 From: Jason Naylor Date: Fri, 14 Aug 2026 13:54:44 -0700 Subject: [PATCH 7/9] Chore: Reduce Directory.Packages.props comments to their constraints Strips the pin comments to declarative content: the requirement each pin satisfies and, for the empirical DependencyModel pin, the failure it avoids and its retest recipe. Drops the changelog-style block note and the floor-versus-pin narration. Co-Authored-By: Claude Opus 5 --- Directory.Packages.props | 50 +++++++++++++++------------------------- 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 41f3753896..7a2e7e80bf 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -23,51 +23,37 @@ ============================================================= --> - - + - + - + - + - + - + From 9e1ae4f3d055c56568cf58623507998902821f35 Mon Sep 17 00:00:00 2001 From: Jason Naylor Date: Fri, 14 Aug 2026 14:10:48 -0700 Subject: [PATCH 8/9] Chore: Shorten the dependabot ignore comment Replaces the eight-line note with two lines naming the failure and pointing at Directory.Packages.props for the retest procedure, per review feedback that the longer version duplicated that file. Co-Authored-By: Claude Opus 5 --- .github/dependabot.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d5fc13613d..c38905621b 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -32,14 +32,8 @@ updates: ignore: - dependency-name: "*" update-types: ["version-update:semver-major"] - # Microsoft.Extensions.DependencyModel is held at 9.0.16 by an observed - # runtime break, not by any declared dependency range: 9.0.17 throws - # TypeInitializationException on Icu.NativeMethods in the .NET Framework - # test host (PR #1000). Every package that depends on it asks only for a - # floor (ParatextData >= 9.0.9, icu.net and SIL.LCModel.Core >= 2.0.4), so - # nothing in the package graph prevents a bump and Dependabot re-proposed - # it in #1037 after #1000 reverted it. See the retest procedure in the - # comment above the pin in Directory.Packages.props before removing this. + # Pinned at 9.0.16 due to TypeInitializationException on Icu.NativeMethods + # in the net48 test host (PR #1000). Retest procedure: Directory.Packages.props. - dependency-name: "Microsoft.Extensions.DependencyModel" groups: nuget-minor: From a98a5407dec0fdef240c39d5aeb9356781a8cea7 Mon Sep 17 00:00:00 2001 From: Jason Naylor Date: Fri, 14 Aug 2026 14:17:54 -0700 Subject: [PATCH 9/9] Chore: Bring Directory.Packages.props comments under 200 chars Reduces the eight comment blocks that exceeded 200 characters, keeping the constraint each pin satisfies and dropping restatement. The Avalonia section banner is left alone: it documents four independent facts and does not fit the limit without losing one. Continuation lines use tabs rather than tab-plus-spaces so the added lines pass the indent-with-non-tab whitespace check; they render identically at the repository tab width. Co-Authored-By: Claude Opus 5 --- Directory.Packages.props | 52 ++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 31 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 7a2e7e80bf..9d6afc943b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -2,11 +2,9 @@ true true @@ -15,12 +13,10 @@ - + - + @@ -103,10 +95,9 @@ --> - + @@ -176,9 +167,9 @@ --> - + @@ -210,10 +201,9 @@ --> - + @@ -223,9 +213,9 @@ - +