Repository navigation
Add open-source compliance files and copyright headers #58
Copy link
Copy link
Labels
area:docsDocumentation and examplesDocumentation and examplesstate:agent-readyApproved for agent implementationApproved for agent implementationstate:pr-openedPR has been opened for this issuePR has been opened for this issue
Description
Add open-source compliance files and copyright headers
Need to add standard open-source compliance artifacts: license file, copyright headers, contribution guidelines with DCO, and third-party notices.
Requirements
1. LICENSE file
- Add
LICENSEfile to repo root containing the full Apache License 2.0 text - Reference: https://www.apache.org/licenses/LICENSE-2.0
2. SPDX copyright headers on all source files
- Every source file (
.rs,.py,.proto,.rego,.yaml/.ymlwhere applicable,.sh,.toml) must include an SPDX header:// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 - Use appropriate comment syntax per language (
//,#, etc.) - Generated files (protobuf outputs, lockfiles) can be excluded
3. CONTRIBUTING.md with DCO
- Add
CONTRIBUTING.mdto repo root - Must include Developer Certificate of Origin (DCO) sign-off requirement for all contributions
- Reference DCO text: https://developercertificate.org/
- Example: https://github.com/NVIDIA/TensorRT/blob/main/CONTRIBUTING.md
4. Third-party notices
- Add a
THIRD-PARTY-NOTICES(orNOTICE) file listing all third-party dependencies and their licenses - Should cover all direct Rust crate dependencies and Python package dependencies
- Format: component name, version, license identifier, upstream URL
5. CI enforcement (stretch goal)
- Add a CI check that validates:
- All new/modified source files include the SPDX header
- No new copyleft-licensed (GPL/LGPL) dependencies are introduced
- Some NVIDIA projects (e.g., NeMo Data Designer) have automated this in their CI pipelines — worth referencing for implementation patterns
Acceptance Criteria
-
LICENSEfile present at repo root (Apache 2.0) - All existing source files have SPDX copyright headers
-
CONTRIBUTING.mdpresent with DCO requirement -
THIRD-PARTY-NOTICESfile present with current dependency list - (Optional) CI check blocks PRs missing headers or adding copyleft deps
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:docsDocumentation and examplesDocumentation and examplesstate:agent-readyApproved for agent implementationApproved for agent implementationstate:pr-openedPR has been opened for this issuePR has been opened for this issue
Activity
zredlined commentedon Mar 3, 2026
Implementation Plan
Issue type:
choreComplexity: Medium — high file count but mechanical changes; the header script is the only non-trivial code
Confidence: High — clear path, well-established patterns from DataDesigner
Summary
Add Apache 2.0 licensing, SPDX copyright headers on all ~186 source files, DCO enforcement, and a third-party notices file. A Python script (
scripts/update_license_headers.py) is the centerpiece: it adds/checks headers across all file types and integrates into pre-commit and CI. Follows patterns from NVIDIA NeMo DataDesigner.Scope
LICENSE(new): Full Apache 2.0 license textDCO(new): Developer Certificate of Origin 1.1 full textCargo.toml: ChangelicensetoApache-2.0, updaterepositoryURL to GitHubpyproject.toml: Addlicense = "Apache-2.0"fieldscripts/update_license_headers.py(new, ~250 lines): Header management script with--checkmode, supports//and#comment styles, preserves shebangs and# syntax=directivesscripts/generate_third_party_notices.py(new): Generates THIRD-PARTY-NOTICES from cargo metadata and Python depsTHIRD-PARTY-NOTICES(new): Generated dependency listingbuild/license.toml(new):license:checkandlicense:updatemise tasksbuild/ci.toml: Wirelicense:checkinto pre-commit and lint task dependencies.github/workflows/checks.yml: Addlicense-headersCI job.github/workflows/dco.yml(new): DCO sign-off enforcement on PRsCONTRIBUTING.md: Add DCO section with sign-off requirementImplementation Steps
Apache-2.0, repository URL tohttps://github.com/NVIDIA/NemoClawlicense = "Apache-2.0"scripts/update_license_headers.py— centerpiece script handling all file types with--checkmode for CI--checkbuild/license.tomlwithlicense:checkandlicense:update, wire into pre-commit and lintlicense-headersjob inchecks.yml(lightweight, no Rust build).github/workflows/dco.ymlusinggsactions/dco-checkTest Plan
//!doc comments stay below headermise run pre-commitcatches missing headers; CIlicense-headersjob passesmise run buildandmise run test:pythonstill pass with headersSigned-off-byfails DCO checkRisks & Open Questions
.github/workflows/*.ymlget headers? (Plan says no — low value).gitlab-ci.ymlbe removed in a separate issue?Documentation Impact
CONTRIBUTING.mdupdated with DCO sectionRevision 1 — initial plan
chore: add open-source compliance files and SPDX headers
zredlined commentedon Mar 3, 2026
Implementation Complete
PR: #71
What was built
Full open-source compliance: Apache 2.0 license, SPDX headers on all 176 source files, DCO enforcement, third-party notices, and CI enforcement following DataDesigner patterns.
Artifacts added
LICENSE(Apache 2.0),DCO(DCO 1.1)scripts/update_license_headers.py— header management with--checkmodescripts/generate_third_party_notices.py— dependency license aggregationTHIRD-PARTY-NOTICES— 563 Rust + 3 Python dependencies listedbuild/license.toml—license:checkandlicense:updatemise tasks.github/workflows/dco.yml— DCO sign-off enforcementlicense-headersjob inchecks.ymlDocs updated
CONTRIBUTING.md— DCO sign-off requirement and license header instructionsThe issue will auto-close when the PR is merged.
chore: add open-source compliance files and SPDX headers (#71)
chore: add open-source compliance files and SPDX headers (#71)