Skip to content

Latest commit

 

History

History
70 lines (51 loc) · 3.1 KB

publish-extension.md

File metadata and controls

70 lines (51 loc) · 3.1 KB

Instructions on how to publish extension

To publish hardhat-solidity you need to do next steps:

  1. git fetch, Checkout out development, then ensure your branch is up to date git pull --ff-only
  2. Perform a clean install and build (will lose all uncommitted changes):
git clean -fdx .
npm install
npm run build
  1. 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"
  2. Confirm the commits represent the features for the release
  3. Branch into a release branch named for the current date: git checkout -b release/yyyy-mm-dd
  4. 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
  1. Update the changelog in ./client/CHANGELOG.md by adding a new entry for the new version based on Keep a Changelog
  2. 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.
  1. Push the release branch and open a pull request using the new changelog entry as the PR description

  2. Ensure .env file is populated with GA and Sentry secrets before packaging (see ./env.example)

  3. Generate a release candidate vsix file with npm run package, the vsix file should appear in the ./client folder with the new version number

  4. Manually run smoke tests on the new features across:

  • mac os x
  • windows
  • vscode running against docker
  1. Ensure that metrics are reported correctly in both Google Analytics and Sentry for the new version.
  2. On a successful check, rebase merge the release branch into main
  3. Switch to main branch and pull the latest changes
  4. Git tag the version, git tag -a v0.x.x -m "v0.x.x" and push the tag git push --follow-tags
  5. Publish the language server npm package, cd ./server && npm publish
  6. Publish the coc extension, cd ./coc && npm publish --non-interactive
  7. Upload the vsix file to the microsoft marketplace: npx vsce publish -p $VSCE_TOKEN --packagePath client/hardhat-solidity-0.X.X.vsix
  8. Upload the vsix file to openvsx, npx ovsx publish client/hardhat-solidity-0.X.X.vsix -p $OVSX_TOKEN
  9. Create a release on github off of the pushed tag
  • use the added changelog section as the body of the release
  • append the Nomic is Hiring section to the end of the release not:
---
> 💡 **The Nomic Foundation is hiring! Check [our open positions](https://www.nomic.foundation/jobs).**
---
  • upload the vsix file as an asset
  1. Rebase development onto main, and force push back to github
  2. 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