informalsystems / tendermint-rs

Client libraries for Tendermint/CometBFT in Rust!
Apache License 2.0
612 stars 225 forks source link

New v0.14 (pre-)release? #344

Closed tarcieri closed 4 years ago

tarcieri commented 4 years ago

We just landed some pretty substantial new functionality in Tendermint KMS: transaction signing using a YubiHSM2-backed account key:

https://github.com/iqlusioninc/tmkms/pull/78

In the process we've updated to tendermint-rs HEAD including the tendermint-rpc crate split, which is very nice for this application, since we can leave that crate out and with it all of the associated Tokio and other network dependencies (we have the KMS automatically submit signed transactions via RPC). We have it all running in production successfully 🎉

Additionally, we really want #322 which updates Signatory and RustCrypto dependencies.

I'd like to cut another alpha release of the KMS with this, but right now I'm depending on the tendermint and tendermint-rpc crates as a git-based dependency.

Would it be possible to cut a v0.14.0(-pre/alpha) release that incorporates all of the latest changes? I'd be happy to put together a PR which does the relevant prep work.

xla commented 4 years ago

From my understanding the big chunk for 0.14 is the ongoing light-client/node work. That said releasing multiple pre releases until then shouldn't interfere with that work.

@tarcieri Just out of curiosity, what are the issues you are facing with git dependencies over crates.io?

brapse commented 4 years ago

Since the light-client is new I don't think there is anyone depending on it just yet. Maybe it wouldn't be terrible to cut a release (pre or otherwise) sooner rather than later.

Would it be possible to make a release without the light-client bit?

liamsi commented 4 years ago

I'll cut a 0.14.0 release. IMO there is no need to wait here.

Would it be possible to make a release without the light-client bit?

It is a separate crate anyways but I can add: https://github.com/informalsystems/tendermint-rs/issues/317

xla commented 4 years ago

Ah we are talking about tendermint exclusively here. As tmkms also depends on the rpc crate now, we should cut a release for that as well. @brapse @ebuchman @Liamsi Should their versioning be in lockstep?

liamsi commented 4 years ago

Does it make sense to add deprecation notice for the current lite module in the changelog? As far as I know e.g. crypto.com uses it since quite a while now (I think they were even using some branch of mine as a basis for their fork? https://github.com/crypto-com/chain/issues/828). @yihuang @tomtau might have more insights here.

Maybe other projects started using it too? Can't harm to warn "early" (i.e. before we delete it) about this anyways.

liamsi commented 4 years ago

Should their versioning be in lockstep?

Not sure what best practices are but I'd assume it makes it easier to immediately see which crates kinda belong together. So I'd vote for yes, here.

tomtau commented 4 years ago

Does it make sense to add deprecation notice for the current lite module in the changelog? As far as I know e.g. crypto.com uses it since quite a while now (I think they were even using some branch of mine as a basis for their fork? crypto-com/chain#828). @yihuang @tomtau might have more insights here.

yes, we've been using a custom fork on the current public testnet and in development. I guess it'd be good to include a deprecation note in tendermint-rs changelog -- is the plan that the light client will be released as a separate crate?

liamsi commented 4 years ago

is the plan that the light client will be released as a separate crate?

Yes: the lite module will be removed. The light-client crate contains a redesigned light client (library) and light-node will contain a standalone light client to run on cli.

tarcieri commented 4 years ago

Just out of curiosity, what are the issues you are facing with git dependencies over crates.io?

@xla I'd like to publish a v0.8.0-alpha2 release of Tendermint KMS, but that's not possible when using dependencies sourced from git, as crates.io requires that the dependencies of all releases published there are also hosted on crates.io

As tmkms also depends on the rpc crate now, we should cut a release for that as well.

Yes please!

xla commented 4 years ago

@xla I'd like to publish a v0.8.0-alpha2 release of Tendermint KMS, but that's not possible when using dependencies sourced from git, as crates.io requires that the dependencies of all releases published there are also hosted on crates.io

Right, I remember now, thanks for the follow-up. Release is underway.

tarcieri commented 4 years ago

Woohoo, thanks so much!