Skip to content

Commit 1543a53

Browse files
committed
Merge: pin ImageSharp to 3.1.x
2 parents ed99cf7 + 0bdb79e commit 1543a53

2 files changed

Lines changed: 34 additions & 14 deletions

File tree

.github/dependabot.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,24 @@ updates:
1818
update-types:
1919
- minor
2020
- patch
21+
ignore:
22+
# ImageSharp 4 added a build-time licence check: with no key, no licence file and
23+
# no sixlabors.lic in the workspace, the compile fails outright. The split licence
24+
# grants free use under 1M USD annual gross revenue and this project qualifies, but
25+
# v4 enforces regardless — free use still needs a key from sixlabors.com, which
26+
# means an account plus a secret in Actions and on every dev machine.
27+
#
28+
# Decided 2026-08-03 to stay on 3.1.x, which is maintained (3.1.12 shipped
29+
# 2025-10-29) and carries the same licence terms without the enforcement. Patches
30+
# and minors still come through; only the major is ignored, so this pin does not
31+
# cost security updates on the 3.1 line.
32+
#
33+
# To revisit: either take a key, or drop the dependency — the whole usage is
34+
# Image.Load, Clone(c => c.Crop(...)) and SaveAsPng in MapRefinement.CropTiles,
35+
# and SkiaSharp is MIT with no threshold to re-check as this grows.
36+
- dependency-name: SixLabors.ImageSharp
37+
update-types:
38+
- version-update:semver-major
2139
commit-message:
2240
prefix: "deps"
2341

docs/future-features.md

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -146,22 +146,24 @@ src/Nornis.Api --connection "<prod>"`) and must stay additive.
146146

147147
Small things noticed in passing, too small for a plan file, parked against the item
148148
that already opens the right file. None is ever urgent; all of them rot if left
149-
unwritten. The first two are open; the two below them are closed and kept for the record.
149+
unwritten. Only the sign-in one is open; the rest are closed and kept for the record.
150150

151-
- **ImageSharp 4 needs a licence key to build at all.** Dependabot PR #30 (3.1.12 → 4.0.0)
152-
was taken as far as a build and stopped there: v4 added a build-time licence check, and
153-
without `$(SixLaborsLicenseKey)`, `$(SixLaborsLicenseFile)` or a `sixlabors.lic` in the
154-
workspace, the *compile* fails — not a warning, not a runtime nag.
151+
- ~~**ImageSharp 4 needs a licence key to build at all.**~~ **Decided 2026-08-03: stay on
152+
3.1.x.** Dependabot PR #30 (3.1.12 → 4.0.0) was taken as far as a build and stopped
153+
there: v4 added a build-time licence check, and without `$(SixLaborsLicenseKey)`,
154+
`$(SixLaborsLicenseFile)` or a `sixlabors.lic` in the workspace, the *compile* fails —
155+
not a warning, not a runtime nag.
155156
- The Six Labors Split License grants Apache-2.0-style terms under 1M USD annual gross
156-
revenue, so Nornis almost certainly qualifies for free use. v4 enforces regardless: free
157-
use still needs a key obtained from sixlabors.com, which means an account and then a
158-
secret in CI as well as on every dev machine.
159-
- Three ways out, and picking one is a call about money and hosting, not code: get the
160-
key and wire it through Actions and local builds; stay on 3.1.x, which is still
161-
receiving releases (3.1.12 landed 2025-10-29); or drop the dependency, which is smaller
162-
than it sounds — the entire usage is `Image.Load`, `Clone(c => c.Crop(...))` and
163-
`SaveAsPng` in `MapRefinement.CropTiles`.
164-
- PR #30 is deliberately left open rather than closed, so the decision keeps surfacing.
157+
revenue, and this project qualifies. v4 enforces regardless: free use still needs a key
158+
from sixlabors.com, which means an account plus a secret in Actions and on every dev
159+
machine. 3.1.x carries the same terms without the enforcement and is still maintained
160+
(3.1.12 shipped 2025-10-29), so the decision costs nothing today.
161+
- The major is now ignored in `dependabot.yml` — patches and minors on the 3.1 line still
162+
come through, so this pin does not cost security updates. PR #30 closed.
163+
- What would reopen it: the 3.1 line going unmaintained, or revenue approaching the
164+
threshold. The exit is cheaper than it looks — the whole dependency is `Image.Load`,
165+
`Clone(c => c.Crop(...))` and `SaveAsPng` in `MapRefinement.CropTiles`, over PNG and
166+
JPEG only, and SkiaSharp (MIT, no threshold) covers all four operations.
165167
- **Nothing exercises real sign-in.** 3,127 tests and not one of them authenticates.
166168
The API's dev-auth bypass stands in for Auth0 everywhere, so every test — including
167169
all 318 cases in the authorization suite — starts from an identity the test handed

0 commit comments

Comments
 (0)