Skip to content

Commit

Permalink
Migrate CosmWasm workspace (#1315)
Browse files Browse the repository at this point in the history
* Remove cosmwasm directory

* Update makefile to not reference cosmwasm directory

* Remove redundant check docs step from releases.md

* Remove cosmwasm dir from coverage.yaml

* Remove cosmwasm dir from rust.yaml

* Remove cosmwasm dir from upload-cw-clients.yaml

* Remove mention of cosmwasm ics07 client from readme

* Remove cosmwasm dir from Make lint rule

* Remove link to cosmwasm dir from readme

* Remove upload-cw-clients yaml file

* Update readme links and add changelog

* fix: add link for cosmwasm-ibc in README

* fix: update dependabot.yml

---------

Signed-off-by: Sean Chen <[email protected]>
Co-authored-by: Farhad Shabani <[email protected]>
  • Loading branch information
seanchen1991 and Farhad-Shabani authored Aug 14, 2024
1 parent b7dbc41 commit 60ff9bd
Show file tree
Hide file tree
Showing 35 changed files with 34 additions and 5,230 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- [cosmwasm] Migrated the `cosmwasm` workspace into its own separate repository
located at [https://github.com/informalsystems/cosmwasm-ibc].
([\#1311](https://github.com/cosmos/ibc-rs/issues/1311))
4 changes: 0 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,13 @@ updates:
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:
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/coverage.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@ on:
- .codecov.yaml
- .github/workflows/rust.yaml
- .github/workflows/coverage.yaml
- '*.toml'
- "*.toml"
- ci/**
- cosmwasm/**
- ibc/**
- ibc-core/**
- ibc-apps/**
Expand Down
11 changes: 5 additions & 6 deletions .github/workflows/rust.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ on:
- Makefile
- '*.toml'
- ci/**
- cosmwasm/**
- ibc/**
- ibc-core/**
- ibc-apps/**
Expand Down Expand Up @@ -49,25 +48,25 @@ jobs:
- name: Install Rust nightly toolchain with rustfmt
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
components: rustfmt
toolchain: nightly
components: rustfmt
- name: Install Rust stable toolchain with clippy
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy
components: clippy
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Taplo
uses: baptiste0928/cargo-install@v3
with:
crate: taplo-cli
crate: taplo-cli
- name: Run Lint Checks (fmt, clippy, taplo)
run: make lint
- name: Spell Check with Typos
uses: crate-ci/typos@master
with:
config: ./.github/typos.toml
config: ./.github/typos.toml

check-docs:
name: Check Documentations
Expand Down
85 changes: 0 additions & 85 deletions .github/workflows/upload-cw-clients.yaml

This file was deleted.

11 changes: 2 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ lint: ## Lint the code using rustfmt, clippy and whitespace lints.
$(MAKE) fmt
$(MAKE) clippy
$(MAKE) lint-toml
$(MAKE) -C ./cosmwasm lint
bash ./ci/code-quality/whitespace-lints.sh

fmt: ## Format the code using nightly rustfmt.
Expand All @@ -36,7 +35,6 @@ check-features: ## Check that project compiles with all combinations of features
check-docs: ## Build documentation with all features and without default features.
cargo doc --all --all-features --release
cargo doc --all --no-default-features --release
$(MAKE) -C ./cosmwasm check-docs $@

check-no-std: ## Check that libraries compile with `no_std` feature.
$(MAKE) -C ./ci/no-std-check $@
Expand All @@ -48,16 +46,11 @@ check-cw: ## Check that the CosmWasm smart contract compiles.
test: ## Run tests with all features and without default features.
cargo test --all-targets --all-features --no-fail-fast --release
cargo test --all-targets --no-default-features --no-fail-fast --release
$(MAKE) -C ./cosmwasm test $@

check-release: ## Check that the release build compiles.
cargo release --workspace --no-push --no-tag \
--exclude ibc-derive \
--exclude ibc-derive

release: ## Perform an actual release and publishes to crates.io.
cargo release --workspace --no-push --no-tag --allow-branch HEAD --execute \
--exclude ibc-derive \
$(MAKE) -C ./cosmwasm release $@

build-tendermint-cw: ## Build the WASM file for the ICS-07 Tendermint light client.
$(MAKE) -C ./cosmwasm build-tendermint-cw $@
--exclude ibc-derive
31 changes: 16 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ sub-crates that can be used independently or together.
| [ibc-testkit](ibc-testkit) | Provides testing toolkit to aid `ibc-rs` and host chains in writing integration tests. |
| [ibc-query](ibc-query) | Contains utility traits and implementations for querying states of an integrated IBC module. |
| [ibc-derive](ibc-derive) | Derive macros for `ClientState` and `ConsensusState` traits, reducing boilerplate. |
| [cosmwasm](cosmwasm) | Contains libraries that implement `ibc-rs` modules as CosmWasm contracts. |

## Contributing

Expand Down Expand Up @@ -74,20 +73,21 @@ projects. The `ibc-rs` implementation, in particular, is used for IBC
integration, testing, or development for some of the most technically compelling
use cases.

| # | Integration use-case | Team | Used-Modules | Links | Phase |
| -: | ------------------------------- | :-----------: | :----------: | :---------------------------------------------------------: | :----------------------: |
| 1 | Solana IBC implementation | Composable | :100: | [Picasso Network][pica-network] | :white_check_mark: |
| 2 | Ethereum IBC relayer | Composable | :100: | [Picasso Network][pica-network] | :white_check_mark: |
| 3 | Polkadot SDK IBC implementation | Composable | :100: | [Picasso Network][pica-network] | :white_check_mark: |
| 4 | Nomic | Nomic | :100: | [Nomic network][nomic] | :white_check_mark: |
| 5 | Namada | Anoma | :100: | [Namada][namada] | :hourglass_flowing_sand: |
| 6 | Sovereign | Informal | :100: | [`sovereign-ibc`][sov-ibc] | :hourglass_flowing_sand: |
| 7 | Hermes IBC relayer | Informal | :100: | [`basecoin-rs`][basecoin-rs] | :hammer_and_pick: |
| 8 | Substrate pallet | Octopus | :100: | [Substrate IBC Pallet][substrate-ibc] | :hammer_and_pick: |
| 9 | Near Protocol | Octopus | :100: | [`near-ibc`][near-ibc] | :hourglass_flowing_sand: |
| 10 | Tendermint Light Client | Electron Labs | `ics07` | [`Electron-Labs/tendermint-rs`][electronlabs-tendermint-rs] | :hourglass_flowing_sand: |
| 11 | Starknet | Informal | :eyes: | :eyes: | :eyes: |
| 12 | SP1 Tendermint Light Client | Interchain | `ics07` | [`cosmos/sp1-ics07-tendermint`][sp1-tendermint] | :hourglass_flowing_sand: |
| # | Integration use-case | Team | Used-Modules | Links | Phase |
| -: | ------------------------------- | :-----------: | :----------: | :---------------------------------------------------------: | :----------------------: |
| 1 | Solana IBC implementation | Composable | :100: | [Picasso Network][pica-network] | :white_check_mark: |
| 2 | Ethereum IBC relayer | Composable | :100: | [Picasso Network][pica-network] | :white_check_mark: |
| 3 | Polkadot SDK IBC implementation | Composable | :100: | [Picasso Network][pica-network] | :white_check_mark: |
| 4 | Nomic | Nomic | :100: | [Nomic network][nomic] | :white_check_mark: |
| 5 | CosmWasm Tendermint Light Client | Informal | `ics07` | [cosmwasm-ibc][cosmwasm-ibc] | :white_check_mark: |
| 6 | Namada | Anoma | :100: | [Namada][namada] | :hourglass_flowing_sand: |
| 7 | Sovereign | Informal | :100: | [`sovereign-ibc`][sov-ibc] | :hourglass_flowing_sand: |
| 8 | Hermes IBC relayer | Informal | :100: | [`basecoin-rs`][basecoin-rs] | :hammer_and_pick: |
| 9 | Substrate pallet | Octopus | :100: | [Substrate IBC Pallet][substrate-ibc] | :hammer_and_pick: |
| 10 | Near Protocol | Octopus | :100: | [`near-ibc`][near-ibc] | :hourglass_flowing_sand: |
| 11 | Tendermint Light Client | Electron Labs | `ics07` | [`Electron-Labs/tendermint-rs`][electronlabs-tendermint-rs] | :hourglass_flowing_sand: |
| 12 | Starknet | Informal | :eyes: | :eyes: | :eyes: |
| 13 | SP1 Tendermint Light Client | Interchain | `ics07` | [`cosmos/sp1-ics07-tendermint`][sp1-tendermint] | :hourglass_flowing_sand: |

Legend:

Expand Down Expand Up @@ -139,6 +139,7 @@ specific language governing permissions and limitations under the License.
[ibc]: https://github.com/cosmos/ibc
[ibc-go]: https://github.com/cosmos/ibc-go
[ibc-proto-rs]: https://github.com/cosmos/ibc-proto-rs
[cosmwasm-ibc]: https://github.com/informalsystems/cosmwasm-ibc
[ibc-homepage]: https://cosmos.network/ibc
[ibc-protocol]: https://ibcprotocol.dev
[cosmos-link]: https://cosmos.network
Expand Down
13 changes: 5 additions & 8 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,19 +69,16 @@ The release process for the main ibc-rs workspace is as follows:
than 5 new crates or 30 existing crates by default. If we need to publish
more than these limits, we need to update `release.toml` at workspace
root.
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.
6. Mark the PR as **Ready for Review** and incorporate feedback on the release.
5. Mark the PR as **Ready for Review** and incorporate feedback on the release.
Once approved, merge the PR.
7. Checkout the `main` and pull it with
6. Checkout the `main` and pull it with
`git checkout main && git pull origin main`.
8. Create a signed tag `git tag -s -a vX.Y.Z`. In the tag message, write the
7. Create a signed tag `git tag -s -a vX.Y.Z`. In the tag message, write the
version and the link to the corresponding section of the changelog. Then push
the tag to GitHub with `git push origin vX.Y.Z`.
- The [release workflow][release.yaml] will run the `cargo release --execute`
command in a CI worker.
9. If some crates have not been released, check the cause of the failure and
8. If some crates have not been released, check the cause of the failure and
act accordingly:
1. In case of intermittent problems with the registry, try `cargo release`
locally to publish any missing crates from this release. This step
Expand All @@ -91,7 +88,7 @@ The release process for the main ibc-rs workspace is as follows:
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, then
9. Once the tag is pushed, wait for the CI bot to create a GitHub release, then
update the release description and append:
`[📖CHANGELOG](https://github.com/cosmos/ibc-rs/blob/main/CHANGELOG.md#vXYZ)`
Expand Down
Loading

0 comments on commit 60ff9bd

Please sign in to comment.