Skip to content

feat: Restore full release infrastructure for stable + release-process.md - #310

Merged
scouten-adobe merged 2 commits into
mainfrom
restore-release-infra
Sep 9, 2026
Merged

feat: Restore full release infrastructure for stable + release-process.md#310
scouten-adobe merged 2 commits into
mainfrom
restore-release-infra

Conversation

@scouten-adobe

@scouten-adobe scouten-adobe commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Ports c2pa-rs's full two-track release model (additive releases straight off stable, plus a scheduled breaking-change train with RC bake/promotion), collapsed from multi-crate coordination down to c2patool's single crate. See the commit messages for the file-by-file breakdown.

Also adds docs/release-process.md, adapted from c2pa-rs's -- same branching model/cadence for continuity, minus multi-crate-only sections, plus a new 'Tracking c2pa-rs main' section documenting the git-dependency mechanism from #309.

Not ported: semver-checks.yml -- c2pa-rs's own comment on it says why: c2patool is a binary with no public API surface for cargo-semver-checks to check.

Manual setup needed before any of this can actually run (no PR diff can do this):

  • Add RELEASE_PLZ_ORG_TOKEN and CRATES_IO_ORG_TOKEN repo secrets (org-level tokens already used elsewhere in contentauth -- likely just need granting to this repo).
  • Create labels: release, release-train, backport-stable, upstream-first-verified, check-release, reconciliation.
  • Branch protection on stable/v0.*/*-rc* requiring the upstream-first-check status check, plus "Allow auto-merge" enabled in repo settings (used by backport.yml).
  • Re-enable Actions (currently off, from the cutover's tag-flood precaution).

Depends on #309 (auto-track main) for check-no-patch-deps.yml's guard to make sense, and on #308/#309 for CI to be green in the first place.

Part of restoring c2patool's post-cutover release infrastructure.

@scouten-adobe scouten-adobe changed the title feat: Restore full release infrastructure for stable feat: Restore full release infrastructure for stable + release-process.md Sep 9, 2026
@scouten-adobe
scouten-adobe force-pushed the restore-release-infra branch 4 times, most recently from 0f74230 to 7327790 Compare September 9, 2026 20:52
@codecov

codecov Bot commented Sep 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 72.16%. Comparing base (018d8b8) to head (72cdb7e).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #310   +/-   ##
=======================================
  Coverage   72.16%   72.16%           
=======================================
  Files           4        4           
  Lines        1060     1060           
=======================================
  Hits          765      765           
  Misses        295      295           

☔ 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.

@scouten-adobe
scouten-adobe force-pushed the restore-release-infra branch 4 times, most recently from 2122141 to 6c45a7c Compare September 9, 2026 22:46
Ports c2pa-rs's two-track release model (additive releases straight off
stable, plus a scheduled breaking-change train with RC bake/promotion),
collapsed from multi-crate coordination down to c2patool's single crate:

- release-plz.toml: one [[package]] entry, no version_group needed (it
  was already independently versioned from c2pa/c2pa-c-ffi).
- release.yml / release-pr.yml: publish / open-release-PR, single-crate.
  release.yml no longer builds binaries itself -- c2patool-release.yml's
  existing tag-driven build already covers that.
- release-rc.yml / release-train-cut.yml: single cargo set-version + single
  tag instead of the c2pa/c2patool pair. release-train-cut.yml's cron is
  staggered 30 minutes after c2pa-rs's own (16:30 UTC vs 16:00 UTC): main's
  c2pa dependency tracks c2pa-rs's main (see the auto-track-main PR), so
  cutting this train needs c2pa-rs's own cut to have already landed first.
- upstream-first-check.yml, reconciliation.yml, check-no-patch-deps.yml,
  backport.yml: ported as-is -- already crate-agnostic, no changes needed
  beyond doc comments (check-no-patch-deps.yml's now explains why main's
  git dependency is intentional there but must never reach a release
  branch; backport.yml drops a stale semver-checks.yml cross-reference,
  since that doesn't apply to a binary crate).

Not ported: semver-checks.yml -- c2pa-rs's own comment on it says why:
c2patool is a binary with no public API surface for cargo-semver-checks
to check.

Manual setup still needed (no PR diff can do this) -- see PR description.
Same branching model, cadence, and automation for continuity with what
c2patool followed before the split, minus everything that only made
sense for coordinating multiple crates (extracted-crates/multi-repo
section, semver-checks, the cross-repo canary, label-sync automation
this repo doesn't have). Adds one section with no equivalent in the
source doc: 'Tracking c2pa-rs main', documenting the git-dependency +
scheduled-refresh mechanism and why the release-train cadence is
staggered 30 minutes after c2pa-rs's own.

Notes candidly where this repo doesn't yet have something c2pa-rs does
(commit-lint PR title enforcement, docs/support-tiers.md) rather than
describing infrastructure that isn't actually there.
@scouten-adobe
scouten-adobe marked this pull request as ready for review September 9, 2026 23:33
@scouten-adobe
scouten-adobe merged commit 5ea32f5 into main Sep 9, 2026
29 checks passed
@scouten-adobe
scouten-adobe deleted the restore-release-infra branch September 9, 2026 23:33
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.

1 participant