1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
:orphan:
====================
Polyfactory Releases
====================
This document outlines the release structure, versioning, and stability guarantees for the Polyfactory library.
Version Numbering
-----------------
This library follows the `Semantic Versioning standard <https://semver.org/>`_, using the ``<major>.<minor>.<patch>``
schema:
**Major**
Backwards incompatible changes have been made
**Minor**
Functionality was added in a backwards compatible manner
**Patch**
Bugfixes were applied in a backwards compatible manner
Pre-release Versions
++++++++++++++++++++
Before a new major release, we will make ``alpha``, ``beta``, and release candidate (``rc``) releases, numbered as
``<major>.<minor>.<patch><release_type><number>``. For example, ``2.0.0alpha1``, ``2.0.0beta1``, ``2.0.0rc1``.
- ``alpha``
Early developer preview. Features may not be complete and breaking changes can occur.
- ``beta``
More stable preview release. Feature complete, no major breaking changes expected.
- ``rc``
Release candidate. Feature freeze, only bugfixes until final release.
Suitable for testing migration to the upcoming major release.
Long-term Support Releases (LTS)
--------------------------------
Major releases are designated as LTS releases for the life of that major release series.
These releases will receive bugfixes for a guaranteed period of time as defined in
`Supported Versions <#supported-versions>`_.
Deprecation Policy
------------------
When a feature is going to be removed, a deprecation warning will be added in a **minor** release.
The feature will continue to work for all releases in that major series, and will be removed in the next major release.
For example, if a deprecation warning is added in ``1.1``, the feature will work throughout all ``1.x`` releases,
and be removed in ``2.0``.
Supported Versions
------------------
At any time, the Litestar organization will actively support:
- The current major release series
- The previous major release series
- Any other designated LTS releases (Special cases)
For example, if the current release is ``2.0``, we will actively support ``2.x`` and ``1.x``.
When ``3.0`` is released, we will drop support for ``1.x``.
Bugfixes will be applied to the current major release, and selectively backported to older
supported versions based on severity and feasibility.
Release Process
---------------
Each major release cycle consists of a few phases:
#. **Planning**: Define roadmap, spec out major features. Work should begin on implementation.
#. **Development**: Active development on planned features. Ends with an alpha release and branch of ``A.B.x``
branch from `main`.
#. **Bugfixes**: Only bugfixes, no new features. Progressively release beta, release candidates.
Feature freeze at RC. Become more selective with backports to avoid regressions.
|