Command line utility for creating new releases of libuv.
- Make sure you have the most up-to-date version of this tool and the libuv branch that will be used to create the release.
- Currently, the release tool requires Node.js v12 or later. You may want to
use something like
nvmto change Node versions. - Run
node ./release.js --version x.x.x --dir path --remote name, wherex.x.xis the version of libuv you are creating,pathis the location of the libuv core repository on your machine, andnameis the libuv core git remote. This will perform a few tasks, such as updating the libuvAUTHORSfile if necessary. Review any changes made to libuv before continuing. - Run
node ./release.js --version x.x.x --dir path --remote name --continue.x.x.x,path, andnamehave the same meaning as in the previous step. The--continueflag tells the release tool to continue work on the release started in the previous step. If you need to cancel a release that has been started, you can substitute--abortfor--continueat any time. At this time, you should see the CHANGELOG for the proposed release. Review the CHANGELOG for correctness. Remove the first commit, which should mention adding the SHA to CHANGELOG. Optionally, you may remove any commits that were made and then reverted in this release, as they cancel each other out. Once the CHANGELOG looks good, save the changes. You will also need to sign the release using your GPG key. - Run
node ./release.js --version x.x.x --dir path --remote name --continueagain. This updates the website, pushes the tag and branch, signs the tarball, etc. You can verify that this step worked by checkinghttp://dist.libuv.org/dist/vx.x.x, which should include.tar.gzand.tar.gz.signfiles. - Create a "Now working on" commit in libuv/libuv. An example can be seen here.
- Create a new release on Github for the tag at https://github.com/libuv/libuv/releases/new.
- Optionally, make a pull request to nodejs/node to update the version of libuv. At the time of writing, the Node.js project has automation in place to update its libuv dependency.