Skip to content

docs(notice): rename NOTICE.md -> NOTICE; add CLA third-party section#1073

Merged
danielmeppiel merged 4 commits intomainfrom
notice-rename-and-cla-section
Apr 30, 2026
Merged

docs(notice): rename NOTICE.md -> NOTICE; add CLA third-party section#1073
danielmeppiel merged 4 commits intomainfrom
notice-rename-and-cla-section

Conversation

@danielmeppiel
Copy link
Copy Markdown
Collaborator

Summary

Two changes, one file rename.

1. Rename NOTICE.md -> NOTICE

Aligns with the Apache / CNCF convention used by upstream third-party-attribution files (kubernetes-sigs/kro, kubernetes-sigs/headlamp, Apache projects, etc.). The .md extension was non-idiomatic for a generated legal artifact -- license scanners and SBOM generators match on the bare NOTICE filename.

Updated everywhere:

  • scripts/generate-notice.py (NOTICE_OUT constant + all docstring / error / --check strings)
  • Makefile (make notice target reference)
  • .github/workflows/notice-drift.yml (workflow comments, step name)
  • CHANGELOG.md

2. NOTICE: add 'Submitted on behalf of a third-party' section

When the repo transferred from danielmeppiel/awd-cli to the microsoft org, several PRs had already merged from contributors for whom the microsoft-github-policy-service CLA bot did not record a signature. We could not retroactively reach all of them.

Per industry convention (CNCF NOTICE files mirror this exact wording from section 7 of common CLA texts), each such contribution is identified as submitted on behalf of a third-party.

Driven by a new _third_party_submissions block in scripts/notice-metadata.yaml -- legally-significant text stays alongside per-component data, not hidden in code.

Contributors named

Verified via the GitHub Check Runs API against the microsoft-github-policy-service app's license/cla check, on every merged PR by each suspected author. None has a successful CLA check on file:

Contributor PRs Evidence
@pofallon #4 No CLA check-run recorded (predates bot)
@richgo #8, #25, #26, #33, #34 No CLA check-run recorded (predates bot)
@ryanfk #92 Check-run present, output.title = 'Contributor License Agreement is not agreed yet.'
@foutoucour #108 No CLA check-run recorded
@Jah-yee #184 No CLA check-run recorded

Listed contributors who later sign the CLA -- or who were signed under a different GitHub account at the time -- can request removal via issue.

Verification

  • uv run python scripts/generate-notice.py --check exits 0 (NOTICE is up to date).
  • NOTICE Drift Check workflow updated to operate on the renamed path; expected to pass.
  • No src//tests/ code changes -> Lint / Build & Test untouched.

Out of scope

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

Two changes, one file rename:

1. Rename NOTICE.md -> NOTICE, matching the Apache / CNCF convention used
   by upstream third-party-attribution files (kubernetes-sigs/kro,
   kubernetes-sigs/headlamp, etc.). The .md extension was non-idiomatic
   for a generated legal artifact -- NOTICE files are read by tooling
   (license scanners, SBOM generators) that match on the bare filename.
   Generator (scripts/generate-notice.py), Makefile target, and the
   NOTICE Drift Check workflow are all updated to operate on the
   extension-less path.

