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
nvm
to change Node versions. - Run
node ./release.js --version x.x.x --dir path --remote name
, wherex.x.x
is the version of libuv you are creating,path
is the location of the libuv core repository on your machine, andname
is the libuv core git remote. This will perform a few tasks, such as updating the libuvAUTHORS
file 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
, andname
have the same meaning as in the previous step. The--continue
flag 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--abort
for--continue
at 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 --continue
again. 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.gz
and.tar.gz.sign
files. - 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.