-
Notifications
You must be signed in to change notification settings - Fork 161
Lifecycle
As of 2024-08-20, Cypht has 3 active branches:
- Dev: Master from https://github.com/cypht-org/cypht/commits/master (requires PHP 8.1+)
- Stable: 2.x (requires PHP 8.1+)
- Old Stable: 1.4.x with Long Term Support (LTS) security fixes until 2025-05-01
- Requires PHP 5.6 or 7.0 or 7.1 or 7.2 or 7.3 or 7.4
About the process:
- All commits start in Master. Then, bug fixes and self-contained/low-risk-of-regression/optional features can be backported to the Stable branch
- Security fixes can be backported to Old Stable. Most active developers will focus on Dev and Stable, thus Old Stable will get little attention except for security fixes.
- Releases to the Stable branch can happen at any time (2.1.0, 2.2.0, ...). These releases will generally contain both bugs fixes and non-disruptive (and usually optional) new features, but there could be a 2.1.1 which would be just a bug fix or security fix.
- When there is a significant change, a backward incompatible change or a major refactoring, a new major branch will be created from master and it becomes the new Stable branch. The previous Stable branch is supported (security fixes) for 1 year.
- Historical information: Until 2023, Cypht mostly had just a master branch which was kept quite stable, and infrequent stable releases were made from this, like 1.3.0. But these branches didn't really live / receive bug fixes.
Releases:
- Patch releases 2.0.1, 2.0.2, etc. can be frequent and include bug fixes only
- Minor releases 2.1.0, 2.2.0, etc. might be frequent and include enhancements, new features and fixes
- Major releases like 3.0.0 will happen after significant changes, backward incompatible changes or major refactoring happens.
2.0.x is no longer supported once 2.1.0 is released.
Chronologically:
We will do normally do: 2.0.0 > 2.1.0 > 2.2.0 -> 2.3.0
Exceptionally, we may do: 2.0.0 -> 2.0.1 -> 2.1.0 -> 2.2.0 -> 2.3.0
But we will not do: 2.0.0 -> 2.0.1 -> 2.1.0 -> 2.0.2 -> 2.2.0 -> 2.3.0
I (Marc Laporte) think this follows the general principles of https://semver.org/ If there are any incompatibilities, please indicate in this wiki page.
While there is no predetermined timeline for new major releases, I (Marc Laporte) expect it will happen every 8 to 16 months, because I expect we'll want to make major changes at that frequency. There is a new PHP version every year so sooner or later, we need to bump the requirements and take advantage of modern PHP versions. We also have many planned innovations and at least one of these is bound to trigger a major version. While upgrades will be easy for Cypht standalone users, there will be times where integrators (like how Tiki integrated Cypht) will have to adapt.
Medium term:
- Cypht is the webmail used for Tiki Wiki CMS Groupware. Part of the Tiki community is actively involved in Cypht development. Here is why Tiki picked Cypht (Tiki had a webmail since the early days but it was buggy, lacked features and was not improving.) While Cypht remains an independent project, it is to be expected that Tiki will influence Cypht for future development. For example:
- The Cypht license has been aligned to be the same as Tiki, to facilitate integration and code sharing. It was GPL and became LGPL.
- Minimum requirements for PHP are aligned with Tiki as per this discussion
- We'll converge the dependencies
- Already, Bootstrap 5 was adopted, and the Markdown lib was changed.
Related links
- https://github.com/cypht-org/cypht/issues/982
- Why Long Term Support (LTS) is useful: https://tiki.org/Lifecycle