Skip to content

Add release procedure and automation gates - #625

Merged
simsong merged 15 commits into
mainfrom
dev-release
Aug 3, 2026
Merged

Add release procedure and automation gates#625
simsong merged 15 commits into
mainfrom
dev-release

Conversation

@simsong-codex

@simsong-codex simsong-codex commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • replace the release checklist with a complete release procedure and release-issue template
  • make make release a thin, fail-closed entry point to an isolated-worktree release script
  • retain Makefile leaf targets for distcheck and container validation
  • add containerized Ubuntu/Fedora distcheck gates and Finch/Colima guidance
  • add draft-PR job gating so planning and release-preparation PRs do not consume repository-managed Actions runners until marked ready

Validation

  • YAML parsing and git diff --check passed
  • bash -n scripts/release.sh passed
  • verified Makefile container-target expansion and source-distribution manifest inclusion
  • verified make release fails before creating a worktree when required artifacts are absent
  • native Finch Ubuntu attempt reached the container build but Docker Hub metadata retrieval timed out before distcheck could run

CI behavior

This is deliberately a draft PR. Repository-managed CI jobs should appear skipped while it remains a draft, then run on ready_for_review. GitHub default CodeQL is separately configured; its one draft run was cancelled.

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

This PR formalizes the project’s release process by replacing the old checklist with a detailed release procedure and a release-issue template, and adds tooling/CI gates to make release preparation more reproducible and less likely to consume CI resources prematurely.

Changes:

  • Add make release orchestration that runs an isolated-worktree release assembly script (scripts/release.sh) and stages artifacts + checksums.
  • Add containerized Ubuntu/Fedora distcheck gates (Dockerfiles + Makefile targets) and update .dockerignore for container contexts.
  • Update multiple GitHub Actions workflows to skip runner-consuming jobs while PRs are drafts (run on ready_for_review).

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
scripts/release.sh New isolated-worktree release assembly script that runs distcheck gates and stages artifacts/logs/checksums.
Makefile.am Adds release target plus container distcheck targets; ensures release assets are distributed.
etc/Dockerfile.ubuntu-distcheck Ubuntu container build that installs deps (incl. libewf legacy) and runs make distcheck.
etc/Dockerfile.fedora-distcheck Fedora container build that installs deps (incl. libewf legacy) and runs make distcheck.
doc/RELEASE_PROCEDURE.md New end-to-end release procedure documenting gates, artifact assembly, and publication workflow.
doc/RELEASE_CHECKLIST.txt Removes the old manual checklist in favor of the new procedure.
AGENTS.md Expands AI contributor instructions (commit identity/signing verification and branch cleanup guidance).
.github/workflows/mingw.yml Skips MinGW job for draft PRs; runs when marked ready for review.
.github/workflows/latex-docs.yml Skips LaTeX docs job for draft PRs; runs when marked ready for review.
.github/workflows/codecov.yml Skips Codecov job for draft PRs; runs when marked ready for review.
.github/workflows/ci-cd.yml Skips CI jobs for draft PRs; runs when marked ready for review.
.github/ISSUE_TEMPLATE/release.yml Adds a structured release issue template to record evidence and artifact provenance safely.
.dockerignore Expands ignores to keep Docker build contexts clean and avoid including release staging dirs/artifacts.

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

Comment thread Makefile.am
Comment thread scripts/release.sh
Comment thread scripts/release.sh
Comment thread scripts/release.sh Outdated
Comment thread doc/RELEASE_PROCEDURE.md
@simsong
simsong marked this pull request as ready for review August 2, 2026 23:23
@simsong
simsong self-requested a review as a code owner August 2, 2026 23:23
@codecov

codecov Bot commented Aug 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.49%. Comparing base (0b21e6e) to head (bc2b992).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #625   +/-   ##
=======================================
  Coverage   77.49%   77.49%           
=======================================
  Files         118      118           
  Lines       14119    14119           
=======================================
  Hits        10941    10941           
  Misses       3178     3178           
Flag Coverage Δ
unittests 77.49% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@simsong
simsong merged commit 5c42922 into main Aug 3, 2026
23 checks passed
@simsong
simsong deleted the dev-release branch August 3, 2026 21:06
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