Skip to content

Latest commit

 

History

History
53 lines (39 loc) · 2.77 KB

publish-extension.md

File metadata and controls

53 lines (39 loc) · 2.77 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
  3. 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"
  4. Confirm the commits represent the features for the release
  5. Branch into a release branch named for the current date: git checkout -b release/yyyy-mm-dd
  6. 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 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. 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)

  1. Manually run smoke tests on the new features across:
  • mac os x
  • windows
  • vscode running against docker
  1. On a successful check, rebase merge the release branch into main
  2. Switch to main branch and pull the latest changes
  3. Git tag the version, g tag -a v0.x.x -m "v0.x.x" and push the tag git push --follow-tags
  4. Publish the language server npm package, cd ./server && npm publish
  5. Publish the coc extension, cd ./coc && npm publish --non-interactive
  6. Upload the vsix file to the microsoft marketplace: npx vsce publish -p $VSCE_TOKEN --packagePath client/hardhat-solidity-0.X.X.vsix
  7. Upload the vsix file to openvsx, npx ovsx publish client/hardhat-solidity-0.X.X.vsix -p $OVSX_TOKEN
  8. 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
  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