Skip to content

Commit

Permalink
Merge branch 'main' into rano/ics07/simplify-cw-client
Browse files Browse the repository at this point in the history
Signed-off-by: Rano | Ranadeep <[email protected]>
  • Loading branch information
rnbguy authored Apr 30, 2024
2 parents 4cdb0e9 + 51453ab commit ba30fa9
Show file tree
Hide file tree
Showing 73 changed files with 1,487 additions and 1,349 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- Update `ibc-proto` to v0.44.0 and `tendermint` dependencies to v0.36.0.
([\#1212](https://github.com/cosmos/ibc-rs/issues/1212))
- Revert Rust minimum supported version to `1.71.1`.
([\#1206](https://github.com/cosmos/ibc-rs/pull/1206))
15 changes: 15 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,26 @@ updates:
directory: "/"
schedule:
interval: "weekly"
ignore:
- dependency-name: "tendermint*"
- dependency-name: "ibc*"
- dependency-name: "cosmwasm*"
- dependency-name: "cw*"
- package-ecosystem: "cargo"
directory: "ci/no-std-check"
schedule:
interval: "weekly"
ignore:
- dependency-name: "tendermint*"
- dependency-name: "ibc*"
- dependency-name: "cosmwasm*"
- dependency-name: "cw*"
- package-ecosystem: "cargo"
directory: "ci/cw-check"
schedule:
interval: "weekly"
ignore:
- dependency-name: "tendermint*"
- dependency-name: "ibc*"
- dependency-name: "cosmwasm*"
- dependency-name: "cw*"
8 changes: 7 additions & 1 deletion .github/workflows/code-quality.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
FD_VERSION: 9.0.0
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Whitestapace lints
run: bash ci/code-quality/whitespace-lints.sh
Expand All @@ -19,3 +19,9 @@ jobs:
uses: crate-ci/[email protected] # NOTE: Newer versions detect false positives. Test locally before upgrading.
with:
config: ./.github/typos.toml

- uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: baptiste0928/cargo-install@v3
with:
crate: taplo-cli
- run: taplo fmt --check
2 changes: 1 addition & 1 deletion .github/workflows/rust.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ jobs:
timeout-minutes: 30
env:
CARGO_MSRV_VERSION: 0.16.0-beta.20
MSRV: 1.72
MSRV: 1.71.1
strategy:
matrix:
param:
Expand Down
158 changes: 79 additions & 79 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,91 +2,91 @@
resolver = "2"
# members sorted by publishing order to `crates.io`
members = [
"ibc-derive",
"ibc-primitives",
"ibc-core/ics24-host/types",
"ibc-core/ics26-routing/types",
"ibc-core/ics23-commitment/types",
"ibc-core/ics02-client/types",
"ibc-core/ics03-connection/types",
"ibc-core/ics04-channel/types",
"ibc-core/ics25-handler/types",
"ibc-core/ics02-client/context",
"ibc-core/ics24-host",
"ibc-core/ics26-routing",
"ibc-core/ics02-client",
"ibc-core/ics03-connection",
"ibc-core/ics04-channel",
"ibc-core/ics25-handler",
"ibc-core",
"ibc-clients/ics07-tendermint/types",
"ibc-clients/ics07-tendermint",
"ibc-clients/ics08-wasm/types",
"ibc-clients/cw-context",
"ibc-clients/ics07-tendermint/cw-contract",
"ibc-clients",
"ibc-apps/ics20-transfer/types",
"ibc-apps/ics20-transfer",
"ibc-apps/ics721-nft-transfer/types",
"ibc-apps/ics721-nft-transfer",
"ibc-apps",
"ibc-core/ics24-host/cosmos",
"ibc-data-types",
"ibc",
"ibc-query",
"ibc-testkit",
"ibc-derive",
"ibc-primitives",
"ibc-core/ics24-host/types",
"ibc-core/ics26-routing/types",
"ibc-core/ics23-commitment/types",
"ibc-core/ics02-client/types",
"ibc-core/ics03-connection/types",
"ibc-core/ics04-channel/types",
"ibc-core/ics25-handler/types",
"ibc-core/ics02-client/context",
"ibc-core/ics24-host",
"ibc-core/ics26-routing",
"ibc-core/ics02-client",
"ibc-core/ics03-connection",
"ibc-core/ics04-channel",
"ibc-core/ics25-handler",
"ibc-core",
"ibc-clients/ics07-tendermint/types",
"ibc-clients/ics07-tendermint",
"ibc-clients/ics08-wasm/types",
"ibc-clients/cw-context",
"ibc-clients/ics07-tendermint/cw-contract",
"ibc-clients",
"ibc-apps/ics20-transfer/types",
"ibc-apps/ics20-transfer",
"ibc-apps/ics721-nft-transfer/types",
"ibc-apps/ics721-nft-transfer",
"ibc-apps",
"ibc-core/ics24-host/cosmos",
"ibc-data-types",
"ibc",
"ibc-query",
"ibc-testkit",
]
exclude = [
"ci/cw-check",
"ci/no-std-check",
"ci/cw-check",
"ci/no-std-check",
]

[workspace.package]
version = "0.52.0"
license = "Apache-2.0"
edition = "2021"
rust-version = "1.72"
rust-version = "1.71.1"
readme = "README.md"
repository = "https://github.com/cosmos/ibc-rs"
authors = ["Informal Systems <[email protected]>"]
authors = [ "Informal Systems <[email protected]>" ]

[workspace.dependencies]
# external dependencies
base64 = { version = "0.21", default-features = false }
borsh = { version = "0.10", default-features = false }
displaydoc = { version = "0.2", default-features = false }
prost = { version = "0.12", default-features = false }
derive_more = { version = "0.99.17", default-features = false, features = ["from", "into", "display", "try_into"] }
rstest = "0.18.2"
schemars = { version = "0.8.15" }
sha2 = { version = "0.10.8", default-features = false }
serde = { version = "1.0", default-features = false }
serde_json = { package = "serde-json-wasm", version = "1.0.1", default-features = false }
subtle-encoding = { version = "0.5", default-features = false }
base64 = { version = "0.21", default-features = false }
borsh = { version = "0.10", default-features = false }
displaydoc = { version = "0.2", default-features = false }
prost = { version = "0.12", default-features = false }
derive_more = { version = "0.99.17", default-features = false, features = [ "from", "into", "display", "try_into" ] }
rstest = { version = "0.18.2" }
schemars = { version = "0.8.15" }
sha2 = { version = "0.10.8", default-features = false }
serde = { version = "1.0", default-features = false }
serde_json = { package = "serde-json-wasm", version = "1.0.1", default-features = false }
subtle-encoding = { version = "0.5", default-features = false }

# ibc dependencies
ibc = { version = "0.52.0", path = "./ibc", default-features = false }
ibc-core = { version = "0.52.0", path = "./ibc-core", default-features = false }
ibc-clients = { version = "0.52.0", path = "./ibc-clients", default-features = false }
ibc-apps = { version = "0.52.0", path = "./ibc-apps", default-features = false }
ibc-primitives = { version = "0.52.0", path = "./ibc-primitives", default-features = false }
ibc-testkit = { version = "0.52.0", path = "./ibc-testkit", default-features = false }
ibc = { version = "0.52.0", path = "./ibc", default-features = false }
ibc-core = { version = "0.52.0", path = "./ibc-core", default-features = false }
ibc-clients = { version = "0.52.0", path = "./ibc-clients", default-features = false }
ibc-apps = { version = "0.52.0", path = "./ibc-apps", default-features = false }
ibc-primitives = { version = "0.52.0", path = "./ibc-primitives", default-features = false }
ibc-testkit = { version = "0.52.0", path = "./ibc-testkit", default-features = false }

ibc-derive = { version = "0.7.0", path = "./ibc-derive" }
ibc-derive = { version = "0.7.0", path = "./ibc-derive" }

ibc-core-client = { version = "0.52.0", path = "./ibc-core/ics02-client", default-features = false }
ibc-core-connection = { version = "0.52.0", path = "./ibc-core/ics03-connection", default-features = false }
ibc-core-channel = { version = "0.52.0", path = "./ibc-core/ics04-channel", default-features = false }
ibc-core-host = { version = "0.52.0", path = "./ibc-core/ics24-host", default-features = false }
ibc-core-handler = { version = "0.52.0", path = "./ibc-core/ics25-handler", default-features = false }
ibc-core-router = { version = "0.52.0", path = "./ibc-core/ics26-routing", default-features = false }
ibc-core-client = { version = "0.52.0", path = "./ibc-core/ics02-client", default-features = false }
ibc-core-connection = { version = "0.52.0", path = "./ibc-core/ics03-connection", default-features = false }
ibc-core-channel = { version = "0.52.0", path = "./ibc-core/ics04-channel", default-features = false }
ibc-core-host = { version = "0.52.0", path = "./ibc-core/ics24-host", default-features = false }
ibc-core-handler = { version = "0.52.0", path = "./ibc-core/ics25-handler", default-features = false }
ibc-core-router = { version = "0.52.0", path = "./ibc-core/ics26-routing", default-features = false }

ibc-client-cw = { version = "0.52.0", path = "./ibc-clients/cw-context", default-features = false }
ibc-client-tendermint = { version = "0.52.0", path = "./ibc-clients/ics07-tendermint", default-features = false }
ibc-client-tendermint-cw = { version = "0.52.0", path = "./ibc-clients/ics07-tendermint/cw-contract", default-features = false }
ibc-client-cw = { version = "0.52.0", path = "./ibc-clients/cw-context", default-features = false }
ibc-client-tendermint = { version = "0.52.0", path = "./ibc-clients/ics07-tendermint", default-features = false }
ibc-client-tendermint-cw = { version = "0.52.0", path = "./ibc-clients/ics07-tendermint/cw-contract", default-features = false }

ibc-app-transfer = { version = "0.52.0", path = "./ibc-apps/ics20-transfer", default-features = false }
ibc-app-nft-transfer = { version = "0.52.0", path = "./ibc-apps/ics721-nft-transfer", default-features = false }
ibc-app-transfer = { version = "0.52.0", path = "./ibc-apps/ics20-transfer", default-features = false }
ibc-app-nft-transfer = { version = "0.52.0", path = "./ibc-apps/ics721-nft-transfer", default-features = false }

ibc-core-client-context = { version = "0.52.0", path = "./ibc-core/ics02-client/context", default-features = false }
ibc-core-client-types = { version = "0.52.0", path = "./ibc-core/ics02-client/types", default-features = false }
Expand All @@ -102,25 +102,25 @@ ibc-client-wasm-types = { version = "0.52.0", path = "./ibc-clients/ics08-
ibc-app-transfer-types = { version = "0.52.0", path = "./ibc-apps/ics20-transfer/types", default-features = false }
ibc-app-nft-transfer-types = { version = "0.52.0", path = "./ibc-apps/ics721-nft-transfer/types", default-features = false }

ibc-proto = { version = "0.43.0", default-features = false }
ibc-proto = { version = "0.44.0", default-features = false }

# cosmos dependencies
tendermint = { version = "0.35.0", default-features = false }
tendermint-light-client = { version = "0.35.0", default-features = false }
tendermint-light-client-verifier = { version = "0.35.0", default-features = false }
tendermint-proto = { version = "0.35.0", default-features = false }
tendermint-rpc = { version = "0.35.0", default-features = false }
tendermint-testgen = { version = "0.35.0", default-features = false }
tendermint = { version = "0.36.0", default-features = false }
tendermint-light-client = { version = "0.36.0", default-features = false }
tendermint-light-client-verifier = { version = "0.36.0", default-features = false }
tendermint-proto = { version = "0.36.0", default-features = false }
tendermint-rpc = { version = "0.36.0", default-features = false }
tendermint-testgen = { version = "0.36.0", default-features = false }

# cosmwasm dependencies
### Note: Kept at the following version to match the CosmWasm module version
### used by chains supporting the wasm-enabled version of ibc-go v7.3
### (This is the min version of `ibc-go` that supports `08-wasm` light clients)
cosmwasm-schema = { version = "1.5.4" }
cosmwasm-std = { version = "1.5.4" }
cosmwasm-vm = { version = "1.5.4" }
cw-storage-plus = { version = "1.2.0" }
cosmwasm-schema = { version = "1.5.4" }
cosmwasm-std = { version = "1.5.4" }
cosmwasm-vm = { version = "1.5.4" }
cw-storage-plus = { version = "1.2.0" }

# parity dependencies
parity-scale-codec = { version = "3.6.5", default-features = false, features = ["full"] }
scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
parity-scale-codec = { version = "3.6.5", default-features = false, features = [ "full" ] }
scale-info = { version = "2.10.0", default-features = false, features = [ "derive" ] }
7 changes: 4 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ install-tools: ## Install development tools including nightly rustfmt, cargo-hac
rustup component add rustfmt --toolchain nightly
cargo install cargo-hack
cargo install cargo-release
cargo install typos-cli
cargo install typos-cli taplo-cli

lint: ## Lint the code using rustfmt, clippy and whitespace lints.
cargo +nightly fmt --all --check
cargo clippy --all-targets --all-features
cargo clippy --all-targets --no-default-features
typos --config $(CURDIR)/.github/typos.toml
bash ./ci/code-quality/whitespace-lints.sh
taplo fmt --check

check-features: ## Check that project compiles with all combinations of features.
cargo hack check --workspace --feature-powerset --exclude-features default
Expand All @@ -36,10 +37,10 @@ test: ## Run tests with all features and without default features.
cargo test --all-targets --no-default-features

check-release: ## Check that the release build compiles.
cargo release --workspace --no-push --no-tag --no-publish --exclude ibc-derive
cargo release --workspace --no-push --no-tag --no-publish --exclude ibc-derive --exclude ibc-client-tendermint-cw

release: ## Perform an actual release and publishes to crates.io.
cargo release --workspace --no-push --no-tag --exclude ibc-derive --allow-branch HEAD --execute
cargo release --workspace --no-push --no-tag --exclude ibc-derive --exclude ibc-client-tendermint-cw --allow-branch HEAD --execute

build-tendermint-cw: ## Build the WASM file for the ICS-07 Tendermint light client.
@echo "Building the WASM file for the ICS-07 Tendermint light client"
Expand Down
19 changes: 18 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,21 @@ Our release process is as follows:
the root `Cargo.toml` as well, and push these changes to the release PR.
- If you released a new version of `ibc-derive` in step 3, make sure to
update that dependency.
- Verify that there is no dev-dependency among the workspace crates,
except `ibc-testkit`. This is important, as `cargo-release` ignores
dev-dependency edges. You may use `cargo-depgraph`:
```sh
cargo depgraph --all-features --workspace-only --dev-deps | dot -Tpng > graph.png
```
The command will generate a graph similar to this:
![alt test](docs/dev-deps-graph.png)
The blue lines indicate dev dependencies; there should only be one blue line
referring to the `ibc-testkit` dependency. So the above example would result
in an unsuccessful release.
- In order to resolve such a situation, the dev dependencies other than `ibc-testkit`
can be manually released to crates.io first so that the subsequent crates that
depend on them can then be released via the release process. For instructions
on how to release a crate on crates.io, refer [here](https://doc.rust-lang.org/cargo/reference/publishing.html).
5. Run `cargo doc -p ibc --all-features --open` locally to double-check that all
the documentation compiles and seems up-to-date and coherent. Fix any
potential issues here and push them to the release PR.
Expand All @@ -41,7 +56,9 @@ Our release process is as follows:
1. In case of intermittent problems with the registry, try `cargo release`
locally to publish any missing crates from this release. This step
requires the appropriate privileges to push crates to [crates.io].
2. In case the problems arise from the source files, fix them, bump a new
2. If there is any new crate published locally, add
[ibcbot](https://crates.io/users/ibcbot) to its owners list.
3. In case problems arise from the source files, fix them, bump a new
patch version (e.g. `v0.48.1`) and repeat the process with its
corresponding new tag.
10. Once the tag is pushed, wait for the CI bot to create a GitHub release,
Expand Down
Loading

0 comments on commit ba30fa9

Please sign in to comment.