Skip to content

ci: exempt first-party packages from the Safe Chain age gate in CD - #1062

Merged
tudormatei1 merged 1 commit into
mainfrom
fix/cd-safe-chain-age-gate
Sep 2, 2026
Merged

ci: exempt first-party packages from the Safe Chain age gate in CD#1062
tudormatei1 merged 1 commit into
mainfrom
fix/cd-safe-chain-age-gate

Conversation

@tudormatei1

Copy link
Copy Markdown
Contributor

uipath-langchain 0.16.15 did not reach PyPI. The post-merge CD run resolved its dependencies fine and then failed downloading uipath-langchain-client 1.18.3, published an hour earlier, with a Safe Chain 403 on the minimum-package-age gate.

lint.yml, test.yml and publish-dev.yml already set SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS, and the list in all three already names uipath-langchain-client. cd.yml never got it, and CD builds in its own inline job rather than through those workflows, which is why the lint job passed and build died. This adds the same line, unchanged, at workflow level.

The [tool.uv.exclude-newer-package] exemption in pyproject.toml covers a different gate: it governs which version uv resolves, not whether the download is allowed. Resolution succeeded here, so that exemption was already doing its job.

Skips only the age gate. Malware scanning and every other Safe Chain check still run, which is the least-disabling override the supply-chain-guard runbook asks for before reaching for SCG_KILL_SWITCH.

uipath-python hit this exact split in #1858 and #1861: the first PR added the variable to lint and test, the second had to follow up because the CD path built through a workflow that never got it.

Merging this does not republish on its own, since CD triggers on pushes that touch pyproject.toml. 0.16.15 needs a manual run of the CD workflow against main afterwards.

@tudormatei1
tudormatei1 marked this pull request as ready for review September 2, 2026 11:29
`lint.yml`, `test.yml` and `publish-dev.yml` all set
SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS, but `cd.yml` never got it, and CD
builds in its own inline job. The post-merge run for 0.16.15 resolved fine and
then died downloading uipath-langchain-client 1.18.3, published an hour
earlier, so the release did not reach PyPI.

Skips only the age gate; malware scanning and the other Safe Chain checks
still run. The list is copied from the other three workflows unchanged.
Copilot AI lite review requested due to automatic review settings September 2, 2026 11:29
@tudormatei1
tudormatei1 force-pushed the fix/cd-safe-chain-age-gate branch from 1f3f877 to fd9a65f Compare September 2, 2026 11:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The change is a minimal, consistent workflow-level env addition that aligns CD with existing CI workflows and directly addresses the described Safe Chain gate failure.

Pull request overview

Adds the Safe Chain “minimum package age” gate exclusion list to the CD workflow so first-party packages (including uipath-langchain-client) are exempted during the CD build/publish path, matching the existing configuration in lint.yml, test.yml, and publish-dev.yml.

Changes:

  • Define SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS at the workflow level in .github/workflows/cd.yml so it applies to the inline build job (where uv sync runs).
  • Keep the exclusion list identical to other workflows to avoid drift and ensure consistent Safe Chain behavior across CI/CD.
File summaries
File Description
.github/workflows/cd.yml Adds the Safe Chain minimum-package-age exclusions env var so CD’s inline build step can download newly-published first-party deps without tripping the age gate.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@sonarqubecloud

sonarqubecloud Bot commented Sep 2, 2026

Copy link
Copy Markdown

@tudormatei1
tudormatei1 merged commit 273ac5c into main Sep 2, 2026
45 checks passed
@tudormatei1
tudormatei1 deleted the fix/cd-safe-chain-age-gate branch September 2, 2026 11:37
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