Skip to content

Add release evidence issue snapshot exporter#262

Merged
punk6529 merged 3 commits into
mainfrom
codex/release-evidence-snapshot-exporter
Jun 13, 2026
Merged

Add release evidence issue snapshot exporter#262
punk6529 merged 3 commits into
mainfrom
codex/release-evidence-snapshot-exporter

Conversation

@punk6529

@punk6529 punk6529 commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add a no-secret release evidence issue snapshot exporter with labels, bodies, closure, and all profiles.
  • Write deterministic UTF-8 JSON snapshots without relying on shell redirection, including Windows gh.cmd shim handling through cmd.exe /c without shell=True.
  • Wire exporter tests into Make, Bash, PowerShell, and CI release evidence gates.
  • Update tooling, public-beta evidence, release-readiness, release artifact, roadmap, changelog, and autonomous run docs to use and track the exporter.
  • Regenerate release manifest and checksum artifacts after the docs/scripts changes.

Validation

  • python scripts/test_release_evidence_issue_snapshot.py
  • python scripts/export_release_evidence_issue_snapshot.py --help
  • python scripts/export_release_evidence_issue_snapshot.py --profile labels
  • python scripts/check_release_evidence_issue_labels.py --live-json tmp\release-evidence-issue-labels.json
  • python scripts/export_release_evidence_issue_snapshot.py --profile bodies
  • python scripts/check_release_evidence_issue_bodies.py --live-json tmp\release-evidence-issue-bodies.json
  • python scripts/export_release_evidence_issue_snapshot.py --profile closure
  • python scripts/check_release_evidence_issue_closure.py --live-json tmp\release-evidence-issue-closure.json
  • python scripts/check_release_readiness.py
  • python scripts/test_release_readiness.py
  • python scripts/generate_release_manifest.py --check
  • python scripts/test_release_manifest.py
  • python scripts/generate_release_checksums.py --check
  • python scripts/test_release_checksums.py
  • python scripts/check_changelog.py
  • bash -n scripts/check.sh
  • PowerShell parse check for scripts\check.ps1
  • python -m py_compile scripts\export_release_evidence_issue_snapshot.py scripts\test_release_evidence_issue_snapshot.py
  • rg -n "^#|^##|^###" ops\ROADMAP.md ops\AUTONOMOUS_RUN.md docs\tooling.md docs\public-beta-evidence.md docs\release-readiness.md release-artifacts\README.md CHANGELOG.md
  • git diff --check passed with Git's Windows line-ending warning for scripts/check.ps1

Closes #261.

Summary by CodeRabbit

  • New Features

    • Added a snapshot exporter that produces deterministic UTF-8 JSON for release-evidence label, body, and closure audits.
  • Documentation

    • Updated release workflow, tooling, readiness, and public-beta evidence docs to reference the exporter and new verification steps.
  • Chores

    • Integrated snapshot validation into CI, local checks, and build targets.
  • Tests

    • Added unit tests for exporter behavior and CLI error handling; updated release artifact manifests/checksums.

@claude claude Bot 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.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e4b93ea9-ad6e-45cf-ab79-17df9da25645

📥 Commits

Reviewing files that changed from the base of the PR and between 22a41cc and 223ff4b.

📒 Files selected for processing (1)
  • ops/ROADMAP.md
✅ Files skipped from review due to trivial changes (1)
  • ops/ROADMAP.md

📝 Walkthrough

Walkthrough

This PR adds a CLI exporter that writes deterministic UTF-8 JSON snapshots of live GitHub issues (profiles: labels/bodies/closure), a focused unittest suite, CI/checks integration, and operator documentation and artifact manifest updates to use the exporter instead of shell redirection.

Changes

Release Evidence Snapshot Exporter

