Skip to content

Latest commit

 

History

History
165 lines (126 loc) · 4.11 KB

MAINTAINERS.md

File metadata and controls

165 lines (126 loc) · 4.11 KB

Maintainer Hints

Review the next release label for additional tasks particular to this release.

# Create a release branch.
now=`date -u +%Y%m%dT%H%M%S`
git checkout -b release-$now

To generate a new final release, and CHANGELOG.md files (use --conventional-prerelease instead of --conventional-graduate if you just want to generate a dev release):

# Create the final release CHANGELOGs.
yarn lerna version --no-push --conventional-graduate
prior=$(git tag -l | sed -ne 's!^@agoric/sdk@\([0-9]*\).*!\1!p' | sort -n | tail -1)
SDKVER=$(( prior + 1 ))
git tag @agoric/sdk@$SDKVER
# Push the branch.
git push -u origin release-$now
# Tell which packages have actual news.
scripts/have-news HEAD^ > have-news.md

Create a release PR, pasting have-news.md into the body. Then build the SDK:

# Build all package generated files.
yarn install
yarn build

Once tests pass, you can publish to NPM with the following:

# Publish to NPM. NOTE: You may have to repeat this several times if there are failures.
yarn lerna publish from-package

Merge the release PR into master. DO NOT REBASE OR SQUASH OR YOU WILL LOSE REFERENCES TO YOUR TAGS.

# Publish the released package tags.
./scripts/get-released-tags git push origin

If you want to update an NPM dist-tag for the current checked-out Agoric SDK's packages (to enable agoric install <TAG>), use:

# Use "beta" for <TAG> for example.
./scripts/npm-dist-tag.sh lerna add <TAG>

To make validators' lives easier, create a Git tag for the chain-id:

CHAIN_ID=agoricstage-27 # Change this as necessary
git tag -s -m "release $CHAIN_ID" $CHAIN_ID @agoric/sdk@$SDKVER^{}
git push origin $CHAIN_ID
./scripts/docker-tag.sh $SDKVER $CHAIN_ID

More subtlety

To get help for the command-line options that will affect these commands, use:

yarn lerna version --help
yarn lerna publish --help

Useful testing commands are:

yarn lerna version --conventional-prerelease --no-git-tag-version

Syncing Endo dependency versions

Assuming that the most recent release of the Endo repository has been checked out in your home directory:

ENDO=~/endo

From origin/master, begin a branch for syncing Endo.

NOW=`date -u +%Y-%m-%d-%H-%M-%S`
git checkout -b "$USER-sync-endo-$NOW" origin/master

Use a helper script from the Endo repository to update the dependency versions in all packages in Agoric SDK.

"$ENDO/scripts/sync-versions.sh" "$ENDO"
git add -u
git commit -m 'chore: Sync Endo versions'

In patches, there may be patch files for the previous versions of @endo/* or ses packages. Each of these patches will need to either be deleted or renamed to reflect the new version number or deleted, depending on whether the patch was incorporated in the latest release. Create a commit for each of these changes like chore: Updated patch version for ses-ava 0.2.33 or chore: Remove patch version for ses 0.15.22

This command will tell you the version number for every package published from Endo:

"$ENDO/scripts/get-versions.sh" "$ENDO"

Update yarn.lock.

yarn
git add yarn.lock
git commit -m 'chore: Update yarn.lock'

It is safe to assume that any change to Endo will invalidate assumptions about guest application meters. Increment the meter type in packages/xsnap/api.js.

export const METER_TYPE = 'xs-meter-0';

Be sure to also update test/test-xs-perf.js with the new meter version.

Changing anything in Endo usually frustrates the SwingSet kernel hashes, and if Endo changes nothing, bumping the meter version certainly will, and so predictably frustrates the kernel hash golden test. Update the test snapshots.

cd packages/SwingSet
yarn test test/test-xsnap-store.js --update-snapshots
git add test/snapshots/test-xsnap-store.*
git commit -m 'chore(swingset-vat): Update xsnap store test snapshots'
cd ../..
cd packages/xsnap
git add api.js
git commit -am 'chore: Bump xsnap meter type'
cd ../..

Push this branch and create a pull request.

git push origin "$USER-sync-endo-$NOW"