Skip to content

Commit

Permalink
Release v0.48.0 (#980)
Browse files Browse the repository at this point in the history
* chore: prepare for v0.48.0 release

* fix: remained from ibc restructure

* chore: further touch up

* nit: broken link

* fix: missing std features

* fix: apply reviewer comments
  • Loading branch information
Farhad-Shabani authored Nov 23, 2023
1 parent 45b1c97 commit 6f04205
Show file tree
Hide file tree
Showing 41 changed files with 253 additions and 119 deletions.
2 changes: 0 additions & 2 deletions .changelog/unreleased/improvements/938-add-from.md

This file was deleted.

2 changes: 0 additions & 2 deletions .changelog/unreleased/improvements/939-less-alloc.md

This file was deleted.

2 changes: 2 additions & 0 deletions .changelog/v0.48.0/improvements/938-add-from.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Add From implementation for ICS26 enum types to make it simpler to construct
the types. ([\#938](https://github.com/cosmos/ibc-rs/pull/938))
2 changes: 2 additions & 0 deletions .changelog/v0.48.0/improvements/939-less-alloc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Reduce vector allocations in Commitment computation.
([\#939](https://github.com/cosmos/ibc-rs/pull/939))
20 changes: 20 additions & 0 deletions .changelog/v0.48.0/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
In this release, we've undertaken a comprehensive overhaul of the **`ibc-rs`**
repository, resulting in a strategic reorganization of the codebase. This
restructuring dissects the implementation of each IBC specification,
categorizing and situating them within relevant libraries. The primary objective
is to elevate `ibc-rs` practicality and enhance user flexibility by providing a
more modular and composable experience.

Users now have the flexibility to choose from a spectrum of dependencies. They
can opt to utilize the entire suite of meta-crates, such as `ibc`, `ibc-core`,
`ibc-clients`, or `ibc-apps`. Alternatively, they can exercise fine-grained
control by selectively importing specific crates. This can involve bringing in
an entire implemented IBC sub-module, like the `ibc-core-client` crate, or
importing only the associated data structures of a module, such as the
`ibc-core-client-types` crate.

Furthermore, this release introduces optimizations centered around construction
and validation of ICS-24 host identifiers, aiming to curtail some heap
allocations, beneficial for resource-constrained hosts.

There are no consensus-breaking changes.
83 changes: 83 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,88 @@
# CHANGELOG

## v0.48.0

*November 22, 2023*

In this release, we've undertaken a comprehensive overhaul of the **`ibc-rs`**
repository, resulting in a strategic reorganization of the codebase. This
restructuring dissects the implementation of each IBC specification,
categorizing and situating them within relevant libraries. The primary objective
is to elevate `ibc-rs` practicality and enhance user flexibility by providing a
more modular and composable experience.

Users now have the flexibility to choose from a spectrum of dependencies. They
can opt to utilize the entire suite of meta-crates, such as `ibc`, `ibc-core`,
`ibc-clients`, or `ibc-apps`. Alternatively, they can exercise fine-grained
control by selectively importing specific crates. This can involve bringing in
an entire implemented IBC sub-module, like the `ibc-core-client` crate, or
importing only the associated data structures of a module, such as the
`ibc-core-client-types` crate.

Furthermore, this release introduces optimizations centered around construction
and validation of ICS-24 host identifiers, aiming to curtail some heap
allocations, beneficial for resource-constrained hosts.

There are no consensus-breaking changes.

### BREAKING CHANGES

- Move ICS-20 and ICS-27 implementations to the respective part of `ibc-apps`
and `ibc-clients` crates, as part of the `ibc` crate restructuring effort.
([\#716](https://github.com/cosmos/ibc-rs/issues/716))
- Bump `ibc-proto-rs` to v0.38.0
([\#949](https://github.com/cosmos/ibc-rs/issues/949))
- Bump minimum supported Rust version to 1.64
([\#956](https://github.com/cosmos/ibc-rs/issues/956))
- Restructure `ibc-rs` codebase by organizing it into smaller self-contained,
modular libraries, enabling the selective import of specific domain types or
module implementations, either individually or in combination, providing
enhanced flexibility and ease of use.
([\#965](https://github.com/cosmos/ibc-rs/issues/965))

### FEATURES

- Restructure the mock module implementation and separate its codebase into a
new crate named `ibc-testkit`
([\#954](https://github.com/cosmos/ibc-rs/issues/953))
- Provide `Into<String>` for all identifiers types.
([\#974](https://github.com/cosmos/ibc-rs/pull/974))

### IMPROVEMENTS

- Re-export essential proto types from the underlying `ibc-*-*-types` crates,
removing the necessity for a direct dependency on `ibc-proto` in projects
integrating `ibc-rs` ([\#697](https://github.com/cosmos/ibc-rs/issues/697))
- Rename `{submodule}.rs` with corresponding `{submodule}` directory to
`{submodule}/mod.rs` ([\#771](https://github.com/cosmos/ibc-rs/issues/771))
- Add From implementation for ICS26 enum types to make it simpler to construct
the types. ([\#938](https://github.com/cosmos/ibc-rs/pull/938))
- Reduce vector allocations in Commitment computation.
([\#939](https://github.com/cosmos/ibc-rs/pull/939))
- Support chain identifiers without the `{chain_name}-{revision_number}` pattern
of Tendermint chains. ([\#940](https://github.com/cosmos/ibc-rs/issues/940)).
- Remove redundant `String` creation in `validate_prefix_length`
([\#943](https://github.com/cosmos/ibc-rs/issues/943)).
- Remove redundant `#[test_log::test]` attributes in test modules
([\#948](https://github.com/cosmos/ibc-rs/issues/948))
- Remove the default value and implementation for `PortId`
([\#951](https://github.com/cosmos/ibc-rs/issues/951))
- Expose domain message types under the `ics04_channel` as public
([\#952](https://github.com/cosmos/ibc-rs/issues/952))
- Enhance dependency management with workspace inheritance
([\#955](https://github.com/cosmos/ibc-rs/issues/955))
- Simplify and refactor ICS-24 identifier validation logic.
([\#961](https://github.com/cosmos/ibc-rs/issues/961))
- Reduce heap allocation by using `str` instead of `String` places we convert
domain event attributes to the ABCI event attributes
([\#970](https://github.com/cosmos/ibc-rs/issues/970))
- Expose various fields, types and functions in `ibc-rs` as public including:
- `validate` and `execute` handler functions for all the IBC message types.
- `TYPE_URL` constants.
- Any private fields within the domain message types.
- Any private fields within the Tendermint `ClientState` and `ConsensusState`
([\#976](https://github.com/cosmos/ibc-rs/issues/976))

## v0.47.0

*October 19, 2023*
Expand Down
54 changes: 27 additions & 27 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ exclude = [
]

[workspace.package]
version = "0.47.0"
version = "0.48.0"
license = "Apache-2.0"
edition = "2021"
rust-version = "1.64"
Expand All @@ -61,34 +61,34 @@ subtle-encoding = { version = "0.5", default-features = false }
time = { version = ">=0.3.0, <0.3.31", default-features = false }

# ibc dependencies
ibc = { version = "0.47.0", path = "./ibc", default-features = false }
ibc-core = { version = "0.47.0", path = "./ibc-core", default-features = false }
ibc-clients = { version = "0.47.0", path = "./ibc-clients", default-features = false }
ibc-apps = { version = "0.47.0", path = "./ibc-apps", default-features = false }
ibc-primitives = { version = "0.47.0", path = "./ibc-primitives", default-features = false }
ibc-testkit = { version = "0.47.0", path = "./ibc-testkit" }
ibc-derive = { version = "0.3.0", path = "./ibc-derive" }
ibc = { version = "0.48.0", path = "./ibc", default-features = false }
ibc-core = { version = "0.48.0", path = "./ibc-core", default-features = false }
ibc-clients = { version = "0.48.0", path = "./ibc-clients", default-features = false }
ibc-apps = { version = "0.48.0", path = "./ibc-apps", default-features = false }
ibc-primitives = { version = "0.48.0", path = "./ibc-primitives", default-features = false }
ibc-testkit = { version = "0.48.0", path = "./ibc-testkit" }
ibc-derive = { version = "0.4.0", path = "./ibc-derive" }

ibc-core-client = { version = "0.47.0", path = "./ibc-core/ics02-client", default-features = false }
ibc-core-connection = { version = "0.47.0", path = "./ibc-core/ics03-connection", default-features = false }
ibc-core-channel = { version = "0.47.0", path = "./ibc-core/ics04-channel", default-features = false }
ibc-core-host = { version = "0.47.0", path = "./ibc-core/ics24-host", default-features = false }
ibc-core-handler = { version = "0.47.0", path = "./ibc-core/ics25-handler", default-features = false }
ibc-core-router = { version = "0.47.0", path = "./ibc-core/ics26-routing", default-features = false }
ibc-client-tendermint = { version = "0.47.0", path = "./ibc-clients/ics07-tendermint", default-features = false }
ibc-app-transfer = { version = "0.47.0", path = "./ibc-apps/ics20-transfer", default-features = false }
ibc-core-client = { version = "0.48.0", path = "./ibc-core/ics02-client", default-features = false }
ibc-core-connection = { version = "0.48.0", path = "./ibc-core/ics03-connection", default-features = false }
ibc-core-channel = { version = "0.48.0", path = "./ibc-core/ics04-channel", default-features = false }
ibc-core-host = { version = "0.48.0", path = "./ibc-core/ics24-host", default-features = false }
ibc-core-handler = { version = "0.48.0", path = "./ibc-core/ics25-handler", default-features = false }
ibc-core-router = { version = "0.48.0", path = "./ibc-core/ics26-routing", default-features = false }
ibc-client-tendermint = { version = "0.48.0", path = "./ibc-clients/ics07-tendermint", default-features = false }
ibc-app-transfer = { version = "0.48.0", path = "./ibc-apps/ics20-transfer", default-features = false }

ibc-core-client-context = { version = "0.47.0", path = "./ibc-core/ics02-client/context", default-features = false }
ibc-core-client-types = { version = "0.47.0", path = "./ibc-core/ics02-client/types", default-features = false }
ibc-core-channel-types = { version = "0.47.0", path = "./ibc-core/ics04-channel/types", default-features = false }
ibc-core-connection-types = { version = "0.47.0", path = "./ibc-core/ics03-connection/types", default-features = false }
ibc-core-commitment-types = { version = "0.47.0", path = "./ibc-core/ics23-commitment/types", default-features = false }
ibc-core-host-cosmos = { version = "0.47.0", path = "./ibc-core/ics24-host/cosmos", default-features = false }
ibc-core-host-types = { version = "0.47.0", path = "./ibc-core/ics24-host/types", default-features = false }
ibc-core-handler-types = { version = "0.47.0", path = "./ibc-core/ics25-handler/types", default-features = false }
ibc-core-router-types = { version = "0.47.0", path = "./ibc-core/ics26-routing/types", default-features = false }
ibc-client-tendermint-types = { version = "0.47.0", path = "./ibc-clients/ics07-tendermint/types", default-features = false }
ibc-app-transfer-types = { version = "0.47.0", path = "./ibc-apps/ics20-transfer/types", default-features = false }
ibc-core-client-context = { version = "0.48.0", path = "./ibc-core/ics02-client/context", default-features = false }
ibc-core-client-types = { version = "0.48.0", path = "./ibc-core/ics02-client/types", default-features = false }
ibc-core-channel-types = { version = "0.48.0", path = "./ibc-core/ics04-channel/types", default-features = false }
ibc-core-connection-types = { version = "0.48.0", path = "./ibc-core/ics03-connection/types", default-features = false }
ibc-core-commitment-types = { version = "0.48.0", path = "./ibc-core/ics23-commitment/types", default-features = false }
ibc-core-host-cosmos = { version = "0.48.0", path = "./ibc-core/ics24-host/cosmos", default-features = false }
ibc-core-host-types = { version = "0.48.0", path = "./ibc-core/ics24-host/types", default-features = false }
ibc-core-handler-types = { version = "0.48.0", path = "./ibc-core/ics25-handler/types", default-features = false }
ibc-core-router-types = { version = "0.48.0", path = "./ibc-core/ics26-routing/types", default-features = false }
ibc-client-tendermint-types = { version = "0.48.0", path = "./ibc-clients/ics07-tendermint/types", default-features = false }
ibc-app-transfer-types = { version = "0.48.0", path = "./ibc-apps/ics20-transfer/types", default-features = false }

ibc-proto = { version = "0.38.0", default-features = false }
ics23 = { version = "0.11", default-features = false }
Expand Down
Loading

0 comments on commit 6f04205

Please sign in to comment.