Skip to content

ci: the licence gate read a disjunction as a conjunction - #17

Merged
rodrigoteamx merged 1 commit into
mainfrom
chore/license-disjunction
Aug 13, 2026
Merged

ci: the licence gate read a disjunction as a conjunction#17
rodrigoteamx merged 1 commit into
mainfrom
chore/license-disjunction

Conversation

@rodrigoteamx

Copy link
Copy Markdown
Contributor

Thirty-eight repos carry a licence gate that reads Composer's licence array as a conjunction. It is a disjunction — a package offered under BSD-3-Clause OR GPL-2.0-only may be used under BSD.

Inert here today; corrected because it is a defect of a class. Battery, control and scope: greenhouse evidence/0180.

Composer lists a package's licences as an array meaning OR — the package is offered under any of
them and the consumer picks one. This gate iterated that array and failed as soon as a single entry
was disallowed, which turned "you may use this under BSD-3-Clause" into "this drags in GPL".

The defect arrives inert here: nothing in this tree is dual-licensed today. It is corrected anyway,
because it is a defect of a class rather than of a site, and correcting it while the tree is at peace
is cheaper than correcting it the day it bites.

A package now passes when any one of its licences is allowed. What does not change is the treatment
of a package that declares none: still a failure. Loosening how licences combine must not loosen what
the gate is for — a disjunction of nothing but disallowed licences still fails.

Battery and control in the greenhouse: evidence/0180.
@rodrigoteamx
rodrigoteamx merged commit bdb021f into main Aug 13, 2026
2 checks passed
@rodrigoteamx
rodrigoteamx deleted the chore/license-disjunction branch August 13, 2026 23:50
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