chore(deps): Bump the nuget-dependencies group with 7 updates#177
Merged
Merged
Conversation
Bumps AWSSDK.Core from 4.0.9.7 to 4.0.100.2 Bumps JD.MSBuild.Fluent from 1.3.20 to 1.3.22 Bumps Testcontainers.FirebirdSql from 4.12.0 to 4.13.0 Bumps Testcontainers.MsSql from 4.12.0 to 4.13.0 Bumps Testcontainers.MySql from 4.12.0 to 4.13.0 Bumps Testcontainers.Oracle from 4.12.0 to 4.13.0 Bumps Testcontainers.PostgreSql from 4.12.0 to 4.13.0 --- updated-dependencies: - dependency-name: AWSSDK.Core dependency-version: 4.0.100.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-dependencies - dependency-name: JD.MSBuild.Fluent dependency-version: 1.3.22 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-dependencies - dependency-name: Testcontainers.FirebirdSql dependency-version: 4.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-dependencies - dependency-name: Testcontainers.MsSql dependency-version: 4.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-dependencies - dependency-name: Testcontainers.MySql dependency-version: 4.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-dependencies - dependency-name: Testcontainers.Oracle dependency-version: 4.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-dependencies - dependency-name: Testcontainers.PostgreSql dependency-version: 4.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Code Coverage |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #177 +/- ##
==========================================
+ Coverage 80.32% 88.61% +8.29%
==========================================
Files 61 61
Lines 3848 3848
Branches 558 470 -88
==========================================
+ Hits 3091 3410 +319
+ Misses 511 438 -73
+ Partials 246 0 -246
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
3 tasks
JerrettDavis
added a commit
that referenced
this pull request
Jul 11, 2026
… and regenerate with EfcptOfflineMode (#185) Dependabot PR #177 bumped JD.MSBuild.Fluent 1.3.20 -> 1.3.22, which changed several fluent-DSL APIs (ResolveMultiTargetedTaskAssembly, RegisterTasks, BeforeTargets/AfterTargets, OutputProperty<T1,T2>). This broke JD.Efcpt.Build.Definitions with ~44 compile errors, invisible to CI because that project is not in JD.Efcpt.Build.sln and CI runs with generation disabled. As a result, EfcptOfflineMode (added on this branch) never made it into the generated buildTransitive/JD.Efcpt.Build.{props,targets}. Adapted Definitions to the 1.3.22 API rather than pinning back to 1.3.20, since the bump also included other patch/security updates in the same Dependabot group: - SharedPropertyGroups/UsingTasksRegistry: updated ResolveMultiTargetedTaskAssembly to the new (tasksFolderProperty, taskAssemblyProperty, assemblyFileName, packageId, frameworkMappings) signature, and RegisterTasks' renamed assemblyPathProperty parameter. - BuildTransitiveTargetsFactory: multi-target BeforeTargets("A", "B") calls switched to the single semicolon-joined string form; OutputProperty<T1,T2>() calls (which required task-parameter marker types that were never defined, plus some property markers only visible from a different nested class) switched to the plain-string OutputProperty(taskParameter, propertyName) overload using the exact strings already present in the last known-good generated targets file. Separately, JD.Efcpt.Build.csproj never actually wired in the Definitions sources: JD.MSBuild.Fluent's generator reflects over the project's own compiled JD.Efcpt.Build.dll for JDMSBuildFluentDefinitionType, and a ProjectReference to JD.Efcpt.Build.Definitions.csproj is not enough - the type must be physically compiled into that assembly. Added a Compile Include so JD.Efcpt.Build.Definitions's sources compile directly into JD.Efcpt.Build.dll (IncludeBuildOutput=false, so this does not affect the packed NuGet output). Regenerated buildTransitive/JD.Efcpt.Build.{props,targets} (and build/): EfcptOfflineMode now appears in the props defaults and is wired into the RunEfcpt task's OfflineMode parameter. Diffed the regenerated files against the previous versions: aside from EfcptOfflineMode, all other properties/ targets are preserved; the only other differences are the newer generator's XML formatting and two target names (EfcptEnsureDacpac, EfcptQuerySchemaMetadata) that were already renamed in source but never regenerated. Follow-up recommended (not filed): add JD.Efcpt.Build.Definitions to the solution, or add a CI step that builds it / diffs regenerated output against committed buildTransitive files, so this class of breakage can't silently reoccur. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
JerrettDavis
added a commit
that referenced
this pull request
Jul 11, 2026
* feat(tasks): introduce ISdkProbe seam for RunEfcpt SDK/dnx/global-tool checks Extracts RunEfcpt's SDK/dnx capability checks behind an ISdkProbe interface (plus a new IsGlobalToolInstalled probe for later offline pre-flight use). DefaultSdkProbe delegates to the existing #187 memoized probes on RunEfcpt (backed by SdkProbeCache) so caching and behavior are unchanged. Threads the probe through the tool resolution/restore Strategy contexts so predicates call ctx.Probe.* instead of the static methods directly - a pure testability seam with no behavior change; existing RunEfcptTests/DotNetToolUtilitiesTests stay green. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(offline): add EfcptOfflineMode property and gate the three network-dependent tool branches Adds EfcptOfflineMode (default false) to both mirrored property groups in BuildTransitivePropsFactory.cs, and the OfflineMode task param on RunEfcpt in BuildTransitiveTargetsFactory.cs. RunEfcpt gains an OfflineMode property (OR-ed with the EFCPT_OFFLINE env var) and threads a resolved `Offline` flag through the tool resolution/restore Strategy contexts, prepending `!ctx.Offline &&` to the three network-dependent branches (dnx execution, tool-manifest restore, global tool update) so none of them spawn a process when offline. Emits a one-time high-importance status message when offline. KNOWN GAP: buildTransitive/JD.Efcpt.Build.{props,targets} are NOT regenerated in this commit. Regeneration is currently broken on main independent of this change: dependabot PR #177 bumped JD.MSBuild.Fluent 1.3.20 -> 1.3.22 as a "semver-patch" update, but TargetsBuilder.RegisterTasks's parameter names changed (`assemblyPath` no longer valid), which cascades into ~44 compile errors in JD.Efcpt.Build.Definitions (a project that is not part of the .sln and is never built by CI - see GENERATING.md's note that CI always disables generation). Reproduced identically on a clean checkout of origin/main via `dotnet msbuild -t:JDMSBuildFluentGenerate` per GENERATING.md. Per explicit instruction not to hand-edit the generated XML, this is left as a follow-up: fix the JD.MSBuild.Fluent version mismatch (or pin back to 1.3.20), then regenerate and commit the buildTransitive files including this property. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(offline): add JD0026 pre-flight validation, guard update-check target, add docs RunEfcpt now validates, when offline, that the efcpt tool is guaranteed runnable without a network call: an explicit existing EfcptToolPath, a discovered (already-restored) tool manifest, or a global tool resolvable on PATH via the new ISdkProbe.IsGlobalToolInstalled. If none apply, the task logs actionable error JD0026 (mirroring ProviderDriverNotFoundException's shape - problem, exact dotnet tool install commands, detected state, docs URL) via log.Error and returns false rather than throwing, per TaskExecutionDecorator's contract. Adds EfcptToolNotAvailableOfflineException as the JD0026 message builder. Guards the _EfcptCheckForUpdates target with `and '$(EfcptOfflineMode)' != 'true'` so the SDK update-check network call is also skipped offline (same buildTransitive regeneration gap noted in the prior commit - source-level change only, pending the JD.MSBuild.Fluent version fix). Adds docs/user-guide/offline.md (full offline/air-gapped workflow) and a JD0026 entry in docs/user-guide/error-codes.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test(offline): add OfflineModeTests covering network-skip and JD0026 pre-flight Adds TinyBDD Given/When/Then scenarios, mirroring RunEfcptTests/ DotNetToolUtilitiesTests conventions ([Collection(nameof(AssemblySetup))]): - offline-skips-network: a ThrowingSdkProbe that fails the test if any probe method is invoked; OfflineMode=true, TargetFramework=net10.0, a pre-provisioned explicit ToolPath (a real, always-succeeding .cmd script, not EFCPT_FAKE_EFCPT - which short-circuits before tool resolution runs at all) -> task succeeds, no probe/restore/acquire path is touched. - offline-fails-actionably: OfflineMode=true, no manifest, no ToolPath, TargetFramework=net8.0, an AllUnavailableSdkProbe -> task returns false and Engine.Errors contains code JD0026 with a "dotnet tool install" command. - offline-disabled-by-default: OfflineMode left unset -> defaults to "false" and fake-mode execution is unaffected. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(build): repair buildTransitive generation (JD.MSBuild.Fluent API) and regenerate with EfcptOfflineMode (#185) Dependabot PR #177 bumped JD.MSBuild.Fluent 1.3.20 -> 1.3.22, which changed several fluent-DSL APIs (ResolveMultiTargetedTaskAssembly, RegisterTasks, BeforeTargets/AfterTargets, OutputProperty<T1,T2>). This broke JD.Efcpt.Build.Definitions with ~44 compile errors, invisible to CI because that project is not in JD.Efcpt.Build.sln and CI runs with generation disabled. As a result, EfcptOfflineMode (added on this branch) never made it into the generated buildTransitive/JD.Efcpt.Build.{props,targets}. Adapted Definitions to the 1.3.22 API rather than pinning back to 1.3.20, since the bump also included other patch/security updates in the same Dependabot group: - SharedPropertyGroups/UsingTasksRegistry: updated ResolveMultiTargetedTaskAssembly to the new (tasksFolderProperty, taskAssemblyProperty, assemblyFileName, packageId, frameworkMappings) signature, and RegisterTasks' renamed assemblyPathProperty parameter. - BuildTransitiveTargetsFactory: multi-target BeforeTargets("A", "B") calls switched to the single semicolon-joined string form; OutputProperty<T1,T2>() calls (which required task-parameter marker types that were never defined, plus some property markers only visible from a different nested class) switched to the plain-string OutputProperty(taskParameter, propertyName) overload using the exact strings already present in the last known-good generated targets file. Separately, JD.Efcpt.Build.csproj never actually wired in the Definitions sources: JD.MSBuild.Fluent's generator reflects over the project's own compiled JD.Efcpt.Build.dll for JDMSBuildFluentDefinitionType, and a ProjectReference to JD.Efcpt.Build.Definitions.csproj is not enough - the type must be physically compiled into that assembly. Added a Compile Include so JD.Efcpt.Build.Definitions's sources compile directly into JD.Efcpt.Build.dll (IncludeBuildOutput=false, so this does not affect the packed NuGet output). Regenerated buildTransitive/JD.Efcpt.Build.{props,targets} (and build/): EfcptOfflineMode now appears in the props defaults and is wired into the RunEfcpt task's OfflineMode parameter. Diffed the regenerated files against the previous versions: aside from EfcptOfflineMode, all other properties/ targets are preserved; the only other differences are the newer generator's XML formatting and two target names (EfcptEnsureDacpac, EfcptQuerySchemaMetadata) that were already renamed in source but never regenerated. Follow-up recommended (not filed): add JD.Efcpt.Build.Definitions to the solution, or add a CI step that builds it / diffs regenerated output against committed buildTransitive files, so this class of breakage can't silently reoccur. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(build): honor EFCPT_OFFLINE env var in update-check guard (#185) EfcptOfflineMode's default now honors a truthy EFCPT_OFFLINE environment variable (MSBuild exposes env vars as properties automatically), so the documented "either is sufficient" contract holds for consumers of the property directly - notably the _EfcptCheckForUpdates target, which reads $(EfcptOfflineMode) rather than going through RunEfcpt's task-level OR. Truthy tokens intentionally mirror StringExtensions.IsTrue() (true/yes/on/1/enable/enabled/y); MSBuild condition equality is case-insensitive so no extra case variants are needed. EFCPT_OFFLINE=false/0/unset does not enable offline mode. Regenerated buildTransitive/JD.Efcpt.Build.{props,targets} from the factory via JDMSBuildFluentGenerate. Updated docs/user-guide/offline.md to describe the two independent OR points (MSBuild property default vs. task-level env-var read) and the exact accepted values. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(build): verify manifest lists efcpt tool in offline pre-flight (#185) The offline JD0026 pre-flight's manifest leg previously treated ANY discovered .config/dotnet-tools.json as proof the efcpt tool was runnable. A stale, foreign, or never-restored manifest (or a ToolMode that wouldn't even use it) would pass pre-flight and only fail later with a cryptic `dotnet tool run` error instead of the actionable JD0026. The manifest leg now only counts as runnable when (a) the current ToolMode would actually use the manifest - extracted the existing ToolIsAutoOrManifest condition into a reusable ToolModeUsesManifest(mode, manifestDir, forceManifestOnNonWindows) helper, callable before a ToolResolutionContext exists - and (b) the manifest file itself lists an entry for the target tool (matched by ToolPackageId or by a "commands" entry matching ToolCommand), via a new ManifestListsTool() helper that does a tolerant local JSON read (malformed/unreadable manifests are treated as "not runnable", never thrown). Both checks are local file reads only, so they remain offline-safe. The explicit-ToolPath and global-tool-on-PATH legs are unchanged. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test(185): cover offline strategy gates, env var, and gate-regression The existing 3 OfflineModeTests scenarios all bypass the !ctx.Offline STRATEGY gates in RunEfcpt (explicit ToolPath short-circuits before them; EFCPT_FAKE_EFCPT returns before tool resolution runs at all). Adds 4 scenarios that exercise those gates directly, using capturing fake dotnet/global-tool .cmd scripts (append invocation to a log file, exit 0) plus counting/throwing ISdkProbe substitutes to assert what did and didn't run: - Offline + a manifest that lists the efcpt tool resolves via 'dotnet tool run', with dnx/global-tool probes and tool restore/update never invoked (TFM net10.0, no explicit ToolPath). - Offline + no manifest + a global tool on PATH succeeds by invoking the tool directly, without ever touching dotnet (proving tool update --global never runs). - EFCPT_OFFLINE set with EfcptOfflineMode left at its default reproduces the JD0026 pre-flight failure via the task-level env-var OR-in alone; the MSBuild-property-level bridge is verified separately via the generated buildTransitive/*.props XML (a full MSBuild target harness is out of scope for this task-level project). - Offline=false gate-regression: with a manifest present, TFM net8.0, and a counting probe, tool restore genuinely runs - proving the !ctx.Offline prefix is a real gate, not inverted or always-on. 7 OfflineModeTests scenarios total, all passing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(build): preserve shipped target names (EfcptEnsureDacpacBuilt/EfcptQuerySchemaMetadataForDb) to avoid breaking samples/consumers (#185) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(tests): make offline-mode fake-shim harness cross-platform (Linux CI) (#185) The offline-mode tests created fake dotnet/global-tool shims as Windows .cmd batch scripts. On the Linux CI runner a .cmd file is not executable, so the shim never ran, its invocation log was never written, and the assertions (task succeeds / no error / invocation recorded) failed with FileNotFoundException. This is a test-portability bug, not a defect in the offline-mode logic. Introduce TestScripts.CreateCaptureScript / CreateAlwaysSucceedsScript which branch on OperatingSystem.IsWindows(): Windows still gets a .cmd batch file (wrapped via cmd.exe /c by CommandNormalizationStrategy); Linux/macOS get a #!/bin/sh script with the executable bit set (File.SetUnixFileMode, via the existing TestFileSystem.MakeExecutable helper), launched directly by Process.Start. Test-only change; no product code touched. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(tests): use ToolMode=global for offline global-tool test to avoid Linux auto-mode manifest fallback (#185) RunEfcpt.ExecuteCore forces `auto` ToolMode into tool-manifest resolution on non-Windows whenever ToolPath is empty (forceManifestOnNonWindows), regardless of whether a manifest actually exists - a deliberate guard against fragile bare-PATH assumptions on CI. The offline global-tool-on-PATH test used ToolMode="auto" with no manifest and no ToolPath, so on Linux it silently resolved via `dotnet tool run` (through the fake dotnet shim) instead of invoking the fake global-tool executable directly, leaving global-tool-invocations.log never written. Using ToolMode="global" (any non-auto/non-tool-manifest value, per the ToolMode doc comment) bypasses that platform-dependent branch entirely and exercises the intended Default/global-tool resolution branch identically on Windows and Linux. No product code changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated AWSSDK.Core from 4.0.9.7 to 4.0.100.2.
Release notes
Sourced from AWSSDK.Core's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated JD.MSBuild.Fluent from 1.3.20 to 1.3.22.
Release notes
Sourced from JD.MSBuild.Fluent's releases.
1.3.22
What's Changed
Full Changelog: JerrettDavis/JD.MSBuild.Fluent@v1.3.21...v1.3.22
1.3.21
What's Changed
Full Changelog: JerrettDavis/JD.MSBuild.Fluent@v1.3.20...v1.3.21
Commits viewable in compare view.
Updated Testcontainers.FirebirdSql from 4.12.0 to 4.13.0.
Release notes
Sourced from Testcontainers.FirebirdSql's releases.
4.13.0
What's Changed
Thank you to everyone who contributed and shared their feedback 🤜🤛.
The NuGet packages for this release have been attested for supply chain security using
actions/attest. This confirms the integrity and provenance of the artifacts and helps ensure they can be trusted: #33686956.🚀 Features
🐛 Bug Fixes
📖 Documentation
🧹 Housekeeping
📦 Dependency Updates
Commits viewable in compare view.
Updated Testcontainers.MsSql from 4.12.0 to 4.13.0.
Release notes
Sourced from Testcontainers.MsSql's releases.
4.13.0
What's Changed
Thank you to everyone who contributed and shared their feedback 🤜🤛.
The NuGet packages for this release have been attested for supply chain security using
actions/attest. This confirms the integrity and provenance of the artifacts and helps ensure they can be trusted: #33686956.🚀 Features
🐛 Bug Fixes
📖 Documentation
🧹 Housekeeping
📦 Dependency Updates
Commits viewable in compare view.
Updated Testcontainers.MySql from 4.12.0 to 4.13.0.
Release notes
Sourced from Testcontainers.MySql's releases.
4.13.0
What's Changed
Thank you to everyone who contributed and shared their feedback 🤜🤛.
The NuGet packages for this release have been attested for supply chain security using
actions/attest. This confirms the integrity and provenance of the artifacts and helps ensure they can be trusted: #33686956.🚀 Features
🐛 Bug Fixes
📖 Documentation
🧹 Housekeeping
📦 Dependency Updates
Commits viewable in compare view.
Updated Testcontainers.Oracle from 4.12.0 to 4.13.0.
Release notes
Sourced from Testcontainers.Oracle's releases.
4.13.0
What's Changed
Thank you to everyone who contributed and shared their feedback 🤜🤛.
The NuGet packages for this release have been attested for supply chain security using
actions/attest. This confirms the integrity and provenance of the artifacts and helps ensure they can be trusted: #33686956.🚀 Features
🐛 Bug Fixes
📖 Documentation
🧹 Housekeeping
📦 Dependency Updates
Commits viewable in compare view.
Updated Testcontainers.PostgreSql from 4.12.0 to 4.13.0.
Release notes
Sourced from Testcontainers.PostgreSql's releases.
4.13.0
What's Changed
Thank you to everyone who contributed and shared their feedback 🤜🤛.
The NuGet packages for this release have been attested for supply chain security using
actions/attest. This confirms the integrity and provenance of the artifacts and helps ensure they can be trusted: #33686956.🚀 Features
🐛 Bug Fixes
📖 Documentation
🧹 Housekeeping
📦 Dependency Updates
Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore <dependency name> major versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)@dependabot ignore <dependency name> minor versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)@dependabot ignore <dependency name>will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)@dependabot unignore <dependency name>will remove all of the ignore conditions of the specified dependency@dependabot unignore <dependency name> <ignore condition>will remove the ignore condition of the specified dependency and ignore conditions