Repository navigation
refactor: adopt shared release tooling for v0.5.2 - #319
Conversation
Replace the three release adapters with published research-repo-tools 0.2.4 commands and declarative policies. Run evidence and asset commands in isolated Python outside the observed checkout, preserving frozen post-approval revalidation before OIDC. Make performance release consume saved preparation; tag fetching is explicit and README publication remains independently retryable. Preparation positional tags move to the shared declaration, and evidence --identity JSON becomes --expected PATH. Retain native policy, workflow transport and scientific publication regressions. Closes #304
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Changelog date policy and commands pyproject.toml, justfile, tooling/README.md, docs/code_organization.md, tooling/release_changelog.py, tests/tooling/test_changelog_integration.py, tests/tooling/test_release_changelog.py |
Changelog recipes delegate to the installed CLI. The changelog policy selects citation-based dates from CITATION.cff. Tests now exercise the shared date resolver and commands, and the local changelog adapter is deleted. |
Performance preparation and publication tooling/performance-release.toml, justfile, docs/BENCHMARKING.md, docs/RELEASING.md, docs/code_organization.md, docs/dev/performance-tooling-adoption.md, tooling/README.md, tooling/release_performance.py, tests/tooling/test_performance_workflow.py, tests/tooling/test_release_performance.py |
Performance recipes use shared CLI commands and a configured preparation record. The record binds release inputs, and README and release commands reject stale or missing preparation. Tests cover preparation selection, input changes, and command boundaries; the local performance adapter is deleted. |
Evidence and release-asset commands tooling/release-evidence.toml, tooling/release-assets.toml, .github/workflows/ci.yml, .github/workflows/publish-crates.yml, justfile, docs/RELEASING.md, docs/code_organization.md, docs/dev/performance-tooling-adoption.md, tooling/README.md, tooling/release_evidence.py, tests/tooling/test_release_evidence.py, tests/tooling/test_release_publishing.py, tests/tooling/test_toolchain_integration.py, tests/tooling/test_justfile_discoverability.py |
CI creates evidence through the installed CLI. Publishing saves approved evidence to a temporary JSON file and revalidates it through --expected. Evidence and asset policies are declared in TOML, and the Justfile adds an isolated asset command. Tests exercise installed interfaces, verification failures, output handling, and runtime isolation; the local evidence adapter is deleted. |
Priority:
Estimated code review effort: 4 (Complex) | ~45 minutes
Change: Refactor
Sequence Diagram(s)
sequenceDiagram
participant CI as CI workflow
participant CLI as research-repo-tools CLI
participant Publish as publish-crates workflow
participant Temp as RUNNER_TEMP selection file
CI->>CLI: Create validation evidence from release policy
CLI-->>CI: Write validation.json
Publish->>Temp: Save approved evidence JSON
Publish->>CLI: Verify selection with --expected
CLI-->>Publish: Return verified identity and commit
Publish->>CLI: Revalidate approved selection before token acquisition
Possibly related issues
acgetchell/la-stack#304— The change adopts shared release tooling and replaces the local adapters described by this issue.acgetchell/la-stack#311— The change updates release preparation and verification workflows, but does not perform publication.acgetchell/la-stack#317— The change adoptsresearch-repo-tools==0.2.4; the scanner-selection override remains in place as described by this follow-up.
Possibly related PRs
- acgetchell/la-stack#300 — Established the signed CI evidence contract that this change moves to the shared tooling.
- acgetchell/la-stack#297 — Introduced shared performance commands that this change further integrates into release preparation and publication.
- acgetchell/la-stack#312 — Added evidence export and identity revalidation in the publishing workflow, which this change updates to use file-based evidence transport.
Merge Risk: 
Minimal · up to dffae
-
No identified issue requires a change before merge. The remaining CI and hosted native checks should complete as normal.
Pre-merge checks: 
3 · 
1
-
Failed checks: 1 warning Passed checks: 3 passed-
Full details: Out of Scope Changes check
-
Explanation
The reviewed changes stay within
#304. The workflow, Justfile, TOML declarations, documentation, adapter removal, and consumer tests support shared-tooling adoption, release security, performance preparation, and recipe compatibility. No unrelated release publication, long benchmark measurement, crate publication, or benchmark-inventory change is shown.
-
Full details: Linked Issues check
-
Explanation
The PR implements the main
#304coding objectives.pyproject.tomlpinsresearch-repo-tools[python-tools]==0.2.4. The three local release adapters are removed.justfiledelegates changelog, asset, evidence, and performance recipes to the installed CLI. TOML declarations define evidence, asset, and performance policies. The workflow and tests preserve output-file transport, identity revalidation, native/Cargo gates, isolated execution, stale-preparation failures, and separate performance publication phases. The PR description states that finaljust ciand hosted native Linux/macOS/Windows checks are still in progress. Therefore the#304acceptance requirement for passing required validators and native CI is not complete at the reviewed head.Resolution
Complete the final
just cirun and hosted native Linux, macOS, and Windows checks for this commit. Record the successful validation with the pinnedresearch-repo-tools==0.2.4version in the PR.
-
Finishing Touches
-
📝 Generate docstrings
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #319 +/- ##
=======================================
Coverage 98.35% 98.35%
=======================================
Files 16 16
Lines 7609 7609
=======================================
Hits 7484 7484
Misses 125 125
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
Completes the remaining #304 migration using the published
research-repo-tools==0.2.4dependency. Removesrelease_changelog.py,release_evidence.pyandrelease_performance.py; TOML now declares the native/Cargo evidence, draft asset and performance phase policies.GITHUB_OUTPUT, then revalidates its exact run, attempt, artifact, manifest and policy after deployment approval and before OIDC. The privileged benchmark workflow keeps its existing no-checkout asset commands and captured target.Maintainer command changes:
performance-prepareuses local tags unless--fetch-tags --allow-git-mutationsis supplied; explicit preparation pairs belong intooling/performance-release.toml.performance-releasetakes the prepared pair. Replace legacy scratch preparation records by preparing again. Evidence uses--expected PATHinstead of--identity JSON. The shared archive limit is 32 MiB, with signed manifests still limited to 1 MiB.Validation: complete local
just cipassed on macOS (Python 3.15.1 / Rust 1.99.1): 300 Python tests, 1,143 Rust tests, default/exact doctests, benchmark compilation, examples, formatting/types, workflow security and documentation/spelling. The isolated v0.2.4 runtime and all real release declarations also passed smoke checks. CodeRabbit approved this commit with no inline findings. Hosted native Linux/macOS/Windows and packaging checks are still running; this PR remains draft until those results are reconciled. No release publication or long benchmark measurement was performed.Closes #304
Refs #311
Summary by CodeRabbit
Release Workflow
Documentation