Skip to content

ci(release): restructure the release workflow - #264

Merged
david-ruiz-cko merged 6 commits into
mainfrom
feat/INT-1768
Nov 10, 2026
Merged

david-ruiz-cko merged 6 commits into
mainfrom
feat/INT-1768

Conversation

@david-ruiz-cko

@david-ruiz-cko david-ruiz-cko commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Restructures the release workflow into separate stages and makes release builds reproducible. No changes to the SDK code or to the contents of the published package.

Changes

  • Split the release workflow into separate build, test, publish and GitHub release jobs.
  • Publish to PyPI with Trusted Publishing.
  • Install the release workflow's dependencies and build tools from pinned lock files, with a script to regenerate them.
  • Add pyproject.toml declaring the build backend and its pinned versions.
  • Check the built wheel and sdist before publishing.
  • Add a manual trigger that publishes a development build to TestPyPI.
  • Update the GitHub Actions used to current releases, pin them, and create the GitHub release with the gh CLI.

Files

.github/workflows/build-release.yml
.github/scripts/compile-release-locks.sh
.github/scripts/verify_dist.py
pyproject.toml
requirements-release-build.txt
requirements-release-test.txt

@david-ruiz-cko
david-ruiz-cko requested a review from a team November 3, 2026 11:29
@agent-wall-e

agent-wall-e Bot commented Nov 3, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:.github/workflows/build-release.yml

Operational gates

  • ✅ jira_ticket (INT-1768)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 3, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — .github/workflows/build-release.yml classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

🔵 Advisory review: Sound, but needs your judgement

This PR needs a human approval. The code itself reads as correct; whether it should land depends on context I don't have.

This PR restructures the release workflow into separate build/test/publish/release jobs with Trusted Publishing, pinned dependencies, and reproducible builds. The change is technically sound but the diff is truncated — the publish and GitHub release jobs are not visible, so the reviewer cannot confirm the full end-to-end flow or that the Trusted Publishing OIDC configuration is correct.

For you to decide

  • The diff is truncated: the publish (PyPI/TestPyPI) and GitHub release jobs are not shown, so it is impossible to verify that Trusted Publishing is wired up correctly, that the dist artifact is consumed properly, or that the conditional logic for workflow_dispatch vs push correctly routes to TestPyPI vs PyPI.
  • The actions/checkout pin is 3d3c42e5aac5ba805825da76410c181273ba90b1 labelled v7.0.1, but the current stable release of actions/checkout is v4 — a v7 tag does not exist publicly; this pin should be verified against the canonical repo to confirm it is not a typo or a fork.
  • Similarly, actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 is labelled v7.1.0 while the current release is v5; the reviewer should confirm these SHA pins resolve to the expected commits in the official action repos.
  • The read-version step in the build job patches checkout_sdk/properties.py in-place for dry-run dev builds (sed -i), but the source tree is then moved aside (mv checkout_sdk) in the test job — the test job checks out fresh from git so the patched version is gone; the patched version must survive only via the built artifact, which is correct, but the reviewer should confirm verify_dist.py still sees the patched version string (it does, because it reads from the wheel/sdist, not the source tree).
  • The install-dist step in the test job constructs a requirements file using --no-index, meaning the wheel must already be on disk; this is fine because download-dist precedes it, but if the download-artifact step path ever changes the glob dist/*.whl could silently pick up a wrong file — no defensive check on the count of matched files.
  • The check_sdist function in verify_dist.py opens tar members without sanitising paths against path-traversal (e.g. ../../ entries); for a self-built artifact this is low risk, but it is worth noting for a security-conscious reviewer.
  • The concurrency block sets cancel-in-progress: false, which is the right call for releases, but a human should confirm this is intentional and that a stale in-progress run cannot block a legitimate release push.
  • The requirements-release-test.txt lock includes astroid and pylint (visible at the top of the file), suggesting the test job runs linting as well as integration tests; a reviewer should confirm this matches the contents of requirements-ci.txt and that no linter step was accidentally dropped or added.

⚠️ The diff was too large to read in full, so this review covers only part of the change.


This is not an approval. wall-e cannot auto-approve this PR — it is an opinion to help whoever does. Advisory review · us.anthropic.claude-sonnet-4-6 · wall-e 2026.06.19-02

Comment thread .github/scripts/verify_dist.py Fixed
@david-ruiz-cko david-ruiz-cko changed the title feat(pipeline updates): Security updates for the pipeline feat(pipeline updates): restructure the release workflow Nov 3, 2026
@agent-wall-e

agent-wall-e Bot commented Nov 3, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:.github/workflows/build-release.yml

Operational gates

  • ✅ jira_ticket (INT-1768)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 3, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — .github/workflows/build-release.yml classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 3, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:.github/workflows/build-release.yml

Operational gates

  • ✅ jira_ticket (INT-1768)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 3, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — .github/workflows/build-release.yml classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@david-ruiz-cko david-ruiz-cko changed the title feat(pipeline updates): restructure the release workflow ci(release): restructure the release workflow Nov 3, 2026
@agent-wall-e

agent-wall-e Bot commented Nov 9, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:.github/workflows/build-release.yml

Operational gates

  • ✅ jira_ticket (INT-1768)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 9, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — .github/workflows/build-release.yml classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 9, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:.github/workflows/build-release.yml

Operational gates

  • ✅ jira_ticket (INT-1768)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 9, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — .github/workflows/build-release.yml classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 9, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:.github/workflows/build-release.yml

Operational gates

  • ✅ jira_ticket (INT-1768)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 9, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — .github/workflows/build-release.yml classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

Comment thread .github/workflows/build-release.yml Dismissed
@agent-wall-e

agent-wall-e Bot commented Nov 9, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:.github/workflows/build-release.yml

Operational gates

  • ✅ jira_ticket (INT-1768)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 9, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — .github/workflows/build-release.yml classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@sonarqubecloud

sonarqubecloud Bot commented Nov 9, 2026

Copy link
Copy Markdown

@david-ruiz-cko
david-ruiz-cko merged commit d70063c into main Nov 10, 2026
4 checks passed
@david-ruiz-cko
david-ruiz-cko deleted the feat/INT-1768 branch November 10, 2026 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants