# Atmos Versioning

Atmos follows the Semantic Versioning (SemVer) convention: major.minor.patch.

Incompatible changes increment the major version, adding backwards-compatible functionality increments the minor version,
and backwards-compatible bug fixes increment the patch version.

## Release Schedule

### Major Release

A major release will be published when there is a breaking change introduced in `atmos`.
Several release candidates will be published prior to a major release in order to get feedback before the final release.
An outline of what is changing and why will be included with the release candidates.

### Minor Release

A minor release will be published when a new feature is added or changes that are non-breaking are introduced.
We will heavily test any changes so that we are confident with the release, but with new code comes the potential for new issues.

### Default Behavior Changes

Occasionally, minor releases may change default behaviors of Atmos commands or configuration options.
Because these defaults can be adjusted in your `atmos.yaml` configuration, we treat them as non-breaking.
This pragmatic approach lets us improve defaults without waiting for major releases. When this happens,
it will be clearly documented in the [changelog](/changelog) with migration guidance.

### Patch Release

A patch release will be published when bug fixes were included, but no breaking changes were introduced.
To ensure patch releases can fix existing code without introducing new issues from the new features, patch releases will always be published prior to
a minor release.

## Version Constraints

You can enforce Atmos version requirements in your `atmos.yaml` configuration to ensure consistent behavior across teams and environments:

```yaml
version:
  constraint:
    require: ">=1.100.0, <2.0.0"
    enforcement: "fatal"
```

See [Version Constraints](/cli/configuration/version/constraint) for complete documentation.

## Changelog

To see a list of all notable changes to `atmos` please refer to the [changelog](/changelog).
It contains an ordered list of all bug fixes and new features under each release.
