Skip to content

Bump dependencies to latest within license constraints#37

Merged
nieprzecietny merged 3 commits into
masterfrom
feature/net10-support-and-package-updates
May 20, 2026
Merged

Bump dependencies to latest within license constraints#37
nieprzecietny merged 3 commits into
masterfrom
feature/net10-support-and-package-updates

Conversation

@nieprzecietny
Copy link
Copy Markdown
Member

Summary

  • Bumped 6 packages across 8 csproj files; preserved multi-target framework conditions and * wildcards on Microsoft.* references.
  • Held back MediatR 13+/14 — license changed from Apache-2.0 to RPL-1.5 (Lucky Penny Software commercialization). Current 12.5.0 stays.
  • Build verified: 0 errors across net8/net9/net10 (1910 pre-existing warnings, all XML-doc).

Bumped (license-verified, no drift)

Package From To License
MailKit 4.13.0 4.16.0 MIT
Microsoft.Identity.Web 3.11.0 4.9.0 MIT
Microsoft.NET.Test.Sdk 17.* 18.* MIT
coverlet.msbuild 6.* 10.0.1 (strict) MIT
System.Linq.Dynamic.Core 1.6.6 1.7.2 Apache-2.0
SciSharp.TensorFlow.Redist 2.3.1 2.16.0 Apache-2.0

Held back / flagged

  • MediatR 12.5.0 — 13+/14 is RPL-1.5; blocked by license-change rule.
  • Polly (8.* wildcard) — BSD-3-Clause, not MIT/Apache. Pre-existing; not touched.
  • AutoMoqCore 2.1.0 — no declared license on NuGet (latest available, last released 2021).
  • Microsoft.Bcl.Memory 9.0.4 transitive vulnerability (GHSA-73j8-2gch-69rq) pulled through Microsoft.ML — needs upstream fix or explicit override.

Test plan

  • dotnet restore TailoredApps.Shared.sln
  • dotnet build TailoredApps.Shared.sln --no-restore — 0 errors
  • CI green
  • Spot-check that MailKit / Identity.Web API surface is still source-compatible (no breaking call sites)

🤖 Generated with Claude Code

- MailKit 4.13.0 -> 4.16.0 (MIT)
- Microsoft.Identity.Web 3.11.0 -> 4.9.0 (MIT)
- Microsoft.NET.Test.Sdk 17.* -> 18.* (MIT)
- coverlet.msbuild 6.* -> 10.0.1 (MIT)
- System.Linq.Dynamic.Core 1.6.6 -> 1.7.2 (Apache-2.0)
- SciSharp.TensorFlow.Redist 2.3.1 -> 2.16.0 (Apache-2.0)

Held back MediatR 13+/14 due to license change (Apache-2.0 -> RPL-1.5).
Microsoft.Extensions.* / EntityFrameworkCore wildcards left untouched.
scripts/Bump-Deps.ps1 scans every csproj, queries nuget.org for the
latest stable version of each PackageReference, and rewrites the Version
attribute when:
  - the version is not a wildcard
  - the latest version's SPDX license is in the allowlist (default: MIT, Apache-2.0)
  - the latest version's SPDX matches the currently pinned version's SPDX
    (catches relicensing like MediatR 13+ Apache-2.0 -> RPL-1.5)

.github/workflows/bump-deps.yml runs the script on a weekly schedule and
on manual dispatch, verifies the build, then opens a PR against master
via peter-evans/create-pull-request. Workflow_dispatch supports a
dry-run input and a custom license allowlist.
Some packages relicense without publishing an SPDX expression on NuGet
(e.g. MediatR 13+ went Apache-2.0 -> RPL-1.5, but neither 12.x nor 14.x
publishes a licenseExpression). The license-change rule cannot detect
this. Add an explicit -Ignore hashtable mapping package name to
exclusive version ceiling; the script clamps the latest candidate to
the highest stable version below that ceiling, or skips entirely if
the ceiling value is $null.

Default ignore entry blocks MediatR >= 13.0.0.
@nieprzecietny nieprzecietny force-pushed the feature/net10-support-and-package-updates branch from 0316212 to 1b68f6f Compare May 20, 2026 11:08
@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 56.44%. Comparing base (5d60b0d) to head (1b68f6f).

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #37      +/-   ##
==========================================
+ Coverage   54.74%   56.44%   +1.70%     
==========================================
  Files         101      101              
  Lines        3405     2877     -528     
  Branches      294      294              
==========================================
- Hits         1864     1624     -240     
+ Misses       1464     1172     -292     
- Partials       77       81       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@nieprzecietny nieprzecietny merged commit 5274719 into master May 20, 2026
3 checks passed
nieprzecietny added a commit that referenced this pull request May 20, 2026
PR #37's squash merge landed an earlier draft of this workflow. The
inline ${{ inputs.allowed-licenses || ''MIT,Apache-2.0'' }} expression
inside a multi-line PowerShell run: block fails GitHub Actions YAML
parsing with:

  (Line: 39, Col: 14): Unexpected symbol: '0'''. Located at position 43
  within expression: inputs.allowed-licenses || ''MIT,Apache-2.0''

Fix:
  - Hoist defaults to job-level env: so PowerShell reads plain $env:VAR
    without any ${{ }} interpolation inside the script body.
  - Use github.event.inputs.* (defined for workflow_dispatch, null on
    cron) so the || fallback works.
  - Switch the Verify build / Create pull request guards to env.DRY_RUN.
  - Rename $args -> $scriptArgs (PowerShell auto-variable collision).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant