2023-01-12 20:49:14 +01:00
|
|
|
|
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
2024-04-20 16:21:44 +02:00
|
|
|
|
# Pandemonium release policy
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
2024-03-16 20:56:52 +01:00
|
|
|
|
Pandemonium's release policy is in constant evolution. What is described below is
|
2022-09-10 12:15:58 +02:00
|
|
|
|
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.
|
|
|
|
|
|
2024-04-20 16:21:44 +02:00
|
|
|
|
## Pandemonium versioning
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
2024-03-16 20:56:52 +01:00
|
|
|
|
Pandemonium loosely follows `Semantic Versioning ( https://semver.org/ )` with a
|
2023-01-12 19:43:03 +01:00
|
|
|
|
`major.minor.patch` versioning system, albeit with an interpretation of each
|
2022-09-10 12:15:58 +02:00
|
|
|
|
term adapted to the complexity of a game engine:
|
|
|
|
|
|
2023-01-12 19:43:03 +01:00
|
|
|
|
- The `major` version is incremented when major compatibility breakages happen
|
2022-09-10 12:15:58 +02:00
|
|
|
|
which imply significant porting work to move projects from one major version
|
|
|
|
|
to another.
|
|
|
|
|
|
2024-03-16 20:56:52 +01:00
|
|
|
|
For example, porting Pandemonium projects from Pandemonium 2.1 to Pandemonium 3.0 required
|
2022-09-10 12:15:58 +02:00
|
|
|
|
running the project through a conversion tool, and then performing a number
|
|
|
|
|
of further adjustments manually for what the tool could not do automatically.
|
|
|
|
|
|
2023-01-12 19:43:03 +01:00
|
|
|
|
- The `minor` version is incremented for feature releases which do not break
|
2022-09-10 12:15:58 +02:00
|
|
|
|
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.
|
|
|
|
|
|
2024-03-16 20:56:52 +01:00
|
|
|
|
The reason for this is that as a game engine, Pandemonium covers many areas such
|
2022-09-10 12:15:58 +02:00
|
|
|
|
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.
|
|
|
|
|
|
2023-01-12 21:01:51 +01:00
|
|
|
|
Tip:
|
|
|
|
|
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
2023-01-12 19:43:03 +01:00
|
|
|
|
- The `patch` version is incremented for maintenance releases which focus on
|
2022-09-10 12:15:58 +02:00
|
|
|
|
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.
|
|
|
|
|
|
2023-01-12 21:01:51 +01:00
|
|
|
|
Tip:
|
|
|
|
|
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
|
|
|
|
Updating to new patch versions is therefore considered safe and strongly
|
|
|
|
|
recommended to all users of a given stable branch.
|
|
|
|
|
|
2023-01-12 19:43:03 +01:00
|
|
|
|
We call `major.minor` combinations *stable branches*. Each stable branch
|
|
|
|
|
starts with a `major.minor` release (without the `0` for `patch`) and is
|
2022-09-10 12:15:58 +02:00
|
|
|
|
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
|
2023-01-12 19:43:03 +01:00
|
|
|
|
`3.3` Git branch).
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
2023-01-12 20:55:57 +01:00
|
|
|
|
Note:
|
|
|
|
|
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
2024-03-16 20:56:52 +01:00
|
|
|
|
As mentioned in the introduction, Pandemonium's release policy is evolving, and
|
|
|
|
|
earlier Pandemonium releases may not have followed the above rules to the letter.
|
2022-09-10 12:15:58 +02:00
|
|
|
|
In particular, the 3.2 stable branch received a number of new features in
|
2023-01-12 19:43:03 +01:00
|
|
|
|
3.2.2 which would have warranted a `minor` version increment.
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
2024-04-20 16:21:44 +02:00
|
|
|
|
## Release support timeline
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
|
|
|
|
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 was the case for the 2.1 branch, and will be the case for
|
2024-03-16 20:56:52 +01:00
|
|
|
|
the latest 3.x stable branch by the time Pandemonium 4.0 is released.
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
|
|
|
|
In a given minor release series, only the latest patch release receives support.
|
|
|
|
|
If you experience an issue using an older patch release, please upgrade to the
|
|
|
|
|
latest patch release of that series and test again before reporting an issue
|
|
|
|
|
on GitHub.
|
|
|
|
|
|
|
|
|
|
**Legend:**
|
2024-04-20 16:21:44 +02:00
|
|
|
|
![supported](img/supported.png) Full support –
|
|
|
|
|
![partial](img/partial.png) Partial support –
|
|
|
|
|
![eol](img/eol.png) No support (end of life) –
|
|
|
|
|
![unstable](img/unstable.png) Development version
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
2024-03-16 20:56:52 +01:00
|
|
|
|
Pre-release Pandemonium versions aren't intended to be used in production and are
|
2022-09-10 12:15:58 +02:00
|
|
|
|
provided for testing purposes only.
|
|
|
|
|
|
2023-01-12 20:49:14 +01:00
|
|
|
|
|
2024-04-20 16:21:44 +02:00
|
|
|
|
## When is the next release out?
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
2024-03-16 20:56:52 +01:00
|
|
|
|
While Pandemonium contributors aren't working under any deadlines, we strive to
|
2022-09-10 12:15:58 +02:00
|
|
|
|
publish minor releases relatively frequently, with an average of two 3.x minor
|
2024-03-16 20:56:52 +01:00
|
|
|
|
releases per year since Pandemonium 3.3.
|
2022-09-10 12:15:58 +02:00
|
|
|
|
|
|
|
|
|
Maintenance (patch) releases are 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.
|
|
|
|
|
|
2024-03-16 20:56:52 +01:00
|
|
|
|
As for the upcoming Pandemonium 4.0, as of August 2022, we are aiming for a *beta*
|
2022-09-10 12:15:58 +02:00
|
|
|
|
release in Q3 2022, and possibly a stable release by Q4 2022 (but experience
|
|
|
|
|
has shown time and time again that such estimates tend to be overly optimistic).
|
2024-03-16 20:56:52 +01:00
|
|
|
|
`Follow the Pandemonium blog ( https://pandemoniumengine.org/news )` for the latest updates.
|