Agoric / agoric-sdk

monorepo for the Agoric Javascript smart contract platform
Apache License 2.0
327 stars 206 forks source link

Update legacy gov submit-proposal CLI calls before legacy support is removed #9015

Open JimLarson opened 8 months ago

JimLarson commented 8 months ago

What is the Problem Being Solved?

In cosmos-sdk v0.46 (which will be released in agoric-upgrade-14), the CLI for submitting a governance proposal changed in a non-compatible way (#8871). We created a fix (agoric-labs/cosmos-sdk#378) so that the CLI would accept either the old or new syntax, but the mechanisms underlying this fix are marked "legacy", are deprecated, and will go away in a future release.

Similarly, a new set of protobufs and gRPC service was defined for the gov service (v1). The old interface (v1beta1) might be removed in the future.

Description of the Design

We should update all call sites and mechanisms (CLI, RPC) before the deprecated legacy support is removed.

An approximate listing of the call sites can be found via code search and it includes multiple Agoric repos, including documentation. It's not necessarily clear how the changes need to be tested.

Security Considerations

N/A

Scaling Considerations

N/A

Test Plan

Ideally, all call sites would be under CI tests. However, we also have documentation listing the old CLI syntax. Testing the changes will be different for each call site.

Upgrade Considerations

The new interface is supported in upgrade-14. Each call site can be migrated individually after that time.

JimLarson commented 7 months ago

Catalog of occurrences of submit-proposal in Agoric and agoric-labs repos, via Github search.

Agoric/ag0
        (obsolete)

Agoric/agoric-3-proposals
        packages/synthetic-chain/public/upgrade-test-scripts/run_prepare.sh
        packages/synthetic-chain/public/upgrade-test-scripts/run_prepare_zero.sh
        packages/synthetic-chain/public/upgrade-test-scripts/start_to_to.sh
        packages/synthetic-chain/src/lib/commonUpgradeHelpers.js
        packages/synthetic-chain/src/lib/core-eval.ts
        proposals/49:smart-wallet-nft/upgrade-wf.test.js
        proposals/53:kread-start/mn2-start.test.js
        proposals/55:statom-vaults/add-collateral.test.js
        proposals/64:crabble-start/test-crabble-start.js

Agoric/agoric-sdk
        *golang/cosmos/x/swingset/client/cli/tx.go
        *golang/cosmos/x/vbank/README.md
        packages/deploy-script-support/src/writeCoreProposal.js
        packages/cosmic-swingset/Makefile
        packages/inter-protocol/Makefile
        packages/vats/core/chain-behaviors.js
        scripts/gen-upgrade-proposal.sh

Agoric/agoric-sdk-harvest-weevil (obsolete?)
        *golang/cosmos/x/vbank/README.md
        packages/deploy-script-support/src/writeCoreProposal.js
        packages/inter-protocol/Makefile
        packages/inter-protocol/Makefile
        packages/vats/core/chain-behaviors.js

Agoric/dapp-agoric-basics
        *CONTRIBUTING.md
        contract/Makefile
        contract/scripts/build-contract-deployer.js
        contract/scripts/propose-start-contract.sh

Agoric/dapp-offer-up
        contract/Makefile
        *contract/scripts/build-contract-deployer.js
        contract/scripts/propose-start-contract.sh

Agoric/docker-upgrade-test
        upgrade-test-scripts/start_ag0.sh
        upgrade-test-scripts/start_to_to.sh

Agoric/documentation
        *main/guides/agoric-cli/agd-query-tx.md
        *main/guides/coreeval/local-testnet.md
        *main/guides/gettin-started/README.md

Agoric/token-admin-tools
        commands.sh (stale?)

Agoric/instagoric-private
        *mainfork.md

Agoric/upgrade-test
        propose.sh

agoric-labs/ag-power-tools
        contract/Makefile
        contract/scripts/propose-start-contract.sh

agoric-labs/cosmos-sdk
        N/A

agoric-labs/dapp-swaparoo
        contract/Makefile
        contract/scripts/propose-start-contract.sh

agoric-labs/dapp-mud
        contract/scripts/reload.sh

agoric-labs/ibc-go
        N/A