You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore(scripts): add base release initializer (#11143)
closes: #11142
## Description
Adds an `init-release.sh` script to automate the mundane, repetitive parts of release initialization. Note that this only makes the necessary changes and other need-based changes go case-by-case (and manually) (for example, release with variants).
Currently, it does the following tasks:
- updates handler name in `app.go`
- updates handler name, upgrade names in `upgrade.go`
- renames `n:upgrade-next` to `a:upgrade-<release-number>`
- updates the README in `a:upgrade-<release-number>`
In the future, I will keep automating other bits and pieces of release process. However, next on my docket is to update this script to incorporate variants (at least until we get rid of them altogether).
### Security Considerations
None
### Scaling Considerations
None
### Documentation Considerations
~~Will add to MAINTAINERS.md in a follow up.~~
Updated MAINTAINERS.md
### Testing Considerations
None for the sdk codebase. But for PR verification, can run it locally on master using `./init-release.sh 19` and it will do the needful.
### Upgrade Considerations
None, this is a helper script for release process.
Copy file name to clipboardExpand all lines: MAINTAINERS.md
+16-13Lines changed: 16 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,8 +29,10 @@ The Release Owner and other appropriate stakeholders must agree on:
29
29
30
30
-_**base branch**_: This should be `master`, but might need to vary for a patch release.
31
31
32
+
-_**release number**_: The number associated with the current release (example: `8` for `agoric-upgrade-8`).
33
+
32
34
-_**release label**_: This is used for the git tags, and is currently expected to follow a
33
-
sequential pattern (example: `agoric-upgrade-8`).
35
+
sequential pattern. It ends with the _**release number**_. (example: `agoric-upgrade-8`).
34
36
The mainnet release label is preceded by release candidates numbered from zero
35
37
(example: `agoric-upgrade-8-rc0`), and shares its commit with the final release candidate.
36
38
@@ -46,18 +48,19 @@ The Release Owner and other appropriate stakeholders must agree on:
46
48
47
49
-[ ] When a new release is planned, create a new branch from the [_**base branch**_](#assign-release-parameters) (`master`) with a name like `dev-$releaseShortLabel` (example: `dev-upgrade-8`). This can be done from the command line or the [GitHub Branches UI](https://github.com/Agoric/agoric-sdk/branches).
48
50
-[ ] Initialize the new branch for the planned upgrade:
49
-
-[ ] In **golang/cosmos/app/upgrade.go**
50
-
-[ ] Update the `upgradeNamesOfThisVersion` constant to list all the [_**upgrade name**_](#assign-release-parameters) used by this release.
51
-
-[ ] Update the `isPrimaryUpgradeName` function to reflect the updated [_**upgrade name**_](#assign-release-parameters) list.
52
-
-[ ] Rename the upgrade handler function to match the release, example: `upgrade8Handler`.
53
-
-[ ] Verify that the upgrade handler function has no logic specific to the previous upgrade (e.g., core proposals).
54
-
-[ ] In **golang/cosmos/app/app.go**, make sure that the call to `SetUpgradeHandler` uses the renamed upgrade handler function above.
55
-
-[ ] Verify that **a3p-integration/package.json** has an object-valued `agoricSyntheticChain` property with `fromTag` set to the [agoric-3-proposals Docker images](https://github.com/Agoric/agoric-3-proposals/pkgs/container/agoric-3-proposals) tag associated with the previous release
56
-
(example: `use-upgrade-7`) or latest core-eval passed on chain (example: `use-vaults-auction`).
57
-
-[ ] Ensure that the first subdirectory in **a3p-integration/proposals** has the following characteristics. This is commonly created by renaming the `n:upgrade-next` directory after verifying no other proposals exist before that, and updating the **package.json** file in it.
58
-
- named like "$prefix:[_**release short label**_](#assign-release-parameters)" per [agoric-3-proposals: Naming](https://github.com/Agoric/agoric-3-proposals#naming) (conventionally using "a" for the unreleased $prefix, e.g. `a:upgrade-8`).
59
-
- containing a **package.json** having an object-valued `agoricProposal` property with `sdkImageTag` set to "unreleased" and `planName` set to the [_**upgrade name**_](#assign-release-parameters)
60
-
- containing other files appropriate for the upgrade per [agoric-3-proposals: Files](https://github.com/Agoric/agoric-3-proposals#files)
51
+
-[ ] Run **`scripts/init-release.sh $releaseNumber`** to make base changes for the new release. Verify and make need-based changes accordingly.
52
+
-[ ] In **golang/cosmos/app/upgrade.go**
53
+
-[ ] Update/verify the `upgradeNamesOfThisVersion` constant to list all the [_**upgrade name**_](#assign-release-parameters) used by this release.
54
+
-[ ] Update/verify the `isPrimaryUpgradeName` function to reflect the updated [_**upgrade name**_](#assign-release-parameters) list.
55
+
-[ ] Rename/verify the upgrade handler function to match the release, example: `upgrade8Handler`.
56
+
-[ ] Verify that the upgrade handler function has no logic specific to the previous upgrade (e.g., core proposals).
57
+
-[ ] In **golang/cosmos/app/app.go**, make sure that the call to `SetUpgradeHandler` uses the renamed upgrade handler function above.
58
+
-[ ] Verify that **a3p-integration/package.json** has an object-valued `agoricSyntheticChain` property with `fromTag` set to the [agoric-3-proposals Docker images](https://github.com/Agoric/agoric-3-proposals/pkgs/container/agoric-3-proposals) tag associated with the previous release
59
+
(example: `use-upgrade-7`) or latest core-eval passed on chain (example: `use-vaults-auction`).
60
+
-[ ] Ensure that the first subdirectory in **a3p-integration/proposals** has the following characteristics. This is commonly created by renaming the `n:upgrade-next` directory after verifying no other proposals exist before that, and updating the **package.json** file in it. The `init-release.sh` script takes care of renaming the directory so verify the new proposal directory.
61
+
- named like "$prefix:[_**release short label**_](#assign-release-parameters)" per [agoric-3-proposals: Naming](https://github.com/Agoric/agoric-3-proposals#naming) (conventionally using "a" for the unreleased $prefix, e.g. `a:upgrade-8`).
62
+
- containing a **package.json** having an object-valued `agoricProposal` property with `sdkImageTag` set to "unreleased" and `planName` set to the [_**upgrade name**_](#assign-release-parameters)
63
+
- containing other files appropriate for the upgrade per [agoric-3-proposals: Files](https://github.com/Agoric/agoric-3-proposals#files)
61
64
62
65
For example, see the [upgrade-17 PR](https://github.com/Agoric/agoric-sdk/pull/10088).
0 commit comments