Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.48.0 #980

Merged
merged 6 commits into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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`**
Farhad-Shabani marked this conversation as resolved.
Show resolved Hide resolved
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
Loading