Skip to main content

43 docs tagged with "guide"

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.

Go

In this section you can find instructions to use the available Go libraries to be used in your own projects.

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 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:

Java

In this section you can find instructions to use the available Java libraries to be used in your own projects.

Nyx Main

You can use the main Nyx library to embed it into your project and use all or some of its features. The github.com/mooltiverse/nyx/src/go/nyx/nyx package brings the Nyx structure that is the entry point for all the available commands and features.

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.

Semantic Version

The version package provides you with a fully featured implementation of the Semantic Versioning (SemVer) specification without any external dependency. Full support for parsing, ordering, bumping and manipulating versions and their identifiers is provided.

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.