Skip to content

ci: exempt the rust-cache action from the copyleft deny-list - #82

Merged
plusky merged 1 commit into
mainfrom
ci/allow-rust-cache-license
Aug 11, 2026
Merged

ci: exempt the rust-cache action from the copyleft deny-list#82
plusky merged 1 commit into
mainfrom
ci/allow-rust-cache-license

Conversation

@plusky

@plusky plusky commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Unblocks #80, which Dependabot cannot merge today: bumping
Swatinem/rust-cache trips our own deny-licenses list on LGPL-3.0.

Why the check is misfiring

The deny-list's stated purpose is that this is a permissive Apache-2.0
project, so copyleft dependencies compiled into the binary we
distribute
are rejected. That is exactly right for crates — and
deny.toml enforces it against the real crate graph, untouched by this PR.

A GitHub Action is not that. rust-cache runs on the runner, saves and
restores ~/.cargo and target/, and is never linked, vendored, or
conveyed. Its copyleft cannot reach anything we ship — the same reason
proprietary software may be compiled with GCC. release.yml, which builds
the release tarballs and publishes to crates.io, does not use it at all;
all five occurrences are in ci.yml.

This changes nothing in substance

The identical LGPL-3.0 code is already pinned on main (e18b4977
verified same licence as the proposed SHA). dependency-review only
inspects changed dependencies, so the existing pin was never examined;
only a bump makes it look. Without this exemption every future
rust-cache bump fails the same way and Dependabot reopens it forever.

Scope

  • deny.toml untouched — crates keep the full copyleft policy.
  • deny-licenses untouched — all 15 entries remain, LGPL-3.0-only
    included.
  • Exempts one action, not pkg:githubactions/*, so a new copyleft
    action still trips the check and gets a deliberate decision rather than
    a blanket pass.

The reasoning is recorded in a comment beside the exemption, since the two
policies now differ by one entry and a future reader would otherwise read
that as drift from deny.toml.

dependency-review denies copyleft licences because a crate compiled into
the binary we distribute must not carry them. Swatinem/rust-cache is
LGPL-3.0 and was tripping that list, blocking its own version bumps.

The list is aimed at the wrong thing here. A GitHub Action runs on the
runner, saves and restores ~/.cargo and target/, and is never linked,
vendored or conveyed, so its copyleft cannot reach an artifact we ship.
release.yml -- which builds the tarballs and publishes to crates.io --
does not use it at all; only ci.yml does.

Nothing changes in substance: the same LGPL-3.0 code is already pinned on
main. dependency-review only inspects CHANGED dependencies, so the
existing pin was never looked at and only a bump makes it fail. Without
this exemption every future rust-cache bump fails identically and
Dependabot reopens it forever.

deny.toml stays the sole authority for crates and is deliberately not
relaxed. The exemption names one action rather than pkg:githubactions/*,
so a new copyleft action still trips the check and gets a decision.

Unblocks #80
@plusky
plusky merged commit 2b0cd8b into main Aug 11, 2026
11 checks passed
@plusky
plusky deleted the ci/allow-rust-cache-license branch August 11, 2026 18:10
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