Skip to content

Commit b9c517b

Browse files
Release v0.48.0 (#980)
* 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
1 parent 57291ef commit b9c517b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+253
-119
lines changed

.changelog/unreleased/improvements/938-add-from.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

.changelog/unreleased/improvements/939-less-alloc.md

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- Add From implementation for ICS26 enum types to make it simpler to construct
2+
the types. ([\#938](https://github.com/cosmos/ibc-rs/pull/938))
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- Reduce vector allocations in Commitment computation.
2+
([\#939](https://github.com/cosmos/ibc-rs/pull/939))

.changelog/v0.48.0/summary.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
In this release, we've undertaken a comprehensive overhaul of the **`ibc-rs`**
2+
repository, resulting in a strategic reorganization of the codebase. This
3+
restructuring dissects the implementation of each IBC specification,
4+
categorizing and situating them within relevant libraries. The primary objective
5+
is to elevate `ibc-rs` practicality and enhance user flexibility by providing a
6+
more modular and composable experience.
7+
8+
Users now have the flexibility to choose from a spectrum of dependencies. They
9+
can opt to utilize the entire suite of meta-crates, such as `ibc`, `ibc-core`,
10+
`ibc-clients`, or `ibc-apps`. Alternatively, they can exercise fine-grained
11+
control by selectively importing specific crates. This can involve bringing in
12+
an entire implemented IBC sub-module, like the `ibc-core-client` crate, or
13+
importing only the associated data structures of a module, such as the
14+
`ibc-core-client-types` crate.
15+
16+
Furthermore, this release introduces optimizations centered around construction
17+
and validation of ICS-24 host identifiers, aiming to curtail some heap
18+
allocations, beneficial for resource-constrained hosts.
19+
20+
There are no consensus-breaking changes.

CHANGELOG.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,88 @@
11
# CHANGELOG
22

3+
## v0.48.0
4+
5+
*November 22, 2023*
6+
7+
In this release, we've undertaken a comprehensive overhaul of the **`ibc-rs`**
8+
repository, resulting in a strategic reorganization of the codebase. This
9+
restructuring dissects the implementation of each IBC specification,
10+
categorizing and situating them within relevant libraries. The primary objective
11+
is to elevate `ibc-rs` practicality and enhance user flexibility by providing a
12+
more modular and composable experience.
13+
14+
Users now have the flexibility to choose from a spectrum of dependencies. They
15+
can opt to utilize the entire suite of meta-crates, such as `ibc`, `ibc-core`,
16+
`ibc-clients`, or `ibc-apps`. Alternatively, they can exercise fine-grained
17+
control by selectively importing specific crates. This can involve bringing in
18+
an entire implemented IBC sub-module, like the `ibc-core-client` crate, or
19+
importing only the associated data structures of a module, such as the
20+
`ibc-core-client-types` crate.
21+
22+
Furthermore, this release introduces optimizations centered around construction
23+
and validation of ICS-24 host identifiers, aiming to curtail some heap
24+
allocations, beneficial for resource-constrained hosts.
25+
26+
There are no consensus-breaking changes.
27+
28+
### BREAKING CHANGES
29+
30+
- Move ICS-20 and ICS-27 implementations to the respective part of `ibc-apps`
31+
and `ibc-clients` crates, as part of the `ibc` crate restructuring effort.
32+
([\#716](https://github.com/cosmos/ibc-rs/issues/716))
33+
- Bump `ibc-proto-rs` to v0.38.0
34+
([\#949](https://github.com/cosmos/ibc-rs/issues/949))
35+
- Bump minimum supported Rust version to 1.64
36+
([\#956](https://github.com/cosmos/ibc-rs/issues/956))
37+
- Restructure `ibc-rs` codebase by organizing it into smaller self-contained,
38+
modular libraries, enabling the selective import of specific domain types or
39+
module implementations, either individually or in combination, providing
40+
enhanced flexibility and ease of use.
41+
([\#965](https://github.com/cosmos/ibc-rs/issues/965))
42+
43+
### FEATURES
44+
45+
- Restructure the mock module implementation and separate its codebase into a
46+
new crate named `ibc-testkit`
47+
([\#954](https://github.com/cosmos/ibc-rs/issues/953))
48+
- Provide `Into<String>` for all identifiers types.
49+
([\#974](https://github.com/cosmos/ibc-rs/pull/974))
50+
51+
### IMPROVEMENTS
52+
53+
- Re-export essential proto types from the underlying `ibc-*-*-types` crates,
54+
removing the necessity for a direct dependency on `ibc-proto` in projects
55+
integrating `ibc-rs` ([\#697](https://github.com/cosmos/ibc-rs/issues/697))
56+
- Rename `{submodule}.rs` with corresponding `{submodule}` directory to
57+
`{submodule}/mod.rs` ([\#771](https://github.com/cosmos/ibc-rs/issues/771))
58+
- Add From implementation for ICS26 enum types to make it simpler to construct
59+
the types. ([\#938](https://github.com/cosmos/ibc-rs/pull/938))
60+
- Reduce vector allocations in Commitment computation.
61+
([\#939](https://github.com/cosmos/ibc-rs/pull/939))
62+
- Support chain identifiers without the `{chain_name}-{revision_number}` pattern
63+
of Tendermint chains. ([\#940](https://github.com/cosmos/ibc-rs/issues/940)).
64+
- Remove redundant `String` creation in `validate_prefix_length`
65+
([\#943](https://github.com/cosmos/ibc-rs/issues/943)).
66+
- Remove redundant `#[test_log::test]` attributes in test modules
67+
([\#948](https://github.com/cosmos/ibc-rs/issues/948))
68+
- Remove the default value and implementation for `PortId`
69+
([\#951](https://github.com/cosmos/ibc-rs/issues/951))
70+
- Expose domain message types under the `ics04_channel` as public
71+
([\#952](https://github.com/cosmos/ibc-rs/issues/952))
72+
- Enhance dependency management with workspace inheritance
73+
([\#955](https://github.com/cosmos/ibc-rs/issues/955))
74+
- Simplify and refactor ICS-24 identifier validation logic.
75+
([\#961](https://github.com/cosmos/ibc-rs/issues/961))
76+
- Reduce heap allocation by using `str` instead of `String` places we convert
77+
domain event attributes to the ABCI event attributes
78+
([\#970](https://github.com/cosmos/ibc-rs/issues/970))
79+
- Expose various fields, types and functions in `ibc-rs` as public including:
80+
- `validate` and `execute` handler functions for all the IBC message types.
81+
- `TYPE_URL` constants.
82+
- Any private fields within the domain message types.
83+
- Any private fields within the Tendermint `ClientState` and `ConsensusState`
84+
([\#976](https://github.com/cosmos/ibc-rs/issues/976))
85+
386
## v0.47.0
487

588
*October 19, 2023*

Cargo.toml

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ exclude = [
3535
]
3636

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

6363
# ibc dependencies
64-
ibc = { version = "0.47.0", path = "./ibc", default-features = false }
65-
ibc-core = { version = "0.47.0", path = "./ibc-core", default-features = false }
66-
ibc-clients = { version = "0.47.0", path = "./ibc-clients", default-features = false }
67-
ibc-apps = { version = "0.47.0", path = "./ibc-apps", default-features = false }
68-
ibc-primitives = { version = "0.47.0", path = "./ibc-primitives", default-features = false }
69-
ibc-testkit = { version = "0.47.0", path = "./ibc-testkit" }
70-
ibc-derive = { version = "0.3.0", path = "./ibc-derive" }
64+
ibc = { version = "0.48.0", path = "./ibc", default-features = false }
65+
ibc-core = { version = "0.48.0", path = "./ibc-core", default-features = false }
66+
ibc-clients = { version = "0.48.0", path = "./ibc-clients", default-features = false }
67+
ibc-apps = { version = "0.48.0", path = "./ibc-apps", default-features = false }
68+
ibc-primitives = { version = "0.48.0", path = "./ibc-primitives", default-features = false }
69+
ibc-testkit = { version = "0.48.0", path = "./ibc-testkit" }
70+
ibc-derive = { version = "0.4.0", path = "./ibc-derive" }
7171

72-
ibc-core-client = { version = "0.47.0", path = "./ibc-core/ics02-client", default-features = false }
73-
ibc-core-connection = { version = "0.47.0", path = "./ibc-core/ics03-connection", default-features = false }
74-
ibc-core-channel = { version = "0.47.0", path = "./ibc-core/ics04-channel", default-features = false }
75-
ibc-core-host = { version = "0.47.0", path = "./ibc-core/ics24-host", default-features = false }
76-
ibc-core-handler = { version = "0.47.0", path = "./ibc-core/ics25-handler", default-features = false }
77-
ibc-core-router = { version = "0.47.0", path = "./ibc-core/ics26-routing", default-features = false }
78-
ibc-client-tendermint = { version = "0.47.0", path = "./ibc-clients/ics07-tendermint", default-features = false }
79-
ibc-app-transfer = { version = "0.47.0", path = "./ibc-apps/ics20-transfer", default-features = false }
72+
ibc-core-client = { version = "0.48.0", path = "./ibc-core/ics02-client", default-features = false }
73+
ibc-core-connection = { version = "0.48.0", path = "./ibc-core/ics03-connection", default-features = false }
74+
ibc-core-channel = { version = "0.48.0", path = "./ibc-core/ics04-channel", default-features = false }
75+
ibc-core-host = { version = "0.48.0", path = "./ibc-core/ics24-host", default-features = false }
76+
ibc-core-handler = { version = "0.48.0", path = "./ibc-core/ics25-handler", default-features = false }
77+
ibc-core-router = { version = "0.48.0", path = "./ibc-core/ics26-routing", default-features = false }
78+
ibc-client-tendermint = { version = "0.48.0", path = "./ibc-clients/ics07-tendermint", default-features = false }
79+
ibc-app-transfer = { version = "0.48.0", path = "./ibc-apps/ics20-transfer", default-features = false }
8080

81-
ibc-core-client-context = { version = "0.47.0", path = "./ibc-core/ics02-client/context", default-features = false }
82-
ibc-core-client-types = { version = "0.47.0", path = "./ibc-core/ics02-client/types", default-features = false }
83-
ibc-core-channel-types = { version = "0.47.0", path = "./ibc-core/ics04-channel/types", default-features = false }
84-
ibc-core-connection-types = { version = "0.47.0", path = "./ibc-core/ics03-connection/types", default-features = false }
85-
ibc-core-commitment-types = { version = "0.47.0", path = "./ibc-core/ics23-commitment/types", default-features = false }
86-
ibc-core-host-cosmos = { version = "0.47.0", path = "./ibc-core/ics24-host/cosmos", default-features = false }
87-
ibc-core-host-types = { version = "0.47.0", path = "./ibc-core/ics24-host/types", default-features = false }
88-
ibc-core-handler-types = { version = "0.47.0", path = "./ibc-core/ics25-handler/types", default-features = false }
89-
ibc-core-router-types = { version = "0.47.0", path = "./ibc-core/ics26-routing/types", default-features = false }
90-
ibc-client-tendermint-types = { version = "0.47.0", path = "./ibc-clients/ics07-tendermint/types", default-features = false }
91-
ibc-app-transfer-types = { version = "0.47.0", path = "./ibc-apps/ics20-transfer/types", default-features = false }
81+
ibc-core-client-context = { version = "0.48.0", path = "./ibc-core/ics02-client/context", default-features = false }
82+
ibc-core-client-types = { version = "0.48.0", path = "./ibc-core/ics02-client/types", default-features = false }
83+
ibc-core-channel-types = { version = "0.48.0", path = "./ibc-core/ics04-channel/types", default-features = false }
84+
ibc-core-connection-types = { version = "0.48.0", path = "./ibc-core/ics03-connection/types", default-features = false }
85+
ibc-core-commitment-types = { version = "0.48.0", path = "./ibc-core/ics23-commitment/types", default-features = false }
86+
ibc-core-host-cosmos = { version = "0.48.0", path = "./ibc-core/ics24-host/cosmos", default-features = false }
87+
ibc-core-host-types = { version = "0.48.0", path = "./ibc-core/ics24-host/types", default-features = false }
88+
ibc-core-handler-types = { version = "0.48.0", path = "./ibc-core/ics25-handler/types", default-features = false }
89+
ibc-core-router-types = { version = "0.48.0", path = "./ibc-core/ics26-routing/types", default-features = false }
90+
ibc-client-tendermint-types = { version = "0.48.0", path = "./ibc-clients/ics07-tendermint/types", default-features = false }
91+
ibc-app-transfer-types = { version = "0.48.0", path = "./ibc-apps/ics20-transfer/types", default-features = false }
9292

9393
ibc-proto = { version = "0.38.0", default-features = false }
9494
ics23 = { version = "0.11", default-features = false }

0 commit comments

Comments
 (0)