Repository navigation
CI fails on a dependency whose licence is not allowed (spec 091) - #422
Merged
Merged
Conversation
…allowed (#402) Draft v0.1.0: the allowed list, the exceptions and the rules are the maintainer's to rule and are marked pending. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…he roadmap Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Proposed with spec 091: an allowed list, named exceptions and a bin/ci checks step. Reviewed by Fable (APPROVE WITH CHANGES, fixed). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…d 2 recorded (#402) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ception form for vcr (#402) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… named exception (#402) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…xists (#402) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…form (#402) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… names (#402) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ted (#402) vcr declares Hippocratic-2.1 and MIT; the rule "any one allowed" would pass it on MIT. The exception with all_required: true makes the check judge it by name and go stale only when every declared licence is allowed (spec 091 decisions 2 and 3, AC-3.4, AC-3.6). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Adds policy.rb, check.rb, licences.rake and config/licence_policy.yml to the files the core spec reads and raises the size expectation from > 6 to > 10 (spec 091 AC-5.1). The files already exist, so the edited example passes at once: this is added coverage, not a red-first change. Checked by hand that it catches a violation: the word "scryfall" in a comment of config/licence_policy.yml failed the "never says" example, naming that file, and was removed again. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…, CLAUDE.md and rules (#402) Spec 091 Story 5: catalog-core.md (rules, constants, sources), release-and-deploy.md (the step), CLAUDE.md (commands, status), testing.md and conventions.md. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ty policy file (#402) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… name all_required (#402) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… deploy Distillation log rows, the index row (Frozen, retirement owed), and the owed items (vcr, the README step list) in verification.md. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… deploy area docs (spec 027 D4) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
plainprogrammer
added a commit
that referenced
this pull request
Nov 14, 2026
Co-Authored-By: Claude Fable 5.2 <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.
Closes #402.
What this does
A pull request that adds a gem, or a JavaScript package, font or icon set the third-party manifest lists, under a licence the project hasn't allowed now fails
bin/ci checks. The failure names the dependency, its licence andconfig/licence_policy.yml, which records the allowed SPDX ids and the named exceptions. It judges the list spec 087's reader already builds, so there is no second reader of the bundle, and it reports spec 087's guard too, so an importmap pin with no entry fails the checks job as well as the suite.MIT,BSD-2-Clause,BSD-3-Clause,Apache-2.0,ISC,Ruby,OFL-1.1, and nothing else.rdocasRuby,diff-lcsasMIT). A missing or unrecognised string fails; nothing is normalised.bundler-audit(GPL-3.0-or-later),brakeman(Brakeman Public Use License) andvcr(Hippocratic-2.1,MIT), each a tool the app never loads. An exception goes stale, and fails, when the gem leaves the lockfile, declares other licences, or is allowed without it.vcrusesall_required: true, because itsMITis unverified and an ordinary exception for it would read as stale (spec decision 3).bin/rails licences:check, after the importmap audit inconfig/ci.rb. No workflow, Dockerfile or settings change.Spec 091 (v0.5.2), ADR 0031 (Proposed; becomes Accepted with this PR), the plan,
verification.md, the area docs (catalog core, release and deploy),CLAUDE.mdand two rules files are in the PR.Proof
policy_spec.rb,check_spec.rb,licences_rake_spec.rb(in-process, exit status and streams), and the step's place inci_definition_spec.rb; the suite is 5073 examples (bin/rspec --dry-run), and the pre-push hook ran the one fullbin/cion this SHA.Apache-2.0and without thebrakemanexception madebin/rails "licences:check[...]"print 8 problems, one per dependency with its licence and the policy path, and exit 1. Today's tree passes:Licences: 151 components judged.bin/ci checkstime: 35.5 s before; 30.98 s (cold), 24.70 s, 25.80 s and 25.64 s after. The totals are lower than the baseline because other workers share the machine; the step's own cost is 1.2 to 1.3 s.Owed to the maintainer
vcr6.4.1 declaresHippocratic-2.1andMITand ships no licence file; whether theMITis a real choice is unverified upstream. It is a named exception for that reason; checking upstream would settle it.bin/cistep list (lines 124 to 132) predates this branch (no migration guard, YARD or ratchet) and now also lacks the licence check. Not changed.docs/specs/README.mdanddocs/adr/README.md(siblings add their rows at the same place).🤖 Generated with Claude Code