penumbra-zone / web

Apache License 2.0
12 stars 15 forks source link

Improving deployment cases #348

Closed grod220 closed 3 months ago

grod220 commented 8 months ago

The current state

Impact

This leaves us in a bit of a weird place for a few reasons:

Possible solutions

turbocrime commented 8 months ago

chainParams provides testnet version to client, yeah? can we package.json depend on two buf registry package versions? corresponding to last tagged release / next tagged candidate, and condition on chain version reported by endpoint.

endpoint is on the viewprotocolservice - can we be confident in success querying this endpoint? connectrpc provides a convenient way to one-off a client with a single methodtype as of last release. maybe we should have an truncated view service definition for constructing a 'test client' for things like grabbing chain version and also testing a user-configured rpc endpoint

i don't think we can do anything about extension review process - we have to release early and extensions have to anticipate the possibility of encountering a few chain versions.

hdevalence commented 8 months ago

No, the testnet version is not included in the chain parameters. Also there have been breaking proto format changes that will wreck everything.

However, the important context is that this is the last set of breaking changes to the protos we intend to make before mainnet. So my inclination is that it may be simplest to just bite the bullet on breaking changes for a week where the frontend site doesn't work with the current testnet, then going forward we'll have an extension that will work with both testnet and testnet-preview (even if they have different chain logic).

After the current set of proto changes, the extension should continue to work with new testnets without re-releasing, because we will have stabilized the Penumbra client protocol. From that point on, the web story should be simpler, because it will only be about managing breaking changes between the frontend site and the extension (until such time as we can stabilize that interface, hopefully before mainnet).