Skip to content

Commit 7cf3541

Browse files
soareschenromachu55a1n1mzabaluev
authored
Release ibc-rs v0.10.0 (#1712)
# v0.10.0 January 13th, 2021 This release notably updates the underlying CLI framework (`abscissa`) to version 0.6.0-beta.1, which now uses `clap` for parsing command line arguments. This substantially improves the UX of the CLI, by adding support for `--help` flags in subcommands and improving help and usage printouts. The `--version` option of the `create channel` subcommand has been renamed to `--channel-version`, with the old name still supported as an alias. Additionally, the `-h` short flag on many commands is now `-H` to avoid clashes with the clap-provided short flag for help. This release also improves the handling of account sequence mismatch errors, with a recovery mechanism to automatically retry or drop tx upon such errors. The relayer now also supports dynamic versions in channel open handshake (which is needed by Interchain Accounts), and enables full support for IBC v2. --- * Update package versions from v0.9.0 to v0.10.0 * Add changelog for #1656 * Bump `ibc-proto` version to 0.14.0 * Update guide wrt --help and --channel-version * Disambiguate between help and height flags by using `-H` for the latter * Update ibc-proto doc(html_root_url) * Remove outdated comment * Fix broken link in changelog * Rename application-handled -h CLI flags to -H (#1743) * Disambiguate between help and height flags by using `-H` for the latter * Enable clap-provided help flags on all subcommands Since all application-assigned short -h options have been renamed to -H, there is no need to suppress the -h flags provided by clap with the DisableHelpFlag setting. * Update changelog for #1743 * Remove a FIXME comment Resolved by e59bb13 Co-authored-by: Romain Ruetschi <[email protected]> * guide: Removed wording about missing -h/--help The -h flags have been freed for built-in clap use and are supported on all subcommands. * Fix link to packet filtering policy in config page * Release changelog for 0.10.0 * Update changelog summary Co-authored-by: Romain Ruetschi <[email protected]> Co-authored-by: Shoaib Ahmed <[email protected]> Co-authored-by: Mikhail Zabaluev <[email protected]>
1 parent 09a4b11 commit 7cf3541

Some content is hidden

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

46 files changed

+170
-57
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
- Improve spawning of supervisor worker tasks ([#1656](https://github.com/informalsystems/ibc-rs/issues/1656))
2+
- The `Supervisor` struct is removed.
3+
- Supervisor is now spawned using the `spawn_supervisor` function.
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
- Added a recovery mechanism to automatically retry or drop tx upon account
2-
sequence mismatch errors ([#1264](https://github.com/informalsystems/ibc-
3-
rs/issues/1264))
2+
sequence mismatch errors ([#1264](https://github.com/informalsystems/ibc-rs/issues/1264))

.changelog/v0.10.0/summary.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
*January 13th, 2021*
2+
3+
This release notably updates the underlying CLI framework (`abscissa`) to version 0.6.0-beta.1,
4+
which now uses `clap` for parsing command line arguments. This substantially improves the UX of the CLI,
5+
by adding support for `--help` flags in subcommands and improving help and usage printouts.
6+
7+
The `--version` option of the `create channel` subcommand has been renamed
8+
to `--channel-version`, with the old name still supported as an alias.
9+
Additionally, the `-h` short flag on many commands is now `-H` to avoid
10+
clashes with the clap-provided short flag for help.
11+
12+
This release also improves the handling of account sequence mismatch errors,
13+
with a recovery mechanism to automatically retry or drop tx upon such errors.
14+
15+
The relayer now also supports dynamic versions in channel open handshake (which is needed by Interchain Accounts), and enables full support for IBC v2.
16+

CHANGELOG.md

+96
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,101 @@
11
# CHANGELOG
22

3+
## v0.10.0
4+
*January 13th, 2021*
5+
6+
This release notably updates the underlying CLI framework (`abscissa`) to version 0.6.0-beta.1,
7+
which now uses `clap` for parsing command line arguments. This substantially improves the UX of the CLI,
8+
by adding support for `--help` flags in subcommands and improving help and usage printouts.
9+
10+
The `--version` option of the `create channel` subcommand has been renamed
11+
to `--channel-version`, with the old name still supported as an alias.
12+
Additionally, the `-h` short flag on many commands is now `-H` to avoid
13+
clashes with the clap-provided short flag for help.
14+
15+
This release also improves the handling of account sequence mismatch errors,
16+
with a recovery mechanism to automatically retry or drop tx upon such errors.
17+
18+
The relayer now also supports dynamic versions in channel open handshake (which is needed by Interchain Accounts), and enables full support for IBC v2.
19+
20+
### BREAKING CHANGES
21+
22+
- General
23+
- Update MSRV to Rust 1.57
24+
([#1660](https://github.com/informalsystems/ibc-rs/issues/1660))
25+
- Pin tendermint-rs dependencies to =0.23.2
26+
([#1665](https://github.com/informalsystems/ibc-rs/pull/1665))
27+
- [IBC Modules](modules)
28+
- Add the `frozen_height()` method to the `ClientState` trait (includes breaking changes to the Tendermint `ClientState` API).
29+
([#1618](https://github.com/informalsystems/ibc-rs/issues/1618))
30+
- Remove `Timestamp` API that depended on the `chrono` crate:
31+
([#1665](https://github.com/informalsystems/ibc-rs/pull/1665)):
32+
- `Timestamp::from_datetime`; use `From<tendermint::Time>`
33+
- `Timestamp::as_datetime`, superseded by `Timestamp::into_datetime`
34+
- [Relayer Library](relayer)
35+
- Improve spawning of supervisor worker tasks ([#1656](https://github.com/informalsystems/ibc-rs/issues/1656))
36+
- The `Supervisor` struct is removed.
37+
- Supervisor is now spawned using the `spawn_supervisor` function.
38+
- [Relayer CLI](relayer-cli)
39+
- Update to abscissa framework version 0.6.0-beta.1, adding support for
40+
`--help` flags in subcommands and improving help and usage printouts.
41+
The `--version` option of the `create channel` subcommand has been renamed
42+
to `--channel-version`, with the old name still supported as an alias.
43+
Additionally, the `-h` short flag on many commands is now `-H` to avoid
44+
clashes with the clap-provided short flag for help.
45+
([#1576](https://github.com/informalsystems/ibc-rs/pull/1576),
46+
[#1743](https://github.com/informalsystems/ibc-rs/pull/1743))
47+
48+
### BUG FIXES
49+
50+
- [IBC Modules](modules)
51+
- Delete packet commitment instead of acknowledgement in acknowledgePacket
52+
[#1573](https://github.com/informalsystems/ibc-rs/issues/1573)
53+
- Set the `counterparty_channel_id` correctly to fix ICS04 [`chanOpenAck` handler verification](https://github.com/informalsystems/ibc-rs/blob/master/modules/src/core/ics04_channel/handler/chan_open_ack.rs)
54+
([#1649](https://github.com/informalsystems/ibc-rs/issues/1649))
55+
- Add missing assertion for non-zero trust-level in Tendermint client initialization.
56+
([#1697](https://github.com/informalsystems/ibc-rs/issues/1697))
57+
- Fix conversion to Protocol Buffers of `ClientState`'s `frozen_height` field.
58+
([#1710](https://github.com/informalsystems/ibc-rs/issues/1710))
59+
- [Relayer Library](relayer)
60+
- Handle expired client errors in workers ([#1543](https://github.com/informalsystems/ibc-rs/issues/1543))
61+
- Perform `execute_schedule` after handling packet commands in packet worker ([#1715](https://github.com/informalsystems/ibc-rs/issues/1715))
62+
- Do not spawn detect misbehavior task if it is disabled in config [#1750](https://github.com/informalsystems/ibc-rs/issues/1750)
63+
64+
### FEATURES
65+
66+
- General
67+
- Extend CI test suite to include E2E tests using Gaia v6.0.0 [#1550](https://github.com/informalsystems/ibc-rs/issues/1550)
68+
- Added the `extra_wallets` parameter to `gm` to create additional funded wallets.
69+
- Added the possibility of JSON output to `gm` by setting the environment variable `OUTPUT=json`.
70+
- Added support for fee granters through config file
71+
([#1633](https://github.com/informalsystems/ibc-rs/issues/1633))
72+
- [IBC Modules](modules)
73+
- Implement proof verification for Tendermint client (ICS07).
74+
([#1583](https://github.com/informalsystems/ibc-rs/pull/1583))
75+
- [Relayer Library](relayer)
76+
- Added a recovery mechanism to automatically retry or drop tx upon account
77+
sequence mismatch errors ([#1264](https://github.com/informalsystems/ibc-rs/issues/1264))
78+
- Support dynamic versions in channel open handshake & enable full support for
79+
ibc-go v2 ([#1410](https://github.com/informalsystems/ibc-rs/issues/1410))
80+
- Allow custom proof-specs in chain config
81+
([#1561](https://github.com/informalsystems/ibc-rs/issues/1561))
82+
83+
### IMPROVEMENTS
84+
85+
- General
86+
- Update `CONTRIBUTING.md` for latest version of unclog
87+
([#1634](https://github.com/informalsystems/ibc-rs/issues/1634))
88+
- [IBC Modules](modules)
89+
- More conventional ad-hoc conversion methods on `Timestamp`
90+
([#1665](https://github.com/informalsystems/ibc-rs/pull/1665)):
91+
- `Timestamp::nanoseconds` replaces `Timestamp::as_nanoseconds`
92+
- `Timestamp::into_datetime` substitutes `Timestamp::as_datetime`
93+
- [Relayer CLI](relayer-cli)
94+
- Improve performance of standalone commands by starting the event monitor on-demand
95+
([#1063](https://github.com/informalsystems/ibc-rs/issues/1063))
96+
- Increase the default for `max_gas` from `300_000` to `400_000`
97+
([#1636](https://github.com/informalsystems/ibc-rs/pull/1636))
98+
399
## v0.9.0, the “Zamfir” release
4100
*November 23rd, 2021*
5101

Cargo.lock

+7-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

guide/README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# Hermes Guide
22

3-
Hermes is the name of the binary that comes packaged with
3+
Hermes is the name of the binary that comes packaged with
44
[IBC Relayer CLI](https://crates.io/crates/ibc-relayer-cli) crate.
55

66
This directory comprises a comprehensive guide to Hermes.
77
In order to build and view this guide you need to install [`mdBook`]
88
(https://github.com/rust-lang/mdBook).
99
mdBook is a utility to create modern online books from Markdown files.
1010

11-
This guide should be permanently deployed at its latest stable version at
11+
This guide should be permanently deployed at its latest stable version at
1212
[hermes.informal.systems](https://hermes.informal.systems).
1313

14-
Current version: `0.9.0`.
14+
Current version: `0.10.0`.
1515

1616
The version of this guide is aligned with the [versioning of the ibc crates](../README.md).
1717

@@ -64,7 +64,7 @@ http://localhost:3000
6464

6565
## Adding or editing new content to the guide
6666

67-
Please check the [mdBook documentation](https://rust-lang.github.io/mdBook/index.html) for additional information on how to add new content to the guide.
67+
Please check the [mdBook documentation](https://rust-lang.github.io/mdBook/index.html) for additional information on how to add new content to the guide.
6868

6969
Basically if you want to add new content to the guide, just add an entry to the `SUMMARY.md` Markdown file which is the TOC page. Then create a page for the entry you've added to the `SUMMARY.md` page. If you don't create the page, but save the `SUMMARY.md` file and build again, `mdBook` will create the page automatically for you.
7070

guide/src/SUMMARY.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Summary
22

3-
# Hermes (v0.9.0)
3+
# Hermes (v0.10.0)
44

55
---
66
- [Introduction](./index.md)
@@ -29,7 +29,7 @@
2929
- [Commands Reference](./commands/index.md)
3030
- [Global options and JSON output](./commands/global.md)
3131
- [Keys](./commands/keys/index.md)
32-
- [Config](./commands/config.md)
32+
- [Config](./commands/config.md)
3333
- [Path setup](./commands/path-setup/index.md)
3434
- [Clients](./commands/path-setup/clients.md)
3535
- [Connections](./commands/path-setup/connections.md)

guide/src/commands/global.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Hermes accepts global options which affect all commands.
44

55
```shell
6-
hermes 0.9.0
6+
hermes 0.10.0
77
Informal Systems <[email protected]>
88
Implementation of `hermes`, an IBC Relayer developed in Rust.
99

guide/src/commands/path-setup/channels.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ FLAGS:
2424
--port-a PORT-A identifier of the side `a` port for the new channel
2525
--port-b PORT-B identifier of the side `b` port for the new channel
2626
-o, --order ORDER the channel ordering, valid options 'unordered' (default) and 'ordered'
27-
-v, --version VERSION the version for the new channel
27+
-v, --channel-version VERSION the version for the new channel
2828
```
2929

3030
## Examples

guide/src/config.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ hermes [-c CONFIG_FILE] COMMAND
2525
The configuration file must have one `global` section, and one `chains` section for each chain.
2626

2727
> **Note:** As of 0.6.0, the Hermes configuration file is self-documented.
28-
> Please read the configuration file [`config.toml`](https://github.com/informalsystems/ibc-rs/blob/v0.9.0/config.toml)
28+
> Please read the configuration file [`config.toml`](https://github.com/informalsystems/ibc-rs/blob/v0.10.0/config.toml)
2929
> itself for the most up-to-date documentation of parameters.
3030
3131
By default, Hermes will relay on all channels available between all the configured chains.
@@ -36,7 +36,7 @@ For example, if there are only two chains configured, then Hermes will only rela
3636
i.e. the two chains will serve as a source for each other, and likewise as a destination for each other's relevant events.
3737
Hermes will ignore all events that pertain to chains which are unknown (ie. not present in config.toml).
3838

39-
To restrict relaying on specific channels, or uni-directionally, you can use [packet filtering policies](https://github.com/informalsystems/ibc-rs/blob/v0.9.0/config.toml#L156-L173).
39+
To restrict relaying on specific channels, or uni-directionally, you can use [packet filtering policies](https://github.com/informalsystems/ibc-rs/blob/v0.10.0/config.toml#L207-L224).
4040

4141
## Adding private keys
4242

guide/src/help.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,11 @@ FLAGS:
7474
--port-a PORT-A identifier of the side `a` port for the new channel
7575
--port-b PORT-B identifier of the side `b` port for the new channel
7676
-o, --order ORDER the channel ordering, valid options 'unordered' (default) and 'ordered'
77-
-v, --version VERSION the version for the new channel
77+
-v, --channel-version VERSION the version for the new channel
7878
```
7979

80-
The `help` command is a replacement of the familiar `-h`/ `--help` flag typical for CLI applications.
80+
Additionally, the `-h`/`--help` flags typical for CLI applications work on
81+
all commands.
8182

8283
## Parametrizing the log output level
8384

guide/src/index.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Hermes Guide (v0.9.0)
1+
# Hermes Guide (v0.10.0)
22

33

44
Hermes is a an open-source Rust implementation of a relayer for the
@@ -51,4 +51,3 @@ packets between two or more IBC-enabled chains.
5151
## Disclaimer
5252

5353
This project is undergoing heavy development, use at your own risk.
54-

guide/src/installation.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ There are two main approaches for obtaining Hermes:
1414

1515
Simply head to the GitHub [Releases][releases] page and download the latest
1616
version of Hermes binary matching your platform:
17-
- MacOS: `hermes-v0.9.0-x86_64-apple-darwin.tar.gz` (or .zip),
18-
- Linux: `hermes-v0.9.0-x86_64-unknown-linux-gnu.tar.gz` (or .zip).
17+
- MacOS: `hermes-v0.10.0-x86_64-apple-darwin.tar.gz` (or .zip),
18+
- Linux: `hermes-v0.10.0-x86_64-unknown-linux-gnu.tar.gz` (or .zip).
1919

2020
The step-by-step instruction below should carry you through the whole process:
21-
21+
2222
1. Make the directory where we'll place the binary:
2323
```shell
2424
mkdir -p $HOME/.hermes/bin
@@ -47,7 +47,7 @@ hermes version
4747
```
4848

4949
```
50-
hermes 0.9.0
50+
hermes 0.10.0
5151
```
5252

5353
## Install via Cargo
@@ -62,7 +62,7 @@ To install the latest release of Hermes, run the following command in a terminal
6262
cargo install ibc-relayer-cli --bin hermes --locked
6363
```
6464

65-
This will download and build the crate `ibc-relayer-cli`, and install the
65+
This will download and build the crate `ibc-relayer-cli`, and install the
6666
`hermes` binary in `$HOME/.cargo/bin`.
6767

6868
> If you have not installed Rust and Cargo via [rustup.rs](https://rustup.rs), you may need to
@@ -81,7 +81,7 @@ hermes version
8181
```
8282
8383
```
84-
hermes 0.9.0
84+
hermes 0.10.0
8585
```
8686

8787
## Build from source
@@ -103,10 +103,10 @@ cd ibc-rs
103103

104104
Go to the [ibc-rs releases](https://github.com/informalsystems/ibc-rs/releases) page to see what is the most recent release.
105105

106-
Then checkout the release, for example if the most recent release is `v0.9.0` then execute the command:
106+
Then checkout the release, for example if the most recent release is `v0.10.0` then execute the command:
107107

108108
```shell
109-
git checkout v0.9.0
109+
git checkout v0.10.0
110110
```
111111

112112
### Building with `cargo build`
@@ -151,7 +151,7 @@ If you run the `hermes` without any additional parameters you should see the usa
151151
```
152152

153153
```
154-
hermes 0.9.0
154+
hermes 0.10.0
155155
Informal Systems <[email protected]>
156156
157157
USAGE:

guide/src/rest-api.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ as the version of the REST server itself (under the `ibc-relayer-rest` key).
3939
[
4040
{
4141
"name": "ibc-relayer",
42-
"version": "0.9.0"
42+
"version": "0.10.0"
4343
},
4444
{
4545
"name": "ibc-relayer-rest",
@@ -175,4 +175,3 @@ of all the workers which are currently active.
175175
}
176176
}
177177
```
178-

guide/src/tutorials/local-chains/start.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ To this end, clone the `ibc-rs` repository and check out the current version:
88
```bash
99
git clone [email protected]:informalsystems/ibc-rs.git
1010
cd ibc-rs
11-
git checkout v0.9.0
11+
git checkout v0.10.0
1212
```
1313

1414
### Stop existing `gaiad` processes

0 commit comments

Comments
 (0)