Skip to content

Release Manager: v8.15.1 (2022-07-27) #5224

@lukekarrys

Description

@lukekarrys

Target Version: v8.15.1
Target Date: 2022-07-27
Created From: Release-Process-(v8).md###Publishing the `cli`

  • 0. Create release-manager issue

    Follow the rest of the checklist in the created issue.

    node scripts/release-manager.js
  • 1. Checkout the latest branch and reset deps

    git checkout latest && git pull
    node . run resetdeps
  • 2. Pull in PRs

    • Search for PRs to merge. Some helpful gh searches:

      gh pr list --draft=false --search "status:pending"
      gh pr list --draft=false --search "status:success"
      gh pr list --draft=false --search "review:required"
      gh pr list --draft=false --search "review:approved"
    • Make sure the PR is targeting latest and not something else.

    • Make a judgment call to either squash or rebase the PR. Prefer using squash unless PR has multiple conventional commits.

    • Squash

      gh pr merge -s <pr-num> && git pull
    • Rebase

      gh pr merge -m <pr-num> && git pull
  • 3. ❓ Optional: Update Deps

    Steps

    ⚠️ This is an optional step, the way we are handling the dependencies now is to open then via Pull Requests so ideally any dependencies update that needs to go out in a release should have been merged already at this point. Refer to these steps in case there are important last-minute dependencies updates that needs to go out along with the current release.

    • Check all deps

      node . outdated
    • Check production deps

      node . outdated -a --omit=dev
    • Install and commit each dep to a PR

      git checkout -b deps/updates
      node . install <pkg>@<version>
      node ./scripts/bundle-and-gitignore-deps.js
      git add -A && git commit -m 'deps: <pkg>@<version>'
      git push origin deps/updates
      gh pr create -f
    • Rebase-merge the PR if things look ok

    • Updating template-oss

      node . i @npmcli/template-oss@latest -ws --include-workspace-root --save-exact
  • 4. Make sure tests/lint pass

    node . run test-all
    node . run lint-all
  • 5. Generate Changelog

    • Push commits needed to generate the changelog

      git push origin latest
    • Write release notes to CHANGELOG.md

      node ./scripts/changelog.js -w --format=short
    • Open CHANGELOG.md and check it for any unexpected/malformed entries.

    • Commit CHANGELOG.md updates

      git add CHANGELOG.md && git commit -m 'chore: changelog for v8.15.1'
  • 6. Update Version

    node . version 8.15.1
  • 7. Push to GitHub

    • Create a release branch in the remote repo

      git push origin latest:release/v8.15.1
    • Create a PR with the body set to the manually formatted release notes from CHANGELOG.md

      node ./scripts/changelog.js -r --type=gh | gh pr create -H release/v8.15.1 -t "Release/v8.15.1" -F -
    • Ensure PR CI checks pass

      gh pr checks release/v8.15.1 --watch
  • 8. Publish Package

    make publish
  • 9. Update Dist Tag

    • ❓ Optional: install via version to see how it runs locally before tagging

    • Set version to latest dist tag

      node . dist-tag add [email protected] latest
  • 10. Create a GitHub release

    • Create a GitHub release with the notes set to the body of the PR

      gh pr view release/v8.15.1 --json body --jq .body | gh release create v8.15.1 --title "v8.15.1" -F -
  • 11. ⏳ Temporary: Merge the release branch into release-next

    git checkout release-next
    git fetch && git pull
    git merge --ff-only latest
    git push origin release-next
    git checkout latest
  • 12. Post on Twitter

    New @npmjs release!
    
    <link-to-github-release>
    
    <details-about-release>
    
    latest: 8.15.1
    
  • 13. Update Node.js

    • Sync our npm/node fork with the nodejs/node upstream

      gh repo sync npm/node --source nodejs/node --force
    • Trigger the Create CLI Deps PR action (use the default input of latest)

      gh workflow run create-cli-deps-pr.yml

Metadata

Metadata

Assignees

Labels

release: managertask list for current release manager

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions