Skip to content

Spec a release command for #88 - #102

Merged
shipmill-romamo[bot] merged 1 commit into
mainfrom
spec/005-release-command
Oct 27, 2026
Merged

shipmill-romamo[bot] merged 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
@romamo

romamo commented Oct 27, 2026

Copy link
Copy Markdown
Collaborator

1

@shipmill-romamo shipmill-romamo Bot removed the needs-decision A shipmill session asked a question here; waits for a reply label Oct 27, 2026
@shipmill-romamo
shipmill-romamo Bot merged commit b775e64 into main Oct 27, 2026
1 check passed
@shipmill-romamo
shipmill-romamo Bot deleted the spec/005-release-command branch October 27, 2026 07:51
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