Skip to content

docs(license-exceptions): document the decision workflow; generators stop assuming approval - #1515

Merged
jeefy merged 1 commit into
cncf:mainfrom
jeefy:lx/process
Sep 7, 2026
Merged

docs(license-exceptions): document the decision workflow; generators stop assuming approval#1515
jeefy merged 1 commit into
cncf:mainfrom
jeefy:lx/process

Conversation

@jeefy

@jeefy jeefy commented Sep 7, 2026

Copy link
Copy Markdown
Member

Summary

Docs, issue template, and generated-data changes to match the label-driven decision flow (see #1513) and stop assuming every recorded entry is an approval. Schema and exceptions.json untouched; CSV and SPDX regenerated.

README

  • New "Recording a decision (staff)" runbook: which label to apply, what the workflow writes, what the resulting PR looks like, what to do when the run fails. Previously the label names existed only in workflow YAML.
  • Field table documents both issueUrl and results, and clarifies approvedDate is the decision date regardless of outcome and is required by convention, not by schema (README said "required", schema disagreed).

Policy — "Process for applying for an exception"

Aligned with reality: staff triage via labels, Legal Committee recommendation, Governing Board vote, staff applies a decision label which opens a PR; denied and not-eligible decisions are recorded, not just closed. Heading/anchor unchanged; no other policy text touched.

Issue template

  • The six textareas all labelled "Please explain" produced six indistinguishable ### Please explain headings in the issue body. Each now names its section. Field ids unchanged.
  • Example table row added to the guidance text (deliberately not in the submitted value, so a requester who doesn't delete it can't get github.com/example/lib recorded), plus explicit rules: Component and License(s) required, SPDX identifiers, one component per row, no | in cells.

Generators

  • CSV: new Issue column (results || issueUrl); "Date Published" → "Decision Date".
  • SPDX: PackageComment is now Project: X. Scope: Y. Decision: <status> (<date>). <comment> Issue: <url>. The old fallback injected the literal word "approved" when status was missing.

validate-exceptions

  • exc- ids must match exc-YYYY-MM-DD-NNN (all 493 do; the one legacy id blanket-ebpf-gpl is reported and exempt).
  • results / issueUrl must be http(s) URLs.

Verification

ajv schema validation passes, no duplicate ids, id-format and URL checks pass, regeneration is idempotent.

…uming approval in generated data

- README: add a staff runbook for recording decisions via the
  license-exception/{approved,denied,not-eligible} labels, document both
  issueUrl and results, and clarify that approvedDate is the decision
  date regardless of outcome and is required by convention, not schema.
- Policy: align 'Process for applying for an exception' with the label
  driven flow; denied and not-eligible decisions are recorded, not just
  closed.
- Issue template: distinct labels for the six 'Please explain' fields,
  an example table row in the guidance text (kept out of the submitted
  value so it cannot be recorded by mistake), and explicit column rules.
- CSV: add an Issue column; rename 'Date Published' to 'Decision Date'.
- SPDX: PackageComment reads 'Decision: <status> (<date>)' and links the
  issue; the fallback no longer injects the word 'approved'.
- validate-exceptions: check exc- id format and that results/issueUrl
  are http(s) URLs.

Regenerated CSV and SPDX.

Signed-off-by: Jeffrey Sica <me@jeefy.dev>
@netlify

netlify Bot commented Sep 7, 2026

Copy link
Copy Markdown

Deploy Preview for cncf-license-exceptions ready!

Name Link
🔨 Latest commit f196b95
🔍 Latest deploy log https://app.netlify.com/projects/cncf-license-exceptions/deploys/6a9e58704d5aaa00081e1ebe
😎 Deploy Preview https://deploy-preview-1515--cncf-license-exceptions.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@jeefy
jeefy merged commit d2186c9 into cncf:main Sep 7, 2026
6 checks passed
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