Skip to content

Runbook: releasing a shop

Each shop releases independently; a release never touches its siblings.

  1. Local check: run the shop (PORT=3020 bin/dev for hampers, or its launchd agent) and click the touched flow. The hampers agent is com.georg.dev.hampers; restart with launchctl kickstart -k gui/$UID/com.georg.dev.hampers.
  2. Locale changes: EN and DE, and verify YAML parses.
  3. Commit to solidus-demos main and push (one repo, per-shop directories; prefix the commit with the shop name).
  4. kamal deploy from the shop's directory (~10 min).
  5. If copy or locales changed: kamal app exec 'bin/rails runner "Rails.cache.clear"'.
  6. Verify the live subdomain: home, products, a product page, cart, the shop's signature feature.
  7. GitHub release notes: from the repo root run bin/release — CalVer tag (v2026.09.11, .2 on repeat days), notes generated from the commit subjects since the last tag. Because five shops share the repo, the shop-name commit prefix is what makes these notes readable: keep it. One release per deploy; rollbacks get their own tagged release with a note. Baseline: v2026.09.11.
  8. ClickUp: complete the task with Solution, Automated Tests and QA Steps; architecture-level changes update this KB in the same PR.

Rollback

kamal rollback <sha> from the shop directory rolls back only that shop.