# 2.0.0 - CLI exit codes and Python 3.14 Support

*Released October 11, 2025*

## Big number, small changes

Exosphere now uses consistent and documented exit codes across all of its CLI components.
Since, strictly speaking, this is a backwards incompatible change (although it is unlikely to affect many people), the version has been incremented to 2.0.0 to communicate this, in accordance with the holy texts of Semantic Versioning.

### Return Codes

Exosphere now *consistently* returns the following exit codes:

* **0** - Success
* **1** - Execution error (something went wrong during processing)
* **2** - Argument error (something wrong with an option or argument you provided)
* **3** - Special - Used sparingly to communicate specific scenarios

Using `2` for argument errors is a consistent behavior with the Typer library (which we use extensively for CLI commands) and multiple Unix utilities, such as grep.

Status 3 is used very sparingly, and so far only returned by `exosphere version check` to communicate that a new version is available, as well as by `inventory status` whenever any of its filtering options (`--updates-only` etc) do not match any hosts.

This is documented in our {ref}`Lovely Documentation in its Appropriate Section <return-codes>`

### Python 3.14 Compatibility

Python 3.14 is now officially supported with this release.

Internally, the test suite for Exosphere has been put in a Matrix that runs against both 3.13 and 3.14, to prevent regressions across supported versions. The uv lockfile has been updated with versions of main dependencies and dev tools that support both, but the minimum required versions have been left alone.

This should ensure compatibility between 3.13 and 3.14, and lays the groundwork to support upcoming versions without too much hassle.

### New detailed version command

In order to make diagnostics and debugging easier, the `version` command now has a `details` subcommand that will return information about the current Python environment, venv, and host system.

## What's Changed

* Github: Add test matrix for ci workflow
* Additional Python 3.14 Compatibility
* Uniformize return codes across application
* Bump version to 2.0.0 for release
