Skip to main content

44 docs tagged with "user"

View all tags

Best Practice

Release management is a much broader topic than just adopting a tool and if you want to go deeper here is a good starting point to additional resources.

Branching Models

Whether the project is developed by a team or you are the sole contributor you soon need to define your workflow. In version control, this means you have rules and semantics in place to track your code changes consistently. Even when you have never thought about a branching model you're actually using one. This set of rules is often called in many different ways, like branching strategy, branching pattern, git worlflow. A few well known ones are:

Build and Automation

Nowadays all teams use CI/CD platforms to automate the build and release process around their software projects but often times they get into some pitfalls like:

Changelog

The changelog section is where you configure the (optional) changelog generation.

CI/CD

Nyx is perfectly suited for use in CI/CD platforms and leverage automation. This page gives you additional information to set up your build pipelines using common CI/CD platforms effectively and work around some caveats.

Combined Release Process

In a simplistic way the release process is atomic and happens at the end of the overall build process, meaning that the commit history can be inspected to infer values like the version number to release, apply a tag to the repository and publish to remote platforms.

Command Line

In this section you can find instructions to get started using the command line in minutes. Consider these your first steps based or a standard scenario but there is much more you can do and control with Nyx. For more see Using the command line.

Commit Message Conventions

Commit message conventions are patterns used for Git commit messages widely used in software development. To name a few: Conventional Commits, Angular, Karma, jQuery, JSHint, Ember, gitmoji. While discussing these conventions is out of scope for this page, what is important here is that you can configure Nyx with any convention in order to fetch information directly from the commit messages (like, for example, the version number to bump after a certain commit).

Configuration Presets

Configuration presets are the easiest way to get started with Nyx as they bring streamlined configurations ready to use with just one option to configure.

Docker Container

In this section you can find instructions to get started using the Docker image in minutes. Consider these your first steps based or a standard scenario but there is much more you can do and control with Nyx. For more on using the Docker image see Using the Docker image.

Dynamic Configurations

Although you can configure Nyx by means of static values, you also have the option to use templates to make them dynamic.

Extended

This preset can be used by setting the preset global configuration option value to extended and brings rich standard configurations suitable for projects with several options in place.

Git

The git section is where you can pass Git parameters to Nyx.

GitHub Action

Check out this section for a full reference on the GitHub Action.

Gradle Plugin

In this page you can find extra information about the Nyx Gradle Plugin internals that may be useful for troubleshooting.

Gradle Plugin

In this section you can find instructions to get started using the Gradle plugin in minutes. Consider these your first steps based or a standard scenario but there is much more you can do and control with Nyx. For more on using the Gradle plugin see Using the Gradle plugin.

How does *collapsed* versioning work?

Collapsed versioning is a strategy often used in pre-release branches that narrows the number of new versions generated by the commits in a branch so that they progressively end up to a single version which is the cumulative account of a whole range of commits. If you have already used pre-release branches you are probably confident with this kind of versioning but you probably wonder what's the algorithm behind.

How Nyx Works

In this page you can find the overall principles of the various Nyx phases and how they work in order to take full advantage.

Introduction

Release management entails many tasks and responsibilities and can be daunting when the size of the team and the project grows. Examples of these tasks are:

Release Assets

Release assets are the artifacts to be attached to releases upon publication. These may be local files (produced during the build process) or remote URLs. The configuration allows using dynamic templates so you can have multiple degrees of control over the released contents.

Release Assets

The releaseAssets element is the list of artifacts that have been actually published along with the release. For each asset you have the file name, the description (or label), the MIME type and the URL to download the published asset.

Release Types

Release types are definitions that allow conditional settings to be used depending on what Nyx is releasing and how. The configuration allows using dynamic values that can also be used as conditionals so you can have multiple degrees of control over the released contents.

Services

Services are objects performing additional operations to be plugged in the overall workflow. They may support one or more features and they are invoked by specific configurations. The points where a service can be invoked from depend on the features they provide so for each invocation point the list of required features is outlined. Example services are those used to publish releases on Git hosting service like GitHub and GitLab or produce artifacts using templates.

Simple

This preset can be used by setting the preset global configuration option value to simple and brings standard configurations well suited to get started with common items, as follows.

State Reference

You can get access to the internal state of Nyx if you need to use one of the values it computes internally or just to inspect its internals, like for debugging purpose.

Substitutions

Substitutions are used to replace arbitrary text tokens in any text file with static or dynamic contents.

Templates

Templates can be used in several places to make configuration dynamic or parametrize text outputs, be them strings, messages or even whole text files.

Where does the Nyx name come from?

Nyx is named after 3908 Nyx, a notable Mars crossing asteroid, which in turn is named after the the Greek goddess of the night. We liked the name as it's three letters like the number of a semantic version number.

Wrong version is inferred on CI/CD platforms

One of the very first steps when running a pipeline on a CI/CD platfom is checking out the Git repository and this is usually done by the platform without the user to define any specific configuration or workflow.