Repository navigation
Ship licence documents in every package and scope the open-source claim - #514
carillan81 wants to merge 6 commits into
Conversation
…ry package Co-Authored-By: Claude <noreply@anthropic.com>
b0644e5 to
7e43353
Compare
anisaoshafi
left a comment
There was a problem hiding this comment.
I was wondering if we actually needed all of this logic, but if legal says we need it, let's go for it.
Gentle reminder, before this PR is merged, the bundled extensions needs a new version published (with https://github.com/localstack/lstk-bundled-extensions/pull/19) to avoid lstk release CI failures.
Shared a concern on dependabot in the comments, otherwise lgtm!
Thank you 🚀
There was a problem hiding this comment.
When dependabot bumps updates, are package versions in THIRD_PARTY_NOTICES.txt also updates? If not, it means that dependabot PRs can fail, is it right?
There was a problem hiding this comment.
This is a very good catch. I'm changing this so the txt is generated at build time and is not affecting dependabot PRs.
…doesn't block dependabot PRs
…doesn't block dependabot PRs
Motivation
Every lstk package now contains two programs: lstk itself, which is Apache 2.0, and the bundled extensions (
doctor,deploy), which are proprietary. Legal asked us to stop presenting the whole package as open source, and to ship the licence texts for both parts in every download. Today the packages contain no licence file at all, the npm packages are labelled plain Apache 2.0, and the README says the code can be forked freely without saying that applies to the core only.Solution
LICENSEandTHIRD_PARTY_NOTICES.txt, plus the bundle's notices asbundled-extensions.THIRD_PARTY_NOTICES.txt. The bundle's proprietary terms will be added the same way once legal has written them.lstk updateinstalls the licence files next to the bundle. Older archives without them still update.Apache-2.0 AND LicenseRef-LocalStack-Proprietary(identifier pending legal). The wrapper package keepsApache-2.0. The cask config drops itslicensefield, which Homebrew never rendered.THIRD_PARTY_NOTICES.txtfor lstk's own libraries is generated byscripts/third-party-notices/generate.sh.make check-noticesfails CI when the file is stale or a library has a licence outside the approved list.Three libraries are not plainly permissive and are on the approved list: HashiCorp HCL (MPL-2.0), go-textseg (MIT + Unicode), go-localereader (no licence file, README says MIT).
Merge order: localstack/lstk-bundled-extensions#19 must merge and publish a bundle first. This PR makes the release fail when the bundle has no notices file, and that also applies to re-running an older lstk release against a bundle published before the file existed.
Docs
User-facing: the docs site should say the core is Apache 2.0 and the bundled
doctoranddeployextensions are proprietary, wherever lstk is described as open source. Downloads now containLICENSE,THIRD_PARTY_NOTICES.txtandbundled-extensions.THIRD_PARTY_NOTICES.txtnext to the binary. No command or flag changed.Review
Human review advised: legal-sensitive wording and package metadata, and a release that depends on the extensions repo shipping first.
Todo
LicenseRef-LocalStack-Proprietarybundled-extensions.LICENSE.txtonce legal publishes the terms (one line each in the fetch script,.goreleaser.yamland the npm script; the updater already installs it)Towards DPX-752
Co-Authored-By: Claude noreply@anthropic.com
🤖 Generated with Claude Code