summaryrefslogtreecommitdiffstats
path: root/third_party/rust/prost/prepare-release.sh
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/prost/prepare-release.sh')
-rwxr-xr-xthird_party/rust/prost/prepare-release.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/third_party/rust/prost/prepare-release.sh b/third_party/rust/prost/prepare-release.sh
new file mode 100755
index 0000000000..34e5202c24
--- /dev/null
+++ b/third_party/rust/prost/prepare-release.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# Script which automates modifying source version fields, and creating a release
+# commit and tag. The commit and tag are not automatically pushed, nor are the
+# crates published (see publish-release.sh).
+
+set -ex
+
+if [ "$#" -ne 1 ]
+then
+ echo "Usage: $0 <version>"
+ exit 1
+fi
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+VERSION="$1"
+MINOR="$( echo ${VERSION} | cut -d\. -f1-2 )"
+
+VERSION_MATCHER="([a-z0-9\\.-]+)"
+PROST_CRATE_MATCHER="(prost|prost-[a-z]+)"
+
+# Update the README.md.
+sed -i -E "s/${PROST_CRATE_MATCHER} = \"${VERSION_MATCHER}\"/\1 = \"${MINOR}\"/" "$DIR/README.md"
+
+# Update html_root_url attributes.
+sed -i -E "s~html_root_url = \"https://docs\.rs/${PROST_CRATE_MATCHER}/$VERSION_MATCHER\"~html_root_url = \"https://docs.rs/\1/${VERSION}\"~" \
+ "$DIR/src/lib.rs" \
+ "$DIR/prost-derive/src/lib.rs" \
+ "$DIR/prost-build/src/lib.rs" \
+ "$DIR/prost-types/src/lib.rs"
+
+# Update Cargo.toml version fields.
+sed -i -E "s/^version = \"${VERSION_MATCHER}\"$/version = \"${VERSION}\"/" \
+ "$DIR/Cargo.toml" \
+ "$DIR/prost-derive/Cargo.toml" \
+ "$DIR/prost-build/Cargo.toml" \
+ "$DIR/prost-types/Cargo.toml"
+
+# Update Cargo.toml dependency versions.
+sed -i -E "s/^${PROST_CRATE_MATCHER} = \{ version = \"${VERSION_MATCHER}\"/\1 = { version = \"${VERSION}\"/" \
+ "$DIR/Cargo.toml" \
+ "$DIR/prost-derive/Cargo.toml" \
+ "$DIR/prost-build/Cargo.toml" \
+ "$DIR/prost-types/Cargo.toml"
+
+git commit -a -m "release ${VERSION}"
+git tag -a "v${VERSION}" -m "release ${VERSION}"