|
@@ -3,48 +3,107 @@
|
|
|
Godot release policy
|
|
|
====================
|
|
|
|
|
|
+Godot's release policy is in constant evolution. What is described below is
|
|
|
+intended to give a general idea of what to expect, but what will actually
|
|
|
+happen depends on the choices of core contributors, and the needs of the
|
|
|
+community at a given time.
|
|
|
+
|
|
|
Godot versioning
|
|
|
----------------
|
|
|
|
|
|
-Godot uses ``major.minor.patch`` version numbering. However, it does not
|
|
|
-strictly follow `Semantic Versioning <https://semver.org/>`__. This means that
|
|
|
-releases considered "semver-minor" by that standard (such as 3.1 -> 3.2) will
|
|
|
-most likely introduce breaking changes. Still, there won't be as many breaking
|
|
|
-changes as a "semver-major" version bump such as 3.2 -> 4.0.
|
|
|
+Godot loosely follows `Semantic Versioning <https://semver.org/>`__ with a
|
|
|
+``major.minor.patch`` versioning system, albeit with an interpretation of each
|
|
|
+term adapted to the complexity of a game engine:
|
|
|
+
|
|
|
+- The ``major`` version is incremented when major compatibility breakages happen
|
|
|
+ which imply significant porting work to move projects from one major version
|
|
|
+ to another.
|
|
|
+
|
|
|
+ For example, porting Godot projects from Godot 2.1 to Godot 3.0 required
|
|
|
+ running the project through a conversion tool, and then performing a number
|
|
|
+ of further adjustments manually for what the tool could not do automatically.
|
|
|
+
|
|
|
+- The ``minor`` version is incremented for feature releases which do not break
|
|
|
+ compatibility in a major way. Minor compatibility breakage in very specific
|
|
|
+ areas *may* happen in minor versions, but the vast majority of projects
|
|
|
+ should not be affected or require significant porting work.
|
|
|
+
|
|
|
+ The reason for this is that as a game engine, Godot covers many areas such
|
|
|
+ as rendering, physics, scripting, etc., and fixing bugs or implementing new
|
|
|
+ features in a given area may sometimes require changing the behavior of a
|
|
|
+ feature, or modifying the interface of a given class, even if the rest of
|
|
|
+ the engine API remains backwards compatible.
|
|
|
+
|
|
|
+.. tip::
|
|
|
+
|
|
|
+ Upgrading to a new minor version is therefore recommended for all users,
|
|
|
+ but some testing is necessary to ensure that your project still behaves as
|
|
|
+ expected in a new minor version.
|
|
|
|
|
|
-In the interest of stability and usability, patch releases may occasionally
|
|
|
-introduce small breaking changes as well. When repackaging Godot projects (e.g.
|
|
|
-in a Flatpak), make sure to always use the same patch version as the one used to
|
|
|
-initially export the project.
|
|
|
+- The ``patch`` version is incremented for maintenance releases which focus on
|
|
|
+ fixing bugs and security issues, implementing new requirements for platform
|
|
|
+ support, and backporting safe usability enhancements. Patch releases are
|
|
|
+ backwards compatible.
|
|
|
+
|
|
|
+ Patch versions may include minor new features which do not impact the
|
|
|
+ existing API, and thus have no risk of impacting existing projects.
|
|
|
+
|
|
|
+.. tip::
|
|
|
+
|
|
|
+ Updating to new patch versions is therefore considered safe and strongly
|
|
|
+ recommended to all users of a given stable branch.
|
|
|
+
|
|
|
+We call ``major.minor`` combinations *stable branches*. Each stable branch
|
|
|
+starts with a ``major.minor`` release (without the ``0`` for ``patch``) and is
|
|
|
+further developed for maintenance releases in a Git branch of the same name
|
|
|
+(for example patch updates for the 3.3 stable branch are developed in the
|
|
|
+``3.3`` Git branch).
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
- The first release in a major/minor release series doesn't end with a
|
|
|
- trailing zero. For example, the first release in the 3.2 series is ``3.2``,
|
|
|
- not ``3.2.0``.
|
|
|
+ As mentioned in the introduction, Godot's release policy is evolving, and
|
|
|
+ earlier Godot releases may not have followed the above rules to the letter.
|
|
|
+ In particular, the 3.2 stable branch received a number of new features in
|
|
|
+ 3.2.2 which would have warranted a ``minor`` version increment.
|
|
|
|
|
|
Release support timeline
|
|
|
------------------------
|
|
|
|
|
|
-Godot versions are supported for a certain amount of time. While these durations
|
|
|
-are not set in stone, here's a table with the expected level of support
|
|
|
-for each Godot version:
|
|
|
+Stable branches are supported *at minimum* until the next stable branch is
|
|
|
+released and has received its first patch update. In practice, we support
|
|
|
+stable branches on a *best effort* basis for as long as they have active users
|
|
|
+who need maintenance updates.
|
|
|
+
|
|
|
+Whenever a new major version is released, we make the previous stable branch a
|
|
|
+long-term supported release, and do our best to provide fixes for issues
|
|
|
+encountered by users of that branch who cannot port complex projects to the new
|
|
|
+major version. This is the case for the 2.1 branch, and will be the case for
|
|
|
+the latest 3.x stable branch by the time Godot 4.0 is released.
|
|
|
+
|
|
|
+.. To add once 3.3 is released:
|
|
|
+ | Godot 3.4 | Q2 or Q3 2021 | |supported| *Beta.* Receives new features as well as bug fixes while |
|
|
|
+ | | | under development. |
|
|
|
|
|
|
+-------------+-------------------+--------------------------------------------------------------------------+
|
|
|
| **Version** | **Release date** | **Support level** |
|
|
|
+-------------+-------------------+--------------------------------------------------------------------------+
|
|
|
| Godot 4.0 | ~2021 (see below) | |unstable| *Current focus of development (unstable).* |
|
|
|
+-------------+-------------------+--------------------------------------------------------------------------+
|
|
|
-| Godot 3.2 | January 2020 | |supported| Backwards-compatible new features (backported from the |
|
|
|
-| | | ``master`` branch) as well as bug, security, and platform support fixes. |
|
|
|
+| Godot 3.3 | March/April 2021 | |supported| Receives bug, security and platform support fixes, as well |
|
|
|
+| | | as backwards-compatible usability enhancements. |
|
|
|
++-------------+-------------------+--------------------------------------------------------------------------+
|
|
|
+| Godot 3.2 | January 2020 | |partial| Only critical, security and platform support fixes |
|
|
|
+| | | (last update: 3.2.3). |
|
|
|
+-------------+-------------------+--------------------------------------------------------------------------+
|
|
|
-| Godot 3.1 | March 2019 | |partial| Only critical, security and platform support fixes. |
|
|
|
+| Godot 3.1 | March 2019 | |partial| Only critical, security and platform support fixes |
|
|
|
+| | | (last update: 3.1.2). |
|
|
|
+-------------+-------------------+--------------------------------------------------------------------------+
|
|
|
-| Godot 3.0 | January 2018 | |partial| Only critical, security and platform support fixes. |
|
|
|
+| Godot 3.0 | January 2018 | |eol| No longer supported (last update: 3.0.6). |
|
|
|
+-------------+-------------------+--------------------------------------------------------------------------+
|
|
|
-| Godot 2.1 | July 2016 | |partial| Only critical, security and platform support fixes. |
|
|
|
+| Godot 2.1 | July 2016 | |partial| Only critical, security and platform support fixes |
|
|
|
+| | | (last update: 2.1.6). |
|
|
|
+-------------+-------------------+--------------------------------------------------------------------------+
|
|
|
-| Godot 2.0 | February 2016 | |eol| No longer supported. |
|
|
|
+| Godot 2.0 | February 2016 | |eol| No longer supported (last update: 2.0.4.1). |
|
|
|
+-------------+-------------------+--------------------------------------------------------------------------+
|
|
|
| Godot 1.1 | May 2015 | |eol| No longer supported. |
|
|
|
+-------------+-------------------+--------------------------------------------------------------------------+
|
|
@@ -57,30 +116,30 @@ for each Godot version:
|
|
|
.. |unstable| image:: img/unstable.png
|
|
|
|
|
|
**Legend:**
|
|
|
-|supported| Full support -
|
|
|
-|partial| Partial support -
|
|
|
-|eol| No support (end of life) -
|
|
|
+|supported| Full support –
|
|
|
+|partial| Partial support –
|
|
|
+|eol| No support (end of life) –
|
|
|
|unstable| Development version
|
|
|
|
|
|
Pre-release Godot versions aren't intended to be used in production and are
|
|
|
-provided on a best-effort basis.
|
|
|
+provided for testing purposes only.
|
|
|
|
|
|
.. _doc_release_policy_when_is_next_release_out:
|
|
|
|
|
|
When is the next release out?
|
|
|
-----------------------------
|
|
|
|
|
|
-While Godot contributors aren't working under any deadlines, there's usually a
|
|
|
-major or minor Godot release made available every year. Following this trend,
|
|
|
-this means Godot 4.0 will most likely be released in **2021**.
|
|
|
+While Godot contributors aren't working under any deadlines, we have
|
|
|
+historically had one major or minor release per year, with several maintenance
|
|
|
+updates between each.
|
|
|
|
|
|
-Patch releases are made available more frequently, typically every 2-6 months
|
|
|
-while a release is fully supported. Partially supported releases will only have
|
|
|
-new patch releases once an important security or platform support fix has been
|
|
|
-merged.
|
|
|
+Starting with Godot 3.3, we aim to accelerate our development cycles for minor
|
|
|
+releases, so you can expect a new minor release every 3 to 6 months.
|
|
|
|
|
|
-.. seealso::
|
|
|
+Maintenance (patch) releases will be released as needed with potentially very
|
|
|
+short development cycles, to provide users of the current stable branch with
|
|
|
+the latest bug fixes for their production needs.
|
|
|
|
|
|
- The `roadmap <https://github.com/godotengine/godot-roadmap>`__ repository
|
|
|
- documents features that have been agreed upon and may be implemented in future
|
|
|
- Godot releases.
|
|
|
+As for the upcoming Godot 4.0, we can only say that we aim for a **2021**
|
|
|
+release, but any closer estimate is likely to be hard to uphold. Alpha builds
|
|
|
+will be published as soon as the main features for Godot 4.0 are finalized.
|