Repository navigation
chore(license): Apache 2.0 licensing for CNCF: verbatim LICENSE, NOTICE and source headers - #134
Conversation
Add the apache2-cncf licence to .golic.yaml: golic's Apache 2.0 header with the copyright line "Copyright The CryptOS Authors." and no year, following the CNCF copyright-notices guidance. NOTICE and the README licence line use the same notice. Refs CryptOS-PKI/.github#4 Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
golic remove -t apache2 -c "2026 Shane" drops the old header by exact text, then golic inject -t apache2-cncf adds the new one in the same place, so the copyright line is the only line that changes in each file. The license tasks now use the apache2-cncf template. Headers golic does not manage are edited the same way by hand. Refs CryptOS-PKI/.github#4 Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
|
Staying in draft until the next golic release. golic's The re-stamp in this branch still has the title line, so it will be redone with the new golic: One requirement for that release: in golic v1.1.0, |
The LICENSE file had reworded sections 6 and 9 and a filled-in appendix, so licence scanners, including GitHub's, could not match it to Apache-2.0. Replace it with the text published at https://www.apache.org/licenses/LICENSE-2.0.txt, byte for byte. Copyright and attribution stay in NOTICE. Refs CryptOS-PKI/.github#4 Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
This reverts commit 62be158, the interim re-stamp. golic v1.2.0 renders the verbatim Apache 2.0 notice, so the headers go back to the old text and are replaced in one pass in the next commit. Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
golic v1.2.0 renders apache2 as the notice from the Apache License appendix, with no title line. golic replace -t apache2 -c "The CryptOS Authors." swaps the old header in place, so the local apache2-cncf licence is no longer needed and is removed from .golic.yaml. The Taskfile pins golic v1.2.0, and license and license:fix pass --license-file, so task license (and CI) also checks that LICENSE is the verbatim Apache 2.0 text. Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
|
Closing summary: brought up to date with main (4 commits since the re-stamp). Main added no new source files, so no re-stamp was needed. |
What and why
One licensing PR for CNCF readiness: the verbatim Apache 2.0
LICENSE,NOTICE, the README licence line and every source header, in one change (owner decision; this folds in #132, which only replacedLICENSE).The copyright notice follows the CNCF guidance (cncf/foundation copyright-notices.md): "Copyright The XYZ Authors.", with no year and no single holder name.
Refs CryptOS-PKI/.github#4
1. LICENSE: the verbatim Apache License 2.0 text
LICENSEis now the text published at https://www.apache.org/licenses/LICENSE-2.0.txt, byte for byte (sha256cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30), the same file CryptOS-PKI/.github#6 and CryptOS-PKI/cryptos-lab#3 add. The old file had sections 6 and 9 and the appendix reworded, and the appendix filled in with a copyright line, so GitHub reportedNOASSERTIONfor this repo. On this branch GitHub detectsApache-2.0(GET /repos/CryptOS-PKI/web/license?ref=chore/4-cncf-source-headers).What the old file said that the published text does not (
-old,+verbatim):2. NOTICE and README
NOTICEline 2 and the README licence line now sayCopyright The CryptOS Authors.. NOTICE keeps the attribution.3. Source headers
Every source header is now the verbatim notice from the appendix of the Apache License 2.0, with the CNCF copyright line and no title line:
Against the old header, the title line and its blank line go and the copyright line changes. No other line in any file changes:
apache2template is that verbatim notice:golic replace -t apache2 -c "The CryptOS Authors."swaps the header golic wrote for the new one in place and keeps the bytes around it. 175 golic-managed files.apache2-cncflicence it relied on is gone from.golic.yaml, so.golic.yamlis back to itsmaincontent.src/index.csscarries a hand-maintained header (.cssis outside.licignore) and got the same edit by hand.**/*.d.tsby default, which would have droppedsrc/vite-env.d.ts(hand-written, stamped until now) out of the check..licignoreopts that one file back in by path (!src/vite-env.d.ts), so golic still manages 175 files, as it did under v0.3.0.#file), removingApache License 2.0, its blank line andCopyright 2026 Shane, and addingCopyright The CryptOS Authors.Nothing else changed.4. Taskfile and CI
Taskfile.ymlpins golic v1.2.0 (go install github.com/Bugs5382/golic/cmd/golic@v1.2.0, inlicenseandlicense:fix; it was v0.3.0). That is the only golic pin: CI installs golic throughtask license, andgo installchecks the module against the Go checksum database.license(the CI check) isgolic inject -t apache2 -c "The CryptOS Authors." --license-file --dry -x, andlicense:fixis the same without--dry -x.--license-filemakes golic checkLICENSEagainst the official Apache 2.0 text too, so a rewordedLICENSEfails CI. The task descriptions say so..github/workflows/job-golic.yamlrunstask license, so it follows the Taskfile: it has no golic version or template of its own.license-checker-rseidelsohnallowlist injob-license-check-npm.yaml) check third-party dependencies, not this repo's ownLICENSEor headers, andApache-2.0is already on the allowlist, so they are unaffected and unchanged.No docs change in this repo: the license page on CryptOS-PKI/docs#28 shows this copyright line and header (commit bdc6ee2), and CryptOS-PKI/docs#46 moves the docs repo itself to the same text.
Verification
LICENSEis byte for byte the published text (sha256 above), and golic's--license-filecheck agreesApache-2.0golic replace -t apache2 -c "The CryptOS Authors." --drylisted 174/174, plussrc/vite-env.d.ts(1/175) once.licignoreopted it back in, and the real run changed only the header lines (checked hunk by hunk)golic inject -t apache2 -c "The CryptOS Authors." --license-file --dry -x: exit 0, 0/175 changed; a secondinject -xand a secondreplace -xboth change 0 filestask license: exit 0npm run lint,npm test) passed on push, andnpm run buildpasses.How this was verified
shasum -a 256 LICENSEmatchescurl -sSL https://www.apache.org/licenses/LICENSE-2.0.txt | shasum -a 256, andgh api "repos/CryptOS-PKI/web/license?ref=chore/4-cncf-source-headers"returnsspdx_id: Apache-2.0. golic v1.2.0replace --dryfirst, then the real run;git diff -U0over the source files shows only-Apache License 2.0,-(or-#),-Copyright 2026 Shaneand+Copyright The CryptOS Authors., one hunk per file. The check and the second runs above all exit 0 with nothing to change.git diff origin/main...HEADtouches 181 files: the 175 golic-managed headers, the hand-maintained headers,LICENSE,NOTICE, the README licence line,Taskfile.ymland.licignore.Before merging: add a closing comment summarizing what was actually done in this PR
(not just the checked boxes).