Nyx is a powerful, flexible and extremely configurable semantic release tool. You can put release management on auto pilot regardless of the kind of project, languages, tools and technologies or you can control any aspect of release management manually. Preset configuration values let you get started in minutes without digging into detailed settings.
Nyx is the all in one tool that gives you integrated support for:
- the Semantic Versioning (SemVer) scheme
- conventional specifications and best practices like Conventional Commits, Keep a Changelog
- build tools like Gradle
- Git hosting services like GitHub and GitLab and their extra features like GitHub Releases and GitLab Releases
- CI/CD platforms like GitHub Actions and GitLab CI
- custom or standard workflows (a.k.a. branching models) like GitFlow, GitHub Flow, GitLab Flow, OneFlow
- changelog generation
- any (combination of) configuration means like command line arguments, local or remote files, environment variables and build tools extensions
Want to embed the libraries into your own project instead? You're covered as they are published just for that. See the available libraries for more.
Browse the documentation for more. Check out the quick start guide to get Nyx running in minutes or see the developer guide if you're interested in using the libraries.
The project is open source and hosted on GitHub.
- download the binary package for your distribution from the latest release assets
- put the binary somewhere visible within the
PATH
and (optionally) rename it tonyx
(ornyx.exe
on Windows) - open a shell, cd into your project folder and run:
$ nyx --preset=simple --summary infer
branch = main
bump =
core version = true
latest version = false
new release = false
new version = false
scheme = SEMVER
timestamp = 1692276827782
current version = 1.2.3
previous version = 1.2.3
prime version = 1.2.3
This will not apply any change to your repository (as the infer command doesn't) but will give you a taste of what Nyx finds out. Here 1.2.3
is the version that Nyx has inferred from the commit history and will be the one it will tag and release with if you use other commands, like nyx --preset=simple publish
.
The simple preset is a streamlined configuration suitable for mainline only projects but you can replace it with your own configuration or override its values selectively.
From here:
- run
nyx --help
for the synopsis or jump to the documentation - tune your configuration or tweak command line arguments according to your needs
- try your configuration using the
--dry-run
mode - embed Nyx into your build scripts and automation environments
Available for all platforms in the latest release assets.
- Main library:
- Semantic Version library:
- security:
,
- code quality:
,
,
,
- code coverage:
,
flaky
If you like Nyx please consider showing the badge on your project page by inserting this snippet:
[![](https://img.shields.io/badge/powered%20by-Nyx-blue)](https://github.com/mooltiverse/nyx)