Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VM v5 Release Preparation and Process #907

Closed
39 tasks done
holgerd77 opened this issue Oct 8, 2020 · 1 comment
Closed
39 tasks done

VM v5 Release Preparation and Process #907

holgerd77 opened this issue Oct 8, 2020 · 1 comment

Comments

@holgerd77
Copy link
Member

holgerd77 commented Oct 8, 2020

Follow-up issue on #681, will close there since issue is over-used and gotten clustered over time, still valuable reference though.

We are closing in on the release of VM v5 and related libraries into the @ethereumjs/[LIBRARY_NAME] namespace with several major releases. This issue is to keep track on the last to be applied changes and follow up on the process.

Procedure

Suggested procedure is to do a beta release series mid or end next week (CW42), then collect feedback and either follow up with a second beta - eventually RCs (to be decided on the nature of the feedback received) and target the final releases for two weeks later (CW44).

  • Beta Releases for CW42 (Oct 12-18)
  • Final Releases for CW44 (Oct 26 - Nov 1)

Remaining TODOs

Releases

Process Checklist

  1. Work down package dependency graph on releases, start with Common
  2. Update CHANGELOG on completeness adding missing PRs merged since latest release date
  3. Bump version in package.json, bump monorepo versions of all dependencies and devDependencies to released versions, on final releases re-introduce caret ^ dependency range!
  4. Update the respective README from package folder to match to be released version
  5. Rebuild documentation
  6. Run linting
  7. Check diff
  8. Commit everything
  9. Take a breath. 🌿 🌻 🐹
  10. Go to 0., repeat for all packages

=> Push. Review. Merge.

  1. Work down package dependency graph on releases, start with Common
  2. Build locally, one final test run, check package contents with npm pack
  3. Release from package folders manually with npm publish [--tag beta] (latest tag replacement: on non-final releases (beta, rc,...), exception: first round of scoped package releases)
  4. Check everything on the respective npm package site
  5. Add release on GitHub:
  • Tag e.g. @ethereumjs/common@2.0.0-beta.1 towards master
  • Title e.g. @ethereumjs/common v2.0.0-beta.1
  • CHANGELOG description from the raw CHANGELOG.md, add beta header
  • Mark as pre-release!!!
  1. Take a breath. 🌿 🌻 🐹
  2. Go to 0., repeat for all packages

Release Checklist

Will take the current npm packages as main links.

  • VM ethereumjs-vm v4.2.0 -> @ethereumjs/vm v5.0.0
    • v5.0.0-beta.1 Release
    • v5.0.0-beta.2 Release
    • v5.0.0-rc.1 Release
    • v5.0.0 Release
  • Block ethereumjs-block v2.2.2 -> @ethereumjs/block v3.0.0
    • v3.0.0-beta.1 Release
    • v3.0.0-beta.2 Release
    • v3.0.0-rc.1 Release
    • v3.0.0 Release
  • Blockchain ethereumjs-blockchain v4.0.4 -> @ethereumjs/blockchain v5.0.0
    • v5.0.0-beta.1 Release
    • v5.0.0-beta.2 Release
    • v5.0.0-rc.1 Release
    • v5.0.0 Release
  • Common ethereumjs-common v1.5.2 -> @ethereumjs/common v2.0.0
    • v2.0.0-beta.1 Release
    • v2.0.0-beta.2 Release
    • v2.0.0-rc.1 Release
    • v2.0.0 Release
  • Ethash ethashjs v0.0.8 -> @ethereumjs/ethash v1.0.0
    • v1.0.0-beta.1 Release
    • No beta.2 release planned
    • v1.0.0-rc.1 Release
    • v1.0.0 Release
  • Tx ethereumjs-tx v2.1.2 -> @ethereumjs/tx v3.0.0
    • v3.0.0-beta.1 Release
    • v3.0.0-beta.2 Release
    • v3.0.0-rc.1 Release
    • v3.0.0 Release

🍀

@holgerd77
Copy link
Member Author

Closed by #962

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant