CAP Release Schedule
New major versions of CAP will be released every 12 months, in April 2021, 2022, and so forth. Active CAP-based projects are strongly recommended to adopt new majors as soon as possible, as former releases will receive critical bug fixes only. This schedule gives a reliable basis for planning adoption accordingly.
Yearly Major Releases
CAP releases are linked to the Node.js Release Schedule: New major releases are triggered by end of life of Node.js LTS releases, as depicted in the following figure. Active releases always only support the two Active and Maintenance LTS versions of Node.js.
Example: CAP v5
- Was released in April 2021, when Node.js 10 reached end of life
- Dropped support for Node 10, as that became out of maintenance
- Supports Node 12 and Node 14
Major version upgrades may incorporate breaking changes to public APIs, yet we will avoid that as much as possible. Public APIs are explicitly documented in public and official docs only – that is capire; excluding tutorials, sample code, blogs, or similar.
Individual components of CAP can have independent major, minor, and patch version numbers. Yet, all major version upgrades will be synchronized to the yearly major version upgrades of CAP overall, without intermediate major version upgrades of individual components in between.
Monthly Minor Releases
Releases in Active status are equal to the latest development branches of CAP components, hence receiving ongoing feature development. Such new features are published in monthly minor releases, with accompanying Release Notes.
Minor version upgrades come without breaking changes to public APIs. They may incorporate breaking changes to undocumented, hence private interfaces though, which should never be used in projects using CAP.
In between official releases, we publish new patch versions or minor version updates of individual CAP packages to npmjs.com or to Maven. These can also include code for new features, which are not considered public until subsequent releases with according documentation, nor will they be active by default.
Active Release Status
New major releases enter Active status on date of release.
- Receive updates with new features, in monthly minor releases
- Receive support for new versions of platform services, including databases
- Receive support for new major versions of Node.js and Java
- Receive support for new major versions of 3rd party libraries
- Receive all kinds of fixes in minor and patch releases/hotfixes
CAP-based projects are strongly recommended to adopt latest CAP majors as soon as possible during their development cycles to benefit from these updates.
Whenever new major CAP versions are released, former majors move to Maintenance status, receiving critical bug fixes only for a period of 12 more months max. After this they reach end of life.
Releases in Maintenance status:
- don’t receive updates with new features at all
- don’t receive support for new versions of platform services or databases
- don’t receive support for new versions of Node.js and Java
- don’t receive support for new versions of 3rd party libraries
- don’t receive fixes for minor bugs and gaps
In essence, critical bugs are security incidents, and bugs showing up in customer usages of already developed and shipped applications. Gaps and bugs detected in new developments with functional enhancements are not considered critical bugs.
End of Life Status
After 12 months in Maintenance status former releases reach End of Life. They don’t receive any fixes at all from that point on – all bug reports are rejected by default. Projects sticking to End of Life versions of CAP must ensure to also stick to non-changing environments, that means:
- Freeze on old Node.js versions, only patch updates allowed
- No updates of platform services or databases beyond hotfixes
- No updates of 3rd party libraries beyond patch versions
- No new development beyond hotfixes
In essence, projects sticking to End of Life releases of CAP can continue to run ‘as is’, but should not be touched beyond hotfixes and cosmetic changes.
As stated already, projects using CAP are recommended to upgrade to latest active versions as soon as possible.
Assumed a project is planned to have a big go-live release R1 to customers (RTC) in May 2022, the project’s dev schedule might look like that:
- Current development for R1 is on CAP v5
- Dev close for R1 in March/April 2022 → intensive testing
- Start of R1.1 dev cycle in parallel on CAP v6
- Release of R1 in May 2022 on CAP v5
- Main development for R1.1 on CAP v6
- Release of R1.1 in September 2022 on CAP v6
In general, upgrading as soon as possible does not mean that deployed applications need to upgrade, they continue to run with latest frozen versions, of course. Also near-term go-lives should not be endangered by adopting new major versions. But all forward-looking development should happen on Active releases only.