Skip to content

Instantly share code, notes, and snippets.

@gibfahn
Last active March 6, 2018 22:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gibfahn/71112c248ade063bf2f82c5b6581e75a to your computer and use it in GitHub Desktop.
Save gibfahn/71112c248ade063bf2f82c5b6581e75a to your computer and use it in GitHub Desktop.
8.10.0 Release notes

Release Notes for 8.10.0

Regenerate this script with:

  tools/kraken -c Carbon -d 2018-03-06 -u DANGER -p https://github.com/nodejs/node/pull/18336 8.10.0

Your settings:

  • Version: 8.10.0
  • Previous version: 10.0.0
  • Remote branch: DANGER/v8.x
  • Release type: LTS
  • Release date: 2018-03-06

Note: If you haven't used this script before, check out the requirements by running: tools/kraken -h

  • Get on the right branch and update it
    git fetch DANGER; git checkout v8.x; git merge --fast-forward DANGER/v8.x
  • Cherry-pick commits from master:
    branch-diff v8.x-staging DANGER/v9.x --exclude-label semver-major,semver-minor,dont-land-on-v8.x,backport-requested-v8.x, backported-to-v8.x --filter-release
  • Check out the proposal branch
    git checkout -b v8.10.0-proposal v8.x-staging # TODO(gib): Confirm this.
  • Create an initial release commit
    git commit -am "2018-03-06 Version 8.10.0 'Carbon' (LTS)"
  • Raise a PR with your changes, copy the PR-URL or PR number, and rerun the script. # TODO(gib): Make this conditional on PR being unset.
    tools/kraken -c Carbon -d 2018-03-06 -u DANGER -p https://github.com/nodejs/node/pull/18336 8.10.0 -p <PR>
  • Update src/node_version.h with the new version and set release bit.
    # TODO(gib): Make sure these work.
    sed -i "s/NODE_MAJOR_VERSION [0-9]\+$/NODE_MAJOR_VERSION 8/" src/node_version.h
    sed -i "s/NODE_MINOR_VERSION [0-9]\+$/NODE_MINOR_VERSION 10/" src/node_version.h
    sed -i "s/NODE_PATCH_VERSION [0-9]\+$/NODE_PATCH_VERSION 0/" src/node_version.h
    sed -i "s/NODE_VERSION_IS_LTS [0-1]$/NODE_VERSION_IS_LTS 1/" src/node_version.h # TODO(gib): This is broken.
    sed -i "s/NODE_VERSION_LTS_CODENAME \"$/NODE_VERSION_LTS_CODENAME 1/" src/node_version.h
    sed -i "s/NODE_VERSION_IS_RELEASE [0-1]$/NODE_VERSION_IS_RELEASE 1/" src/node_version.h
  • Generate the changelog for the release.
    changelog-maker --group --filter-release --start-ref v10.0.0 >release-8.10.0-changelog
    cp release-8.10.0-changelog release-8.10.0-notable
  • Add changelog to doc/changelogs/CHANGELOG_v8.md:
    # TODO(gib): Finish this.
    sed -i ""
  • Manually edit the notable changes file
    $VISUAL release-8.10.0-notable
  • Add notable changes to doc/changelogs/CHANGELOG_v8.md:
    # TODO(gib): Finish this.
    sed -i ""
  • Update REPLACEME tags:
    grep REPLACEME doc/api/*.md
    sed -i "s/REPLACEME/8.10.0/g" doc/api/*.md
  • Check for DEP00XX tags:
    grep DEP00XX doc/api/*.md
  • Add changes to release commit
    git commit --amend -am "2018-03-06 Version 8.10.0 'Carbon' (LTS)
    
    Notable changes:
    
    $(cat release-8.10.0-notable)
    
    PR-URL: https://github.com/nodejs/node/pull/18336"
    git push -u  v8.10.0-proposal

YYYY-MM-DD, Version x.y.z (Release Type), @releaser

Notable changes

  • List interesting changes here
  • Particularly changes that are responsible for minor or major version bumps
  • Also be sure to look at any changes introduced by dependencies such as npm
  • ... and include any notable items from there

Commits

  • Run node-test-pull-request, citgm-smoker, and iojs-release to create and test the rc.

  • Generate the tag:

    git secure-tag v8.10.0 $(git rev-parse --short HEAD) -sm "2018-03-06 Node.js v8.10.0 'Carbon' (LTS) Release"
  • Update src/node_version.h with the new version and unset release bit.

    sed -i "s/NODE_PATCH_VERSION [0-9]\+$/NODE_PATCH_VERSION 1/" src/node_version.h
    sed -i "s/NODE_VERSION_IS_RELEASE [0-1]$/NODE_VERSION_IS_RELEASE 0/" src/node_version.h
  • Create Working on... commit, and merge v8.10.0-proposal into v8.x

    git commit -am "Working on v8.10.1
    
    PR-URL: https://github.com/nodejs/node/pull/18336"
    git push DANGER v8.10.0-proposal
    git checkout v8.x
    git fetch --all
    git merge --ff-only v8.10.0-proposal
    git push DANGER v8.x
    git checkout v8.x-staging
    git rebase v8.x
    git push --force-with-lease  v8.10.0-staging
  • Delete the v8.10.0-proposal branch in nodejs/node#18336

  • Merge v8.10.0-proposal into v8.x, and rebase v8.x-staging on it.

    git fetch --all
    git checkout master
    git reset --hard DANGER master
    git cherry-pick v8.10.0
    git reset src/node_version.h
    git checkout src/node_version.h
    git add -A
    git cherry-pick --continue # If you have Changelog conflicts, fix them manually.
    git push DANGER master
  • Workaround the bug in tools/release.sh

    echo "Could not find signed tag for \"\" or GPG key is not yours"
    -exit 1
    +# exit 1
  • Promote and sign the release builds.

    tools/release.sh
  • Check the release is at https://nodejs.org/dist/v8.10.0

  • Create a blog post:

    # cd /path/to/nodejs.org
    git fetch --all
    git checkout master
    git reset --hard up/master # TODO(gib): Fix this for other remotes.
    git checkout -b v8.10.0
    
    npm i
    node scripts/release-post.js 8.10.0
    $VISUAL locale/en/blog/release/v8.10.0.md
    npm run serve # Check that the post looks okay when rendered.
    git add locale/en/blog/release/v8.10.0.md
    git commit -m "Blog: v8.10.0 release post
    
    Refs: https://github.com/nodejs/node/pull/18336"
    git push -u fork v8.10.0
  • Create and Squash and Merge the PR.

  • Tweet about it:

    ⚜️ v8.9.1 of @nodejs is out! ⚜️  <Notable changes>
    
    https://nodejs.org/en/blog/release/v8.10.0/
    
    Get it with `nvm i --lts`
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment