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
, optionally 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 package version in
./client/package.json
- The language server package version in
./server/package.json
- The coc extension package version in
./coc/package.json
- Its
@nomicfoundation/solidity-language-server
dependency version.
- Its
- The client package version in
-
Update the changelog in
./client/CHANGELOG.md
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 against
main
using the new changelog entry as the PR description -
Ensure .env file is populated with GA and Sentry secrets before packaging (see
./env.example
) -
Generate a release candidate vsix file with
npm run package
, the vsix file should appear in the./client
folder with the new version number -
Manually run smoke tests on the new features across all supported platforms, using contracts from https://github.com/NomicFoundation/smoke-tests-vscode:
- mac os x
- windows
- linux (vscode running against docker)
-
On a successful check,
rebase merge
the PR intomain
branch. -
Switch to main branch and pull the latest changes
-
Git tag the version,
git 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.
- append the Nomic is Hiring section to the end of the release note:
--- > 💡 **The Nomic Foundation is hiring! Check [our open positions](https://www.nomic.foundation/jobs).** ---
-
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
- link to the release entry on github (i.e.
-
After 24 hours, to make sure users had time to update to the new release, ensure that metrics are reported correctly to:
- Google Analytics
- Sentry