Versions and compatibility

Flywheel uses semantic versions, MAJOR.MINOR.PATCH. The package on PyPI (flywheel-verify), the Windows installer, the VS Code extension's bundled command and the docs site all ship from one annotated git tag, vMAJOR.MINOR.PATCH. flywheel --version prints the version you have and flywheel update tells you whether a newer one exists.

What each part of the number means

What counts as a breaking change

A change breaks compatibility when a script, config file or record that worked with the previous release stops working or changes meaning. That covers:

Text meant for people, such as help text, log lines and the wording of a prompt, can change in any release. Parse the JSON outputs, not the text.

Records stay checkable

A receipt or ledger is only useful if it can still be checked later. Each format carries its schema name and version. When a format changes, it gets a new schema version, and the checker for every older version stays in the package for the whole major release line. A record written by 1.6.0 verifies with 1.9.0.

Deprecation

Before a command, flag or field is removed in a major release, the minor release before it marks it deprecated: the CHANGELOG names it, and using it prints one warning line that names the replacement. Removal never happens in a minor or patch release.

Python versions

Flywheel needs Python 3.11 or newer. Dropping a Python version is announced in the CHANGELOG one minor release ahead and happens no sooner than that version's end of life upstream.

Which releases get fixes

Fixes ship in the next release. Older releases do not get backported fixes today; upgrade with flywheel update --apply or your package manager. Each release's license terms, including its date of conversion to MIT, are on the licensing page.