aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoruser <user@clank>2026-09-02 15:58:12 +0200
committeruser <user@clank>2026-09-02 15:58:12 +0200
commit60d622062aefa1258e348c4085ab33e0e7e2ae48 (patch)
tree748d2ecc164b69fef0727e3a1561b7c6fc824695
parentrelease: v0.1.4 paperwork -- formula and PKGBUILD pinned (diff)
downloadslosh-60d622062aefa1258e348c4085ab33e0e7e2ae48.tar.gz
slosh-60d622062aefa1258e348c4085ab33e0e7e2ae48.tar.xz
slosh-60d622062aefa1258e348c4085ab33e0e7e2ae48.zip
ship: paperwork before the website, so the demo is not stamped -dirty
Steps 6 and 7 rewrite the formula and PKGBUILD; building the site from the tag checkout with those uncommitted made git describe say -dirty, and v0.1.4's demo introduced itself as 0.1.4-dirty+webdemo. Commit the pins first, build the site from a clean tag second.
-rwxr-xr-xcontrib/ship39
1 files changed, 21 insertions, 18 deletions
diff --git a/contrib/ship b/contrib/ship
index 666cb94..c816972 100755
--- a/contrib/ship
+++ b/contrib/ship
@@ -17,9 +17,9 @@
# 5. gh release the five artifacts + SHA256SUMS on GitHub
# 6. brew-release pin the formula, push the tap
# 7. arch bump the PKGBUILD, rebuild + sign + rsync the repo
-# 8. website rebuild + publish slosh.foo, demo included, so the
+# 8. paperwork commit the formula + PKGBUILD, push
+# 9. website rebuild + publish slosh.foo, demo included, so the
# in-browser slosh is the released one
-# 9. paperwork commit the formula + PKGBUILD, push
#
# Every step is skipped when its result already exists, so a run that died at
# notarization resumes where it stopped instead of rebuilding artifacts whose
@@ -180,10 +180,26 @@ else
say "published to $ARCH_DEST for: $arches"
fi
-# ── 8. the website, so the in-browser demo runs what was just released ─────
+# ── 8. the paperwork ────────────────────────────────────────────────────────
+# The formula and the PKGBUILD pin the tag's tarball, so they can only change
+# *after* the tag exists -- they land on master behind it. Committed before
+# the website builds: steps 6 and 7 dirtied these files, and a site built
+# from a tag checkout with uncommitted pins stamps its demo -dirty (which
+# is how v0.1.4's demo first said 0.1.4-dirty+webdemo).
+step "paperwork"
+if git diff --quiet contrib/homebrew/slosh.rb contrib/arch/PKGBUILD; then
+ say "nothing to commit"
+else
+ git add contrib/homebrew/slosh.rb contrib/arch/PKGBUILD
+ git commit -q -m "release: $tag paperwork -- formula and PKGBUILD pinned"
+ git push origin master
+ say "committed and pushed"
+fi
+
+# ── 9. the website, so the in-browser demo runs what was just released ─────
# The demo's slosh is cross-compiled from the tree the site is built in, and
-# its version comes from contrib/version -- built from the tag checkout, the
-# demo says exactly what the release says (v0.1.2 shipped while the demo
+# its version comes from contrib/version -- built from the (now clean)
+# tag checkout, the demo says exactly what the release says (v0.1.2 shipped while the demo
# still announced 0.1.0, which is the drift this step removes). Old tags
# predate web/publish; for those the site is built from master instead,
# which is newer than the tag, not older.
@@ -199,19 +215,6 @@ else
web/publish
fi
-# ── 9. the paperwork ────────────────────────────────────────────────────────
-# The formula and the PKGBUILD pin the tag's tarball, so they can only change
-# *after* the tag exists -- they land on master behind it.
-step "paperwork"
-if git diff --quiet contrib/homebrew/slosh.rb contrib/arch/PKGBUILD; then
- say "nothing to commit"
-else
- git add contrib/homebrew/slosh.rb contrib/arch/PKGBUILD
- git commit -q -m "release: $tag paperwork -- formula and PKGBUILD pinned"
- git push origin master
- say "committed and pushed"
-fi
-
printf '\nshipped %s:\n' "$tag"
say "github https://github.com/$GH_REPO/releases/tag/$tag"
say "brew brew tap sl0p-foo/slosh && brew install slosh"