chore(license): remove accidental MIT claim, add OSQP attribution - #24
Merged
Merged
Conversation
The license field read { text = "MIT" } — emitted as packaging boilerplate
during an Aug 2026 packaging refactor, not a decision. Removing it restores
the conservative default (no grant) pending a real licensing call.
Separately, the repo redistributes 48 files of vendored OSQP 1.0.0
(Apache-2.0) without shipping the license text or notices, which sections
4(b) and 4(c) require. Adds THIRD-PARTY.md, licenses/Apache-2.0.txt,
licenses/OSQP-NOTICE.txt and MANIFEST wiring so those files actually travel
in the sdist.
- LICENSE: intentionally empty, pending legal review
- pyproject.toml: license field removed, comment explains why
- MANIFEST.in: include LICENSE, THIRD-PARTY.md, licenses/*
- README.md: Licensing section
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.
What
Two independent problems, both verified against current
main:1. The repo declares an MIT license it never chose.
pyproject.tomlcarriedlicense = { text = "MIT" }with noLICENSEfile anywhere in history. It was emitted as packaging boilerplate during an Aug 2026 packaging refactor, not a decision.A license field with no license text asserts terms the repo does not ship — and on a public repo, a permissive license is irrevocable for copies already taken. Removing it is the safe direction: it restores the conservative default (no grant) and needs no legal sign-off. Adding one back does, which is why the file is left intentionally empty pending review.
pyproject.toml—licensefield removed, with a comment explaining why it must not come back un-decidedLICENSE— intentionally empty, pending the organization's decisionREADME.md— a Licensing section that states the same, rather than implying a grant2. Vendored OSQP had no attribution.
The repo redistributes 48 files of vendored OSQP 1.0.0 (Apache-2.0) under
src/shinro/runtime/codegen/emosqp/. Apache-2.0 §4(b)/(c) require shipping the license text and retaining notices. Alicense=string inside a vendoredsetup.pyis not the license text — it is invisible to anyone consuming the repo.THIRD-PARTY.md— the inventorylicenses/Apache-2.0.txt— the full text (§4(b))licenses/OSQP-NOTICE.txt— upstream copyright + provenance (§4(c))The part that would have wasted the fix
MANIFEST.inlisted only source globs, so the sdist silently dropped every file just added. Fixed withinclude LICENSE,include THIRD-PARTY.md,recursive-include licenses *.Verified by building the artifact, not by reading the manifest:
pyproject.tomlstill parses (tomllib) and the sdist still builds.Notes
main; contains only these 7 files, zero deletions.THIRD-PARTY.mdentry, so this cannot regress.