.. _versioning:
Versioning
==========
Pillow follows `Semantic Versioning `_:
Given a version number MAJOR.MINOR.PATCH, increment the:
1. MAJOR version when you make incompatible API changes,
2. MINOR version when you add functionality in a backwards compatible manner, and
3. PATCH version when you make backwards compatible bug fixes.
Quarterly releases ("`Main Release `_")
bump at least the MINOR version, as new functionality has likely been added in the
prior three months.
A quarterly release bumps the MAJOR version when incompatible API changes are
made, such as removing deprecated APIs or dropping an EOL Python version. In practice,
these occur every 12-18 months, guided by
`Python's EOL schedule `_, and
any APIs that have been deprecated for at least a year are removed at the same time.
PATCH versions ("`Point Release `_"
or "`Embargoed Release `_")
are for security, installation or critical bug fixes. These are less common as it is
preferred to stick to quarterly releases.
Between quarterly releases, ``.dev0`` is appended to the ``main`` branch, indicating that
this is not a formally released copy.