image

JavaScript release tools

Notable tools to automate project versioning and releasing

In systems with many dependencies, releasing new package versions can quickly become a nightmare. Semver is a specification outlining a method of encoding the nature of change between releases of a "public interface", directly into the version string.

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards compatible manner, and
  • PATCH version when you make backwards compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Following tools will help you automate releases, enforce Semantic Versioning specification, integrate with your continuous integration workflow, avoid potential errors associated with manual releases, etc.


semantic-release

image

github.com

semantic-release automates the whole package release workflow including: determining the next version number, generating the release notes and publishing the package.

shipit

image

github.com

Shipit is an automation engine and a deployment tool, it provides a good alternative to Capistrano or other build tools, easy to deploy or to automate simple tasks on your remote servers.

release-it

image

github.com

Use release-it for version management and publish to anywhere with its versatile configuration, a powerful plugin system, and use hooks to execute any command you need to test, build, and/or publish your project.

standard-version

image

github.com

A utility for versioning using semver and CHANGELOG generation powered by Conventional Commits.

publish-please

image

github.com

Publish-please is versatile enough to be used only as a validation tool before publishing or as an all-in-one tool when you want to manually handle your releases.