Flow PHP - Release Cycle
As of writing this article, Flow PHP is at version 0.11.0
, consisting of over 26 independent repositories, developed within a monorepo.
Up until now, the release cycle hasn’t been standardized in any way and has largely relied on gut feeling. A gut feeling of "that’s enough" or "not yet"...
New Release Cycle
From this point onward, we will aim to release Flow PHP once every 2 weeks.
This cycle won’t change until the release of version 1.0
, which doesn’t yet have a scheduled
date.
Although Flow PHP doesn’t yet have a stable1.0
release, there shouldn’t be any issues with using it in production.
The only recommendation is to avoid relying on the1.x-dev
version.
Exceptions to the rule of releasing a new version every 2 weeks are critical security fixes and bug fixes.
In the case of critical security patches, a new version will be released immediately.
The same applies to more problematic bugs.
For now, all 0.x.x
tags are published on the 1.x
branch. As a result, if
several changes are introduced and are awaiting the next release, a situation might arise that
forces us to release a new version earlier than planned.
This will shift the next release to realign with the 2-week cycle.
In the case of critical bugs or security issues that can’t wait for the next release,
we’ll aim to publish them as patch
releases, such as 0.11.1
or 0.11.2
.
Upcoming Releases
Date | Version | Branch |
---|---|---|
2025-03-17 | 0.12.0 | 1.x |
2025-03-31 | 0.13.0 | 1.x |
2025-04-14 | 0.14.0 | 1.x |
2025-04-28 | 0.15.0 | 1.x |
2025-05-12 | 0.16.0 | 1.x |
... | 0.x.0 | 1.x |
.... | 1.0.0 | 1.0 |
How to Treat Specific Releases
Until the release of version1.0
, all releases are considered beta. This means the API may still change.
We’re doing our best to minimize API changes and maintain documentation of those changes, which should make migrations between versions smoother.
How to understand releases
-
x.0.0
- A major release that introduces new features and API changes.
After the1.0
release, only major releases will be allowed to introduce API changes. -
0.x.0
- A minor release that introduces new features,but doesn’t change the API. These releases will occur every 2 weeks.
Until the1.0
release, allx.1.0
releases may introduce API changes. -
0.0.x
- A patch release that introduces bug fixes.
If a bug is critical or involves a security issue, a0.0.x
release will be published immediately. For minor bugs, fixes will be published every 2 weeks with the next stable release.
Heads up
If you still decide to use the 1.x-dev
version, you should be aware that
changes introduced between the two-week releases might be completely removed or entirely altered.
We recommend setting the requirement in your composer.json
file to ~0.11.0
, which
will prevent
automatic updates beyond the 0.11.x
versions.
To automate the update process, you can use tools like Dependabot or Renovate.
These tools will automatically create a pull request with the update to version 0.12.0
once
it’s released,
also showing the changes introduced between versions.
If you decide to use the 1.x-dev
version, you should be aware that you should also require
all dependencies of given package to be on the 1.x-dev
version.
Otherwise you might get flow-php/etl:1.x-dev
but flow-php/filesystem:0.11.0
.