Skip to content

Commit

Permalink
Release ibc-rs v0.10.0 (#1712)
Browse files Browse the repository at this point in the history
# 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 <romain@informal.systems>

* 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 <romain@informal.systems>
Co-authored-by: Shoaib Ahmed <sufialhussaini@gmail.com>
Co-authored-by: Mikhail Zabaluev <mikhail@informal.systems>
  • Loading branch information
4 people committed Jan 13, 2022
1 parent 09a4b11 commit 7cf3541
Show file tree
Hide file tree
Showing 46 changed files with 170 additions and 57 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Improve spawning of supervisor worker tasks ([#1656](https://github.com/informalsystems/ibc-rs/issues/1656))
- The `Supervisor` struct is removed.
- Supervisor is now spawned using the `spawn_supervisor` function.
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
- Added a recovery mechanism to automatically retry or drop tx upon account
sequence mismatch errors ([#1264](https://github.com/informalsystems/ibc-
rs/issues/1264))
sequence mismatch errors ([#1264](https://github.com/informalsystems/ibc-rs/issues/1264))
File renamed without changes.
16 changes: 16 additions & 0 deletions .changelog/v0.10.0/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
*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.

96 changes: 96 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,101 @@
# CHANGELOG

## 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.

### BREAKING CHANGES

- General
- Update MSRV to Rust 1.57
([#1660](https://github.com/informalsystems/ibc-rs/issues/1660))
- Pin tendermint-rs dependencies to =0.23.2
([#1665](https://github.com/informalsystems/ibc-rs/pull/1665))
- [IBC Modules](modules)
- Add the `frozen_height()` method to the `ClientState` trait (includes breaking changes to the Tendermint `ClientState` API).
([#1618](https://github.com/informalsystems/ibc-rs/issues/1618))
- Remove `Timestamp` API that depended on the `chrono` crate:
([#1665](https://github.com/informalsystems/ibc-rs/pull/1665)):
- `Timestamp::from_datetime`; use `From<tendermint::Time>`
- `Timestamp::as_datetime`, superseded by `Timestamp::into_datetime`
- [Relayer Library](relayer)
- Improve spawning of supervisor worker tasks ([#1656](https://github.com/informalsystems/ibc-rs/issues/1656))
- The `Supervisor` struct is removed.
- Supervisor is now spawned using the `spawn_supervisor` function.
- [Relayer CLI](relayer-cli)
- Update to abscissa framework version 0.6.0-beta.1, 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.
([#1576](https://github.com/informalsystems/ibc-rs/pull/1576),
[#1743](https://github.com/informalsystems/ibc-rs/pull/1743))

### BUG FIXES

- [IBC Modules](modules)
- Delete packet commitment instead of acknowledgement in acknowledgePacket
[#1573](https://github.com/informalsystems/ibc-rs/issues/1573)
- 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)
([#1649](https://github.com/informalsystems/ibc-rs/issues/1649))
- Add missing assertion for non-zero trust-level in Tendermint client initialization.
([#1697](https://github.com/informalsystems/ibc-rs/issues/1697))
- Fix conversion to Protocol Buffers of `ClientState`'s `frozen_height` field.
([#1710](https://github.com/informalsystems/ibc-rs/issues/1710))
- [Relayer Library](relayer)
- Handle expired client errors in workers ([#1543](https://github.com/informalsystems/ibc-rs/issues/1543))
- Perform `execute_schedule` after handling packet commands in packet worker ([#1715](https://github.com/informalsystems/ibc-rs/issues/1715))
- Do not spawn detect misbehavior task if it is disabled in config [#1750](https://github.com/informalsystems/ibc-rs/issues/1750)

### FEATURES

- General
- Extend CI test suite to include E2E tests using Gaia v6.0.0 [#1550](https://github.com/informalsystems/ibc-rs/issues/1550)
- Added the `extra_wallets` parameter to `gm` to create additional funded wallets.
- Added the possibility of JSON output to `gm` by setting the environment variable `OUTPUT=json`.
- Added support for fee granters through config file
([#1633](https://github.com/informalsystems/ibc-rs/issues/1633))
- [IBC Modules](modules)
- Implement proof verification for Tendermint client (ICS07).
([#1583](https://github.com/informalsystems/ibc-rs/pull/1583))
- [Relayer Library](relayer)
- Added a recovery mechanism to automatically retry or drop tx upon account
sequence mismatch errors ([#1264](https://github.com/informalsystems/ibc-rs/issues/1264))
- Support dynamic versions in channel open handshake & enable full support for
ibc-go v2 ([#1410](https://github.com/informalsystems/ibc-rs/issues/1410))
- Allow custom proof-specs in chain config
([#1561](https://github.com/informalsystems/ibc-rs/issues/1561))

### IMPROVEMENTS

- General
- Update `CONTRIBUTING.md` for latest version of unclog
([#1634](https://github.com/informalsystems/ibc-rs/issues/1634))
- [IBC Modules](modules)
- More conventional ad-hoc conversion methods on `Timestamp`
([#1665](https://github.com/informalsystems/ibc-rs/pull/1665)):
- `Timestamp::nanoseconds` replaces `Timestamp::as_nanoseconds`
- `Timestamp::into_datetime` substitutes `Timestamp::as_datetime`
- [Relayer CLI](relayer-cli)
- Improve performance of standalone commands by starting the event monitor on-demand
([#1063](https://github.com/informalsystems/ibc-rs/issues/1063))
- Increase the default for `max_gas` from `300_000` to `400_000`
([#1636](https://github.com/informalsystems/ibc-rs/pull/1636))

## v0.9.0, the “Zamfir” release
*November 23rd, 2021*

Expand Down
14 changes: 7 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions guide/README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# Hermes Guide

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

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

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

Current version: `0.9.0`.
Current version: `0.10.0`.

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

Expand Down Expand Up @@ -64,7 +64,7 @@ http://localhost:3000

## Adding or editing new content to the guide

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.
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.

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.

Expand Down
4 changes: 2 additions & 2 deletions guide/src/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Summary

# Hermes (v0.9.0)
# Hermes (v0.10.0)

---
- [Introduction](./index.md)
Expand Down Expand Up @@ -29,7 +29,7 @@
- [Commands Reference](./commands/index.md)
- [Global options and JSON output](./commands/global.md)
- [Keys](./commands/keys/index.md)
- [Config](./commands/config.md)
- [Config](./commands/config.md)
- [Path setup](./commands/path-setup/index.md)
- [Clients](./commands/path-setup/clients.md)
- [Connections](./commands/path-setup/connections.md)
Expand Down
2 changes: 1 addition & 1 deletion guide/src/commands/global.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Hermes accepts global options which affect all commands.

```shell
hermes 0.9.0
hermes 0.10.0
Informal Systems <hello@informal.systems>
Implementation of `hermes`, an IBC Relayer developed in Rust.

Expand Down
2 changes: 1 addition & 1 deletion guide/src/commands/path-setup/channels.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ FLAGS:
--port-a PORT-A identifier of the side `a` port for the new channel
--port-b PORT-B identifier of the side `b` port for the new channel
-o, --order ORDER the channel ordering, valid options 'unordered' (default) and 'ordered'
-v, --version VERSION the version for the new channel
-v, --channel-version VERSION the version for the new channel
```

## Examples
Expand Down
4 changes: 2 additions & 2 deletions guide/src/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ hermes [-c CONFIG_FILE] COMMAND
The configuration file must have one `global` section, and one `chains` section for each chain.

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

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).
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).

## Adding private keys

Expand Down
5 changes: 3 additions & 2 deletions guide/src/help.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,11 @@ FLAGS:
--port-a PORT-A identifier of the side `a` port for the new channel
--port-b PORT-B identifier of the side `b` port for the new channel
-o, --order ORDER the channel ordering, valid options 'unordered' (default) and 'ordered'
-v, --version VERSION the version for the new channel
-v, --channel-version VERSION the version for the new channel
```

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

## Parametrizing the log output level

Expand Down
3 changes: 1 addition & 2 deletions guide/src/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Hermes Guide (v0.9.0)
# Hermes Guide (v0.10.0)


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

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

18 changes: 9 additions & 9 deletions guide/src/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ There are two main approaches for obtaining Hermes:

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

The step-by-step instruction below should carry you through the whole process:

1. Make the directory where we'll place the binary:
```shell
mkdir -p $HOME/.hermes/bin
Expand Down Expand Up @@ -47,7 +47,7 @@ hermes version
```
```
hermes 0.9.0
hermes 0.10.0
```
## Install via Cargo
Expand All @@ -62,7 +62,7 @@ To install the latest release of Hermes, run the following command in a terminal
cargo install ibc-relayer-cli --bin hermes --locked
```
This will download and build the crate `ibc-relayer-cli`, and install the
This will download and build the crate `ibc-relayer-cli`, and install the
`hermes` binary in `$HOME/.cargo/bin`.
> If you have not installed Rust and Cargo via [rustup.rs](https://rustup.rs), you may need to
Expand All @@ -81,7 +81,7 @@ hermes version
```
```
hermes 0.9.0
hermes 0.10.0
```
## Build from source
Expand All @@ -103,10 +103,10 @@ cd ibc-rs
Go to the [ibc-rs releases](https://github.com/informalsystems/ibc-rs/releases) page to see what is the most recent release.
Then checkout the release, for example if the most recent release is `v0.9.0` then execute the command:
Then checkout the release, for example if the most recent release is `v0.10.0` then execute the command:
```shell
git checkout v0.9.0
git checkout v0.10.0
```
### Building with `cargo build`
Expand Down Expand Up @@ -151,7 +151,7 @@ If you run the `hermes` without any additional parameters you should see the usa
```
```
hermes 0.9.0
hermes 0.10.0
Informal Systems <hello@informal.systems>
USAGE:
Expand Down
3 changes: 1 addition & 2 deletions guide/src/rest-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ as the version of the REST server itself (under the `ibc-relayer-rest` key).
[
{
"name": "ibc-relayer",
"version": "0.9.0"
"version": "0.10.0"
},
{
"name": "ibc-relayer-rest",
Expand Down Expand Up @@ -175,4 +175,3 @@ of all the workers which are currently active.
}
}
```

2 changes: 1 addition & 1 deletion guide/src/tutorials/local-chains/start.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ To this end, clone the `ibc-rs` repository and check out the current version:
```bash
git clone git@github.com:informalsystems/ibc-rs.git
cd ibc-rs
git checkout v0.9.0
git checkout v0.10.0
```

### Stop existing `gaiad` processes
Expand Down
Loading

0 comments on commit 7cf3541

Please sign in to comment.