Layer / File(s) Summary
Snapshot exporter implementation
scripts/export_release_evidence_issue_snapshot.py
New CLI tool with profile-based field mapping, gh issue list execution, JSON validation, Windows .bat/.cmd shim resolution, deterministic UTF-8 serialization, and configurable output routing.
Snapshot exporter test suite
scripts/test_release_evidence_issue_snapshot.py
Comprehensive unittest module using subprocess.run mocking to validate profile argument generation, JSON parsing/validation, Windows command resolution, failure handling, and UTF-8 output without BOM.
CI and build integration
.github/workflows/ci.yml, Makefile, scripts/check.sh, scripts/check.ps1, scripts/check_release_readiness.py
Exporter and its tests added to CI py_compile checks, release-evidence Makefile targets, cross-platform check scripts, and release-readiness required command list.
Operator runbooks and guides
CHANGELOG.md, docs/public-beta-evidence.md, docs/release-readiness.md, docs/tooling.md, release-artifacts/README.md
Runbooks updated to use `python scripts/export_release_evidence_issue_snapshot.py --profile <labels
Autonomous run state and checksums
ops/AUTONOMOUS_RUN.md, ops/ROADMAP.md, release-artifacts/latest/SHA256SUMS, release-artifacts/latest/release-checksums.json, release-artifacts/latest/release-manifest.json
Durable queue advanced to the exporter item, roadmap metadata refreshed, and release artifact checksums/manifests updated for changed docs.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

I hop and fetch the JSON bright,
UTF-8 whispers through the night,
No BOM, no shell that trips the test,
Profiles ready, snapshots dressed—🐇✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'Add release evidence issue snapshot exporter' directly and clearly describes the primary change: adding a new snapshot exporter tool for release evidence issues.
Linked Issues check ✅ Passed The PR fully implements all coding requirements from issue #261: exporter produces label/body/closure snapshots compatible with existing checkers, outputs UTF-8 JSON without BOM, includes focused tests, integrates into build/CI gates, and updates operator documentation.
Out of Scope Changes check ✅ Passed All changes are scoped to issue #261 requirements: new exporter/test scripts, integration into CI/build systems, documentation updates, and release artifact regeneration. No unrelated changes detected.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/release-evidence-snapshot-exporter

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ops/ROADMAP.md`:
- Around line 96-101: Update the verification metadata block that currently
references "Queue Item 124 / PR `#260`" (the "Last verified", "OS tested", and "CI
run" rows) to reflect the current queue item and PR (change to "Queue Item 125 /
PR `#262`") if the intent is to document the snapshot-exporter state for the new
run; alternatively, if the metadata purposely refers to the earlier
verification, add a clarifying note on those rows stating that the entries are
intentionally from Queue Item 124 / PR `#260` and are not updated for Queue Item
125 / PR `#262`. Ensure you modify the exact text strings shown in the diff (e.g.,
the "Last verified" row and the "OS tested" and "CI run" rows) so the document
accurately reflects or explicitly documents the provenance.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4c86cf85-b1f9-44ae-884b-9cb75742db80

📥 Commits

Reviewing files that changed from the base of the PR and between 779ff73 and aed78ee.

📒 Files selected for processing (17)
  • .github/workflows/ci.yml
  • CHANGELOG.md
  • Makefile
  • docs/public-beta-evidence.md
  • docs/release-readiness.md
  • docs/tooling.md
  • ops/AUTONOMOUS_RUN.md
  • ops/ROADMAP.md
  • release-artifacts/README.md
  • release-artifacts/latest/SHA256SUMS
  • release-artifacts/latest/release-checksums.json
  • release-artifacts/latest/release-manifest.json
  • scripts/check.ps1
  • scripts/check.sh
  • scripts/check_release_readiness.py
  • scripts/export_release_evidence_issue_snapshot.py
  • scripts/test_release_evidence_issue_snapshot.py

Comment thread ops/ROADMAP.md Outdated
@punk6529 punk6529 merged commit 19263b0 into main Jun 13, 2026
2 checks passed
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.

Add release evidence issue snapshot exporter

1 participant