# eg
# ./make-release --dry-run main
+
+# Overall release steps:
+#
+# - update dependencies (cargo update, cargo upgrades)
+# - check `cargo audit`
+# - edit CHANGELOG.md
+# - update versions
+# - ensure pretest == tested == main
+# - make deploy and test that chiark still works
+# - make-release --dry-run
+# - make-release
+# - release announcement to mailing list
+# - blog post
+
#---------- argument parsing and options ----------
set -e
head -1 CHANGELOG.md | grep "^Version $version" \
|| trouble "CHANGELOG.md not updated"
-cargo_order='base . cli daemon wasm apitest wdriver'
+cargo_order='base support . cli daemon wasm apitest wdriver jstest'
missing=(git ls-files :\*/Cargo.toml :Cargo.toml)
for x in $cargo_order; do missing+=(:!$x/Cargo.toml); done
missing=$( "${missing[@]}" )
#---------- non-idempotent things ----------
-$dryrun make -j12 publish
+$dryrun make -j12 PUBLISH_VERSION=$version publish
+$dryrun make -j12 PUBLISH_VERSION=$version publish-make-current
$dryrun git tag -s -u "$keyid" -m "Otter v$version" $tag
$dryrun git push chiark $tag
if [ "x$got" != x ]; then break; fi
delay=$(( $delay * 11 / 10 + 1 ))
done
- echo >&2 'done\n'
+ echo >&2 'done'
}
for cargo_dir in $cargo_order; do
$dryrun_no_more_cargo \
- nailing-cargo --no-nail --linkfarm=git --- \
+ nailing-cargo --no-nail --preclean-build=src --git --- \
sh -xec "
- find . ! -type l ! -type d ! -path './target/*' -print0 \
- | xargs -0r rm --
+ unset http_proxy; unset https_proxy
cd $cargo_dir; cargo publish $cargo_dryrun
"