feat(justfile): scaffold fj-driven create-release + group attrs (DEV-331) #169

Merged
David merged 1 commit from feat/justfile-fj-pr-create-DEV-331 into main 2026-05-21 13:47:27 +02:00
Owner

Summary

  • Scaffold the canonical just create-release <major|minor|hotfix> recipe per DEV-331: bumps the version (workspace-cargo), branches release/v<version>, commits, pushes, opens the release PR via fj pr create --host dev.a8n.run --body-file <mktemp>, and prints the <base>/pulls/<N> URL.
  • Add .forgejo/workflows/create-release.yml (from the governance template) that watches for merged release/v* PRs and creates the Forgejo release + tag via the API. Uses secrets.FORGEJO_PAT; adjust the secret name if this org uses a different convention.
  • Add [group: '<name>'] attributes (build, check, dev, format, release, setup, test) so just --list groups recipes by intent.

Why

DEV-331 standardizes the release loop across every project under ~/projects/a8n-run/: just create-release opens the PR via fj, the create-release workflow handles tagging and publishing on merge. This repo did not previously expose a release recipe, so cuts had to be done by hand.

Test plan

  • just --list shows the recipes grouped by [build, check, dev, format, release, setup, test] with the new create-release under release.
  • just create-release hotfix end-to-end on next release: branch + commit + push + fj pr create succeed, the printed pulls/<N> URL opens the new PR, the post-merge workflow tags and publishes v<version>.
  • Confirm the FORGEJO_PAT secret is present in this repo / org and has write:repository scope.

#DEV-331

## Summary - Scaffold the canonical `just create-release <major|minor|hotfix>` recipe per DEV-331: bumps the version (workspace-cargo), branches `release/v<version>`, commits, pushes, opens the release PR via `fj pr create --host dev.a8n.run --body-file <mktemp>`, and prints the `<base>/pulls/<N>` URL. - Add `.forgejo/workflows/create-release.yml` (from the governance template) that watches for merged `release/v*` PRs and creates the Forgejo release + tag via the API. Uses `secrets.FORGEJO_PAT`; adjust the secret name if this org uses a different convention. - Add `[group: '<name>']` attributes (build, check, dev, format, release, setup, test) so `just --list` groups recipes by intent. ## Why DEV-331 standardizes the release loop across every project under `~/projects/a8n-run/`: `just create-release` opens the PR via `fj`, the create-release workflow handles tagging and publishing on merge. This repo did not previously expose a release recipe, so cuts had to be done by hand. ## Test plan - [x] `just --list` shows the recipes grouped by `[build, check, dev, format, release, setup, test]` with the new `create-release` under `release`. - [ ] `just create-release hotfix` end-to-end on next release: branch + commit + push + `fj pr create` succeed, the printed `pulls/<N>` URL opens the new PR, the post-merge workflow tags and publishes `v<version>`. - [ ] Confirm the `FORGEJO_PAT` secret is present in this repo / org and has `write:repository` scope. #DEV-331
feat(justfile): scaffold fj-driven create-release + group attrs (DEV-331)
All checks were successful
Create release / Create release from merged PR (pull_request) Has been skipped
Check / clippy + fmt + tests (pull_request) Successful in 1m59s
a2f1b79aa4
Add the canonical `just create-release` recipe per DEV-331: bumps the version, pushes a `release/v<version>` branch, opens the PR via `fj pr create --host dev.a8n.run --body-file <tmp>`, and prints the `<base>/pulls/<N>` URL. Once the PR merges the workflow creates the tag and Forgejo release automatically.

Add `[group: ...]` attributes (build, check, dev, format, release, setup, test) so `just --list` groups recipes by intent.

Signed-off-by: David Randall <David@NiceGuyIT.biz>

#DEV-331
David merged commit cd894d7aea into main 2026-05-21 13:47:27 +02:00
David deleted branch feat/justfile-fj-pr-create-DEV-331 2026-05-21 13:47:27 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!169
No description provided.