feat: ✨ adopt shared release-promote workflow, bump devcontainer features to v8 - #10
Conversation
…es to v8 Bumps the 4 pinned devcontainer feature refs (ai-coding, githooks, gitutils, gitversion) in .devcontainer/devcontainer.json from :7 to :8, matching what those features have actually been at for a while. Switches release-main.yml to a thin wrapper calling tomgrv/actions' shared release-promote.yml reusable workflow (same path every repo in this family now uses) instead of its own drifted git-beta/git-prod copy, and drops the Beta/Prod local-CLI VS Code tasks now that release is fully driven from GitHub's "Run workflow" button. Adds a short "Releasing" section to the README documenting the new flow. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix
|
No fix exists yet in 🤖 Generated with Claude Code https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix Generated by Claude Code |
tomgrv/actions restructured release-promote from a workflow_call reusable workflow into a composite action (release-promote/action.yml). Update release-main.yml to match: checkout, then `uses: tomgrv/actions/release-promote@ref` as a normal step, instead of delegating the whole job via workflow_call. Also fixes the README's "Releasing" section, which still described the old reusable-workflow shape. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix
…iner-features (#3) ## Summary Part of a coordinated consistency pass across `tomgrv/devcontainer-features`, `tomgrv/actions`, `tomgrv/scripts`, and `perspikapps/vps`. Companion PRs: tomgrv/actions#77, tomgrv/devcontainer-features#143, perspikapps/vps#10. - Migrates the ~32 `git-*` scripts formerly under `devcontainer-features/src/gitutils/bin/` into individual workspace packages here (`/{run.sh,package.json,README.md,test.bats}`), mirroring the exact migration `common-utils` already went through. One source of truth for the script implementations now, fetched via `zz_use` instead of duplicated per consumer. - Switches this repo's own `release-main.yml` to call `tomgrv/actions`' new `release-promote` composite action as a step, dogfooding the same release path every consumer repo now uses. - Adds a "Git utilities" table to the README documenting the new packages. - **Adds a `.gitversion` config file at repo root.** `git-release-beta`/`git-release-prod` call `gv -showvariable MajorMinorPatch`, which hardcodes `-config ".gitversion"` — this repo never had that file (no devcontainer here to deploy it via the `gitversion` feature's configure step). Content matches `tomgrv/actions/.gitversion`, the same bump-message rules used across the rest of the family. ## Cross-repo dependency `tomgrv/actions`' `release-promote` action (this PR's release-main.yml step depends on it, including its new `setup-gitversion` sub-step — see tomgrv/actions#77) and `devcontainer-features`' `gitutils` feature (now depends on the packages added here) are being updated in sibling PRs on the same branch name. Until those merge and tag, the workflow points at `tomgrv/actions@claude/multi-repo-consistency-release-7se0jy` — marked with a `TODO` to pin to a released tag afterward. This repo's own `release-main.yml` has a chicken-and-egg problem releasing itself (it needs its own `git-release-beta`/`git-release-prod` before any tag of this repo exists) — the operational plan for the actual release run pins `scripts-ref` to the merge commit SHA for that one bootstrap run, then updates it to the real tag afterward. ## Test plan - [x] `npx bats --recursive .` — all 68 tests pass (32 new + 36 existing) - [x] Each new script's `run.sh` verified `sh -n` clean via its `test.bats` - [x] `npx prettier --check` clean on all new/changed files - [ ] Bump the workflow's `uses:` ref to a released tag once this merges and tags 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: bot <bot@example.com>
tomgrv/scripts (v0.3.0) and tomgrv/actions (v2.22.0) have both now released, so release-main.yml no longer needs to point at the working branch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix
Summary
Part of a coordinated consistency pass across
tomgrv/devcontainer-features(#143),tomgrv/actions(#77, merged, released as v2.22.0),tomgrv/scripts(#3, merged, released as v0.3.0), and this repo.ai-coding,githooks,gitutils,gitversion) in.devcontainer/devcontainer.jsonfrom:7to:8, matching what those features have actually been at for a while.release-main.ymlto check out the repo and calltomgrv/actions' newrelease-promotecomposite action as a step, pinned tov2.22.0and pullinggit-release-beta/git-release-prodfromtomgrv/scripts@v0.3.0— the same path every repo in this family now uses — instead of its own driftedgit beta/git prodcopy.git-flow/gitutilsare still installed locally for the "🚑 Hotfix" task and everydaygit align/git amend/etc. shortcuts, just not for cutting a release anymore.tomgrv/actions's tag/branch-protection bypass checklist.Known CI failure (not caused by this PR)
validate-pr-secretfails on this PR —gitleaks/gitleaks-actionrequires aGITLEAKS_LICENSEorg secret that isn't set forperspikapps, and has been failing on every push tomainand every other branch for days. See the PR comment for details; needs an org secret, not a code fix.Cross-repo dependency
release-main.ymlnow references the released tags:tomgrv/actions/release-promote@v2.22.0andscripts-ref: v0.3.0. Both sibling PRs (tomgrv/actions#77, tomgrv/scripts#3) have merged and tagged — theirrelease-mainworkflows were exercised live end-to-end (real, non-dry-run releases) before those tags were cut.Test plan
npx bats tests/— all 20 pass (unaffected by this change, run as a regression check).devcontainer/devcontainer.json, the workflow YAML, and.vscode/tasks.jsonall parse cleanlynpx prettier --checkcleanuses:/scripts-refpinned to released tagsmainpertomgrv/actions's checklist before relying on this workflow for a real release🤖 Generated with Claude Code
https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix