Skip to content

ci: add license compliance checks and LICENSE-3RD-PARTY.txt generation - #10

Merged
csanx merged 6 commits into
mainfrom
CLOUDP-424406
Jul 27, 2026
Merged

ci: add license compliance checks and LICENSE-3RD-PARTY.txt generation#10
csanx merged 6 commits into
mainfrom
CLOUDP-424406

Conversation

@csanx

@csanx csanx commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Proposed changes

Jira ticket: CLOUDP-424406

Adds license compliance checking and third-party license notice generation for atlas-local-lib-py, covering both dependency ecosystems in the repo (Rust via cargo, Python via pip).

This PR introduces:

  • A License compliance workflow (.github/workflows/license.yml) that runs on push and PRs. It enforces the allowed-license policy for Rust deps (cargo deny check licenses) and Python runtime deps (pip-licenses --allow-only), regenerates LICENSE-3RD-PARTY.txt, and fails if the checked-in copy is stale.
  • deny.toml, about.toml, and about.hbs to configure cargo-deny and cargo-about for the Rust dependency license policy and notice template.
  • scripts/generate-third-party.sh, which concatenates the Rust (cargo-about) and Python (pip-licenses) license notices into a single LICENSE-3RD-PARTY.txt at the repo root.
  • scripts/py_runtime_deps.py, to ensure only real runtime deps are checked.
  • The generated LICENSE-3RD-PARTY.txt itself.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds automated license-compliance enforcement and reproducible third-party notice generation for atlas-local-lib-py, spanning both the Rust (cargo) and Python (pip) dependency ecosystems.

Changes:

  • Add a GitHub Actions workflow to enforce allowed-license policies and to verify LICENSE-3RD-PARTY.txt is kept up to date.
  • Introduce cargo-deny/cargo-about configuration and a Handlebars template for Rust third-party notices.
  • Add scripts to compute Python runtime dependency closure and to generate the combined third-party notice file.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
scripts/py_runtime_deps.py Computes the Python runtime dependency transitive closure from installed distribution metadata.
scripts/generate-third-party.sh Generates LICENSE-3RD-PARTY.txt by concatenating Rust (cargo-about) and Python (pip-licenses) notices.
LICENSE-3RD-PARTY.txt Checked-in generated third-party notices output.
deny.toml Defines Rust dependency allowed-license policy for cargo-deny.
Cargo.toml Adds crate metadata (authors, license, publish=false) used by licensing/reporting tooling.
about.toml Configures cargo-about accepted licenses and private crate handling.
about.hbs Template for Rust third-party license notice output.
.github/workflows/license.yml CI workflow to enforce license compliance and verify the generated notice file is not stale.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/py_runtime_deps.py
@csanx
csanx marked this pull request as ready for review July 24, 2026 08:51
Comment thread .github/workflows/license.yml Outdated
@csanx
csanx merged commit ff033e6 into main Jul 27, 2026
17 checks passed
@csanx
csanx deleted the CLOUDP-424406 branch July 27, 2026 09:46
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.

3 participants