Source code
Revision control
Copy as Markdown
Other Tools
# How to release a new version of llhttp
## What does releasing involves?
These are the required steps to release a new version of llhttp:
1. Increase the version number.
2. Build it locally.
3. Create a new build and push it to GitHub.
4. Create a new release on GitHub release.
> Do not try to execute the commands in the Makefile manually. This is really error-prone!
## Which commands to run?
First of all, make sure you have [GitHub CLI](https://cli.github.com) installed and configured. While this is not strictly necessary, it will make your life way easier.
As a preliminary check, run the build command and execute the test suite locally:
```
npm run build
npm test
```
If all goes good, you are ready to go!
To release a new version of llhttp, first increase the version using `npm` and make sure it also execute the `postversion` script. Unless you have some very specific setup, this should happen automatically, which means the following command will suffice:
```
npm version [major|minor|patch]
```
The command will increase the version and then will create a new release branch on GitHub.
> Even thought there is a package on NPM, it is not updated anymore. NEVER RUN `npm publish`!
It's now time to create the release on GitHub. If you DON'T have GitHub CLI available, skip to the next section, otherwise run the following command:
```
npm run github-release
```
This command will create a draft release on GitHub and then show it in your browser so you can review and publish it.
Congratulation, you are all set!
## Create a GitHub release without GitHub CLI
> From now on, `$VERSION` will be the new version you are trying to create, including the leading letter, for instance `v6.0.9`.
If you don't want to or can't use GitHub CLI, you can still create the release on GitHub following this procedure.
1. Go on GitHub and start creating a new release which targets tag `$VERSION`. Generate the notes using the `Generate release notes` button.
2. At the bottom of the generated notes, make sure the previous and current version in the notes are correct.
The last line should be something like this: `**Full Changelog**: https://github.com/nodejs/llhttp/compare/v6.0.8...v6.0.9`
In this case it says we are creating release `v6.0.9` and we are showing the changes between `v6.0.8` and `v6.0.9`.
3. Change the target of the release to point to tag `release/$VERSION`.
4. Review and then publish the release.
Congratulation, you are all set!