diff options
| author | user <user@clank> | 2026-09-02 15:58:12 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-09-02 15:58:12 +0200 |
| commit | 60d622062aefa1258e348c4085ab33e0e7e2ae48 (patch) | |
| tree | 748d2ecc164b69fef0727e3a1561b7c6fc824695 | |
| parent | release: v0.1.4 paperwork -- formula and PKGBUILD pinned (diff) | |
| download | slosh-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-x | contrib/ship | 39 |
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" |
