To publish hardhat-solidity
you need to do next steps:
git fetch
, Checkout outdevelopment
, then ensure your branch is up to dategit pull --ff-only
- Perform a clean install and build (will lose all uncommitted changes)
git clean -fdx .
,npm install
,npm run build
- Run a full check, stopping on failure:
npm run fullcheck
, you can check that each commit meets our build requirements with:git rebase main --exec "npm install && npm run fullcheck"
- Confirm the commits represent the features for the release
- Branch into a release branch named for the current date:
git checkout -b release/yyyy-mm-dd
- Update the version based on semver, ensure it is updated in:
- the client
./client/package.json
- the language server package.json
./server/package.json
- the coc extension package.json, both its version and its dep on the language server, at
./coc/package.json
- Update the changelog by adding a new entry for the new version based on Keep a Changelog
- Commit the package version and changelog change as a version bump commit:
chore: bump version to v0.x.x
Update the package version and changelog for the `0.x.x - yyyy-mm-dd`
release.
- Push the release branch and open a pull request using the new changelog entry as the PR description
- Generate a release candidate vsix file with
npm run package
, the vsix file should appear in the./client
folder with the new version number
NOTE: ensure .env file is populated with GA and Sentry secrets before packaging (see
./env.example
)
- Manually run smoke tests on the new features across:
- mac os x
- windows
- vscode running against docker
- On a successful check,
rebase merge
the release branch into main - Switch to main branch and pull the latest changes
- Git tag the version,
g tag -a v0.x.x -m "v0.x.x"
and push the taggit push --follow-tags
- Publish the language server npm package,
cd ./server && npm publish
- Publish the coc extension,
cd ./coc && npm publish --non-interactive
- Upload the vsix file to the microsoft marketplace:
npx vsce publish -p $VSCE_TOKEN --packagePath client/hardhat-solidity-0.X.X.vsix
- Upload the vsix file to openvsx,
npx ovsx publish client/hardhat-solidity-0.X.X.vsix -p $OVSX_TOKEN
- Create a release on github off of the pushed tag
- use the added changelog section as the body of the release
- upload the vsix file as an asset
- Rebase
development
ontomain
, and force push back to github - Update the discord announcements channel
- link to the release entry on github (i.e.
https://github.com/NomicFoundation/hardhat-vscode/releases/tag/v0.x.x
) - give a few sentences of description of why users should be excited about this release