2. Add a 'Submitted on behalf of a third-party' section to NOTICE,
   crediting five contributors whose pull requests landed before the
   microsoft-github-policy-service CLA bot recorded a signature on
   file. The repo transferred from danielmeppiel/awd-cli to the
   microsoft org; some early PRs predate CLA enforcement, and we
   could not retroactively reach all contributors. Mirrors section 7
   of common CLA texts (the wording adopted by CNCF NOTICE files).

   Driven by a new _third_party_submissions block in
   scripts/notice-metadata.yaml -- legally-significant wording stays
   alongside the per-component data, not buried in code.

   Contributors named (verified via Check Runs API against the
   microsoft-github-policy-service app, license/cla check on every
   merged PR by each suspected author):
     - @pofallon  (PR #4)
     - @richgo    (PRs #8, #25, #26, #33, #34)
     - @ryanfk    (PR #92 -- bot ran with conclusion=null,
                  output: 'Contributor License Agreement is not agreed yet.')
     - @foutoucour (PR #108)
     - @Jah-yee   (PR #184)

   Listed contributors who later sign the CLA (or who were signed
   under a different GitHub account at the time) can request removal
   via issue.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 30, 2026 15:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Renames the repository’s third-party attribution artifact from NOTICE.md to extension-less NOTICE and extends the NOTICE generator/metadata to include a “Submitted on behalf of a third-party” contributor section.

Changes:

  • Rename NOTICE output path to NOTICE and update the generator, Makefile targets, and CI drift workflow accordingly.
  • Add a _third_party_submissions metadata block and render it into the generated NOTICE.
  • Add Unreleased changelog entries describing the rename and the new NOTICE section.
Show a summary per file
File Description
scripts/notice-metadata.yaml Adds _third_party_submissions block (preamble + contributor PR lists) to drive new NOTICE content.
scripts/generate-notice.py Changes output filename to NOTICE and implements parsing/rendering of third-party submissions.
NOTICE Updates generated artifact to include the new third-party submissions section.
Makefile Updates comments/documentation to refer to NOTICE instead of NOTICE.md.
CHANGELOG.md Adds Unreleased entries documenting the rename and new NOTICE section.
.github/workflows/notice-drift.yml Updates workflow comments/step names to refer to NOTICE and continues to run the generator in --check mode.

Copilot's findings

Comments suppressed due to low confidence (2)

scripts/generate-notice.py:363

  • The comment says the NOTICE file ends with ---\n\n, but when the third-party submissions section is appended the file no longer ends with that delimiter (and the extra section formatting changes the end-of-file structure). Please either update this comment to reflect the new output or adjust the renderer so the file still ends with the expected trailing delimiter when tps is present.
        # Trailing blank line between components (and after the last one)
        # to match the CELA template -- the file ends `---\n\n`.
        out.append("\n")
    if tps is not None and tps.contributors:
        out.append(render_third_party_submissions(tps))

NOTICE:1220

  • There are two consecutive section delimiters (---) here before the new third-party submissions section. This looks like an output-formatting bug in the generator (the last dependency section already ends with ---, and the new section starts with another). Please adjust generation so only one delimiter is emitted, then re-run make notice.
  • Files reviewed: 6/6 changed files
  • Comments generated: 3

Comment on lines 79 to 87
REPO_ROOT = Path(__file__).resolve().parent.parent
PYPROJECT = REPO_ROOT / "pyproject.toml"
METADATA_YAML = REPO_ROOT / "scripts" / "notice-metadata.yaml"
NOTICE_OUT = REPO_ROOT / "NOTICE.md"
NOTICE_OUT = REPO_ROOT / "NOTICE"

# Header that prefixes every NOTICE.md. The explanatory paragraph is in
# Header that prefixes every NOTICE file. The explanatory paragraph is in
# the YAML (`_header.preamble`) so legal-review of wording lives next
# to the per-component data, not in code.
_FIXED_TOP = (
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NOTICE_OUT was renamed to NOTICE, but this module still contains several references to NOTICE.md in the top-level docstring and other docstrings/comments. Please update those remaining mentions to NOTICE so the script's documentation matches the new filename.

This issue also appears on line 359 of the same file.

Copilot uses AI. Check for mistakes.
Comment on lines +313 to +327
def render_third_party_submissions(tps: ThirdPartySubmissions) -> str:
lines = [
"---\n",
"\n",
"Submitted on behalf of a third-party\n",
"\n",
tps.preamble,
"\n\n",
]
for entry in tps.contributors:
prs = ", ".join(f"#{n}" for n in entry["prs"])
suffix = f" (PRs: {prs})" if prs else ""
lines.append(f"Submitted on behalf of a third-party: @{entry['github']}{suffix}\n")
lines.append("\n")
return "".join(lines)
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

render_third_party_submissions() begins with a --- separator, but every component section already ends with ---\n\n (via render_component() + the trailing blank line in render_notice()). This currently generates two consecutive --- lines in NOTICE. Consider emitting only a single separator between the last component and the third-party section (e.g., drop the leading --- here or conditionally omit the extra separator/blank line in render_notice).

Copilot uses AI. Check for mistakes.
Comment thread CHANGELOG.md Outdated
Comment on lines +13 to +14
- **Renamed `NOTICE.md` → `NOTICE`** to follow the Apache / CNCF convention used by upstream third-party-attribution files (e.g. `kubernetes-sigs/kro`, `kubernetes-sigs/headlamp`). The generator (`scripts/generate-notice.py`), `make notice` target, and `NOTICE Drift Check` workflow now operate on the extension-less path.
- **NOTICE: added "Submitted on behalf of a third-party" section** crediting five contributors whose pull requests landed before the `microsoft-github-policy-service` CLA bot recorded a signature on file -- in keeping with the section-7 wording adopted by CNCF NOTICE files. Driven by a new `_third_party_submissions` block in `scripts/notice-metadata.yaml`.
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These new Unreleased changelog bullets don't end with a PR reference like (#NNNN). This repo's changelog entries are consistently tagged with PR numbers, so please append the appropriate (#PR_NUMBER) suffix to each new line.

Copilot uses AI. Check for mistakes.
Copilot and others added 3 commits April 30, 2026 18:34
Strip the historical/CNCF-citation paragraph and the verbatim CLA-section-7
quote. Keep only the active sentence (what the listing means + how to
request removal).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Three fixes from copilot-pull-request-reviewer:

1. Drop spurious leading '---' separator in the third-party-submissions
   renderer. render_component already ends each component with '---\n\n',
   so prepending another '---' produced two consecutive separators in
   NOTICE. Verified: separator count dropped from 17 to 16.

2. Sweep stale 'NOTICE.md' references in scripts/generate-notice.py
   (top-level docstring, Modes section, ComponentMeta and DepSpec field
   docstrings). The constant was renamed; the docs lagged.

3. Append (#1073) PR refs to both CHANGELOG entries; ASCII-correct the
   arrow ('->' instead of '->').

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danielmeppiel danielmeppiel merged commit d5ef108 into main Apr 30, 2026
10 checks passed
@danielmeppiel danielmeppiel deleted the notice-rename-and-cla-section branch April 30, 2026 16:44
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.

2 participants