From f44370cbd5440427bc24833852596a28d7fbc726 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Wed, 8 May 2024 14:33:56 +0200 Subject: [PATCH 1/2] Set the crate version centrally via the workspace --- Cargo.toml | 3 +++ packages/check/Cargo.toml | 2 +- packages/crypto/Cargo.toml | 2 +- packages/derive/Cargo.toml | 2 +- packages/schema-derive/Cargo.toml | 2 +- packages/schema/Cargo.toml | 2 +- packages/std/Cargo.toml | 2 +- packages/vm/Cargo.toml | 2 +- 8 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 311069d0cf..24ecf983fe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,3 +5,6 @@ exclude = ["contracts"] # Resolver has to be set explicitely in workspaces # due to https://github.com/rust-lang/cargo/issues/9956 resolver = "2" + +[workspace.package] +version = "2.0.2" diff --git a/packages/check/Cargo.toml b/packages/check/Cargo.toml index 8f1260fd12..549e8faf01 100644 --- a/packages/check/Cargo.toml +++ b/packages/check/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmwasm-check" -version = "2.0.2" +version.workspace = true authors = ["Mauro Lacy "] edition = "2021" description = "A CLI tool for verifying CosmWasm smart contracts" diff --git a/packages/crypto/Cargo.toml b/packages/crypto/Cargo.toml index d6832d6a28..ccccd66881 100644 --- a/packages/crypto/Cargo.toml +++ b/packages/crypto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmwasm-crypto" -version = "2.0.2" +version.workspace = true authors = ["Mauro Lacy "] edition = "2021" description = "Crypto bindings for cosmwasm contracts" diff --git a/packages/derive/Cargo.toml b/packages/derive/Cargo.toml index 9af988aa85..f0722ec99c 100644 --- a/packages/derive/Cargo.toml +++ b/packages/derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmwasm-derive" -version = "2.0.2" +version.workspace = true authors = ["Simon Warta "] edition = "2021" description = "A package for auto-generated code used for CosmWasm contract development. This is shipped as part of cosmwasm-std. Do not use directly." diff --git a/packages/schema-derive/Cargo.toml b/packages/schema-derive/Cargo.toml index 0f3407a31c..97bc6e8a0b 100644 --- a/packages/schema-derive/Cargo.toml +++ b/packages/schema-derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmwasm-schema-derive" -version = "2.0.2" +version.workspace = true authors = ["Tomasz Kurcz "] edition = "2021" description = "Derive macros for cosmwasm-schema" diff --git a/packages/schema/Cargo.toml b/packages/schema/Cargo.toml index 7cf0ab2d5a..460702e0e1 100644 --- a/packages/schema/Cargo.toml +++ b/packages/schema/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmwasm-schema" -version = "2.0.2" +version.workspace = true authors = ["Simon Warta ", "Ethan Frey "] edition = "2021" description = "A dev-dependency for CosmWasm contracts to generate JSON Schema files." diff --git a/packages/std/Cargo.toml b/packages/std/Cargo.toml index a57e92b9c9..3071e77be3 100644 --- a/packages/std/Cargo.toml +++ b/packages/std/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmwasm-std" -version = "2.0.2" +version.workspace = true authors = ["Ethan Frey "] edition = "2021" description = "Standard library for Wasm based smart contracts on Cosmos blockchains" diff --git a/packages/vm/Cargo.toml b/packages/vm/Cargo.toml index f9137b2c90..003a7972e5 100644 --- a/packages/vm/Cargo.toml +++ b/packages/vm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmwasm-vm" -version = "2.0.2" +version.workspace = true authors = ["Ethan Frey "] edition = "2021" description = "VM bindings to run cosmwams contracts" From 5410f7ef85bf6bf24efc2e51325577585e17bb98 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Wed, 8 May 2024 14:57:34 +0200 Subject: [PATCH 2/2] Setup cargo-release --- CHANGELOG.md | 4 +++ Cargo.toml | 5 ++++ devtools/release_checks.sh | 11 +++++++ devtools/set_version.sh | 61 -------------------------------------- packages/vm/Cargo.toml | 12 ++++++++ 5 files changed, 32 insertions(+), 61 deletions(-) create mode 100755 devtools/release_checks.sh delete mode 100755 devtools/set_version.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index da132ece0d..c3b8763903 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + ## [Unreleased] ### Changed @@ -798,6 +800,8 @@ and this project adheres to The CHANGELOG for versions before 1.0.0 was moved to [CHANGELOG-pre1.0.0.md](./CHANGELOG-pre1.0.0.md). + + [unreleased]: https://github.com/CosmWasm/cosmwasm/compare/v2.0.2...HEAD [2.0.2]: https://github.com/CosmWasm/cosmwasm/compare/v2.0.1...v2.0.2 [2.0.1]: https://github.com/CosmWasm/cosmwasm/compare/v2.0.0...v2.0.1 diff --git a/Cargo.toml b/Cargo.toml index 24ecf983fe..84d115e6c8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,3 +8,8 @@ resolver = "2" [workspace.package] version = "2.0.2" + +[workspace.metadata.release] +shared-version = true +tag-message = "chore: Release cosmwasm v{{version}}" +tag-name = "v{{version}}" diff --git a/devtools/release_checks.sh b/devtools/release_checks.sh new file mode 100755 index 0000000000..3a53e932f8 --- /dev/null +++ b/devtools/release_checks.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Move to the workspace root +WORKSPACE_PATH=$(dirname $(cargo locate-project --workspace --message-format=plain)) +cd $WORKSPACE_PATH + +cargo build + +for contract_dir in contracts/*/; do + (cd "$contract_dir" && cargo build) +done diff --git a/devtools/set_version.sh b/devtools/set_version.sh deleted file mode 100755 index 5dd6bc9034..0000000000 --- a/devtools/set_version.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -set -o errexit -o nounset -o pipefail -command -v shellcheck >/dev/null && shellcheck "$0" - -gnused="$(command -v gsed || echo sed)" - -function print_usage() { - echo "Usage: $0 NEW_VERSION" - echo "" - echo "e.g. $0 0.8.0" -} - -if [ "$#" -ne 1 ]; then - print_usage - exit 1 -fi - -# Check repo -SCRIPT_DIR="$(realpath "$(dirname "$0")")" -if [[ "$(realpath "$SCRIPT_DIR/..")" != "$(pwd)" ]]; then - echo "Script must be called from the repo root" - exit 2 -fi - -# Ensure repo is not dirty -CHANGES_IN_REPO=$(git status --porcelain) -if [[ -n "$CHANGES_IN_REPO" ]]; then - echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:" - git status && git --no-pager diff - exit 3 -fi - -NEW="$1" -OLD=$("$gnused" -n -e 's/^version[[:space:]]*=[[:space:]]*"\(.*\)"/\1/p' packages/std/Cargo.toml) -echo "Updating old version $OLD to new version $NEW ..." - -FILES_MODIFIED=() - -for package_dir in packages/*/; do - CARGO_TOML="$package_dir/Cargo.toml" - # The `version = "1.0.0"` cases - "$gnused" -i -e "s/version[[:space:]]*=[[:space:]]*\"$OLD\"/version = \"$NEW\"/" "$CARGO_TOML" - # The `version = "=1.0.0"` cases - "$gnused" -i -e "s/version[[:space:]]*=[[:space:]]*\"=$OLD\"/version = \"=$NEW\"/" "$CARGO_TOML" - FILES_MODIFIED+=("$CARGO_TOML") -done - -cargo build -FILES_MODIFIED+=("Cargo.lock") - -for contract_dir in contracts/*/; do - CARGO_LOCK="$contract_dir/Cargo.lock" - - (cd "$contract_dir" && cargo build) - - FILES_MODIFIED+=("$CARGO_LOCK") -done - -echo "Staging ${FILES_MODIFIED[*]} ..." -git add "${FILES_MODIFIED[@]}" -git commit -m "Set version: $NEW" diff --git a/packages/vm/Cargo.toml b/packages/vm/Cargo.toml index 003a7972e5..25ebb2cb94 100644 --- a/packages/vm/Cargo.toml +++ b/packages/vm/Cargo.toml @@ -7,6 +7,18 @@ description = "VM bindings to run cosmwams contracts" repository = "https://github.com/CosmWasm/cosmwasm/tree/main/packages/vm" license = "Apache-2.0" +[package.metadata.release] +pre-release-hook = [ + "../../devtools/release_checks.sh" +] +pre-release-replacements = [ + { file="../../CHANGELOG.md", search="## \\[Unreleased\\]", replace="## [{{version}}] - {{date}}", exactly=1 }, + { file="../../CHANGELOG.md", search="(U|u)nreleased", replace="{{version}}" }, + { file="../../CHANGELOG.md", search="", replace="\n\n## [Unreleased]", exactly=1 }, + { file="../../CHANGELOG.md", search="\\.\\.\\.HEAD", replace="...{{tag_name}}", exactly=1 }, + { file="../../CHANGELOG.md", search="\n", replace="\n\n[unreleased]: https://github.com/CosmWasm/cosmwasm/compare/{{tag_name}}...HEAD", exactly=1 }, +] + [features] default = ["staking", "iterator"] # iterator allows us to iterate over all DB items in a given range