Skip to content
Marc Laporte edited this page Aug 21, 2024 · 35 revisions

As of 2024-08-20, Cypht has 3 active branches:

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:

Related links