Skip to content

Spec a release command for #88 - #102

Open
shipmill-romamo[bot] wants to merge 1 commit into
mainfrom
spec/005-release-command
Open

shipmill-romamo[bot] wants to merge 1 commit into
mainfrom
spec/005-release-command

Conversation

@shipmill-romamo

Copy link
Copy Markdown
Contributor

Spec for #88

  • A component may declare spec.release: {command, workingDirectory, timeoutSeconds}; timeoutSeconds defaults to 300, max 1800
  • The deploy role runs it after uv sync and before the unit install and the current switch, as the application's linuxUser, in the new release directory, with the unit's own EnvironmentFile (shared/env/<component>.env) parsed by systemd's rules
  • It runs once, on the first of deployment.servers, which the deploy now processes first; the other servers skip it
  • A non-zero exit or timeout fails the deploy with ENGINE_STEP_FAILED before any server switches current or restarts; no receipt is written
  • ReleaseReceipt gains an optional releaseCommand (server, command, exit code, last 2000 characters of output)
  • The deploy plan shows the command and its server; rollback never runs it and its plan says so
  • Behaviour asks for expand and contract migrations, since old code keeps serving while the command runs

Spec only, no product code.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@shipmill-romamo

Copy link
Copy Markdown
Contributor Author

@romamo Decision needed: do you approve this spec as written? Merging a spec is its approval (the spec gate), so shipmill holds it for your review instead of merging it on green CI.

  1. Approve (recommended once you've read it): merge it yourself, or reply "1" and shipmill merges it on the next tick, then splits it into build issues and starts the build
  2. Request changes: reply or review with what to change; shipmill revises the spec in this PR and asks again
  3. Refuse: close the PR; the issue reads SPEC_REFUSED and triage decides again (postpone or won't fix)

Reply here with a number or your own answer; shipmill takes this up on the tick after your reply.

@shipmill-romamo shipmill-romamo Bot added the needs-decision A shipmill session asked a question here; waits for a reply label Oct 20, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-decision A shipmill session asked a question here; waits for a reply

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants