Skip to content

docs: refresh dependency table — Magick.NET 14.15.0 + AutoMapper licence pin (#871, #887) - #902

Merged
jsboige merged 1 commit into
masterfrom
docs/deps-table-871-887
Jul 25, 2026
Merged

docs: refresh dependency table — Magick.NET 14.15.0 + AutoMapper licence pin (#871, #887)#902
jsboige merged 1 commit into
masterfrom
docs/deps-table-871-887

Conversation

@jsboige

@jsboige jsboige commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Closes the doc-rot loop on two dependency decisions taken this cycle.

Magick.NET 14.14.0 → 14.15.0

#871 merged (b70984f4). A forced restore on master emitted 28 NU1901/NU1902 lines (10 medium, 18 low), all against 14.14.0; each advisory declares patched = 14.15.0 exactly. Licence unchanged (Apache-2.0, requireLicenseAcceptance: false). Table updated, and the existing no-op-CMYK-for-PNG note (#632) preserved verbatim.

AutoMapper 14.0.0 — new row, licence pin

The pin rationale lived only in a .csproj comment. That is not where an agent looks before approving a dependency bump, which is how #887 (Dependabot 14.0.0 → 15.1.3) arrived looking routine: green CI, a real security advisory in its body, and no visible sign it would revert decision jsboige 2026-06-23 (#588 / 6caf5833) and move the repo from MIT to RPL-1.5 / commercial (requireLicenseAcceptance: true). Surfacing it in the table that CLAUDE.md presents as authoritative is the cheap prevention. Marked QuestPDF as licence-pinned too, for the same reason.

Restore-vs-build note

Added, because it cost me a wrong conclusion this cycle: an incremental dotnet build reported 0 warnings while dotnet restore --force reported 28. NuGet audit only runs on restore. So the #587 zero-warning invariant can go red with no code change at all, purely from advisory drift against a pinned version — and the obvious check silently misses it.

Docs only — 0 code, 0 config, 0 prod CSV.

🤖 Generated with Claude Code

…nce pin (#871, #887)

- Magick.NET-Q16-AnyCPU 14.14.0 -> 14.15.0 (#871 merged): 14.15.0 is the
  declared first-patched version for 5 advisories (4 medium + 1 low) that
  accumulated against 14.14.0. Licence unchanged (Apache-2.0).
- NEW AutoMapper row documenting the 14.0.0 licence pin. The rationale
  previously existed only as a comment in the .csproj, which is not where an
  agent looks before approving a dependency bump — #887 (Dependabot 15.1.3)
  would have silently reverted the ratified decision jsboige 2026-06-23 and
  pulled the repo from MIT into RPL-1.5/commercial.
- Note that NuGet audit warnings surface on `restore`, not incremental
  `build` — an incremental build reports 0 while a forced restore reported 28
  NU1901/NU1902 lines. This is how the #587 zero-warning invariant went red
  without any code change (advisory drift against a pinned version).

Docs only; 0 code, 0 config, 0 prod CSV.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jsboige
jsboige merged commit a9400a6 into master Jul 25, 2026
3 checks passed
@jsboige
jsboige deleted the docs/deps-table-871-887 branch July 25, 2026 15:30
jsboige pushed a commit that referenced this pull request Jul 25, 2026
…ive, 2 non-release flags

Release-gate audit of every pipeline dependency, triggered by the accidental discovery (#887)
that AutoMapper 15.x flips MIT → RPL-1.5/commercial. No full-set audit had been done; prepared
ahead of public release v0.9.0 (ai-01 dispatch).

Method: dotnet list package --include-transitive + NuGet Registration API for licenseExpression /
licenseUrl / requireLicenseAcceptance. Rule: nuspec is truth (divergence → nuspec wins).

Verdict:
- Shipping pipeline (Argumentum.AssetConverter) — all 24 direct deps + full transitive closure
  are permissive (MIT / Apache-2.0 / MS-PL / BSD-3). 0 GPL/AGPL/RPL/SSPL/commercial in the
  release binary.
- The 3 license-pinned deps verified against nuspec: AutoMapper 14.0.0 MIT (15.x RPL — pinned),
  Magick.NET 14.15.0 Apache-2.0, QuestPDF 2022.12.12 MIT (> = commercial — pinned). Match #902.
- type="file" licenses resolved manually (ExtendedXmlSerializer/SharpToken MIT, SkiaSharp/System.*
  MS-.NET MIT) — the SPDX angle-matter flagged in the dispatch.
- 2 non-release items flagged for arbitrage:
  1. FluentAssertions 8.5.0 (Tests) — commercial Xceed since v8.0 (2025-02); type=file +
     requireLicenseAcceptance=true. Test-only, does not ship.
  2. UglyToad.PdfPig 1.7.0-custom-5 (AssetConverter) — custom build, not on nuget.org, license
     undeclared. Real PdfPig = Apache-2.0; custom-build provenance needs confirmation.

If both flags resolve permissively, the license gate is PASS. This is a result, not a gap.

0 code change, 0 prod CSV, 0 run. Read-only audit; doc-only.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 26, 2026
…24 permissive (gate PASS); 1 test-only flag (#905)

* docs(licensing): dependency license inventory — pipeline 100% permissive, 2 non-release flags

Release-gate audit of every pipeline dependency, triggered by the accidental discovery (#887)
that AutoMapper 15.x flips MIT → RPL-1.5/commercial. No full-set audit had been done; prepared
ahead of public release v0.9.0 (ai-01 dispatch).

Method: dotnet list package --include-transitive + NuGet Registration API for licenseExpression /
licenseUrl / requireLicenseAcceptance. Rule: nuspec is truth (divergence → nuspec wins).

Verdict:
- Shipping pipeline (Argumentum.AssetConverter) — all 24 direct deps + full transitive closure
  are permissive (MIT / Apache-2.0 / MS-PL / BSD-3). 0 GPL/AGPL/RPL/SSPL/commercial in the
  release binary.
- The 3 license-pinned deps verified against nuspec: AutoMapper 14.0.0 MIT (15.x RPL — pinned),
  Magick.NET 14.15.0 Apache-2.0, QuestPDF 2022.12.12 MIT (> = commercial — pinned). Match #902.
- type="file" licenses resolved manually (ExtendedXmlSerializer/SharpToken MIT, SkiaSharp/System.*
  MS-.NET MIT) — the SPDX angle-matter flagged in the dispatch.
- 2 non-release items flagged for arbitrage:
  1. FluentAssertions 8.5.0 (Tests) — commercial Xceed since v8.0 (2025-02); type=file +
     requireLicenseAcceptance=true. Test-only, does not ship.
  2. UglyToad.PdfPig 1.7.0-custom-5 (AssetConverter) — custom build, not on nuget.org, license
     undeclared. Real PdfPig = Apache-2.0; custom-build provenance needs confirmation.

If both flags resolve permissively, the license gate is PASS. This is a result, not a gap.

0 code change, 0 prod CSV, 0 run. Read-only audit; doc-only.

Co-Authored-By: Claude-Code <noreply@anthropic.com>

* docs(licensing): #905 reconcile verdict — PdfPig resolved via #908, 24/24 permissive, gate PASS

Reconciles the §Verdict headline with the §7.2 finding ai-01 flagged: the title said
"100% permissive, all 24 direct deps" while §7.2 documented one direct dep (UglyToad.PdfPig
1.7.0-custom-5) with no declared licence. #908 swapped that dep to the official PdfPig 0.1.14
(Apache-2.0, SPDX expression in the nuspec) — so 24/24 direct deps are now genuinely permissive
and the headline is honest.

Changes:
- §Verdict: headline now "24/24 direct deps permissive", PdfPig-custom marked RESOLVED via #908,
  only FluentAssertions (test-only, non-shipped) remains flagged. Gate = PASS (no caveat).
- §1 table: UglyToad.PdfPig row → PdfPig 0.1.14 Apache-2.0 (official, swapped via #908).
- §2 VisualTests row: no longer "contrast" — both projects now use the same official PdfPig.
- §3 transitive: UglyToad.PdfPig.* → PdfPig.* 0.1.14 Apache-2.0.
- §7.2: marked RESOLVED, original finding retained as audit record.
- §8 conclusion: 24/24 permissive, gate PASS, FluentAssertions = separate jsboige arbitration.

Co-Authored-By: Claude-Code <noreply@anthropic.com>

---------

Co-authored-by: Your <your.email@example.com>
Co-authored-by: Claude-Code <noreply@anthropic.com>
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