Long Term Support

Current Release and LTS Policy

The past was well built and the future is bright. 

Apostrophe 4: state of the art meets stability

Apostrophe 4.x is a long-term support release.

Apostrophe 4.x makes developing and managing digital experiences with Apostrophe friendlier, faster, and more maintainable. Version 4.x is a Long Term Support release.

Version 4.x emphasizes a modern frontend architecture for the administrative interface, powered by Vue. 4.x also emphasizes support for modern JavaScript patterns like promises and async/await.

We commit to supporting the Apostrophe 4.x series until at least May 2027, with adle to those with a support agreement.

Apostrophe 3: stability + migration

The difference between Apostrophe 3.x and 4.x is not a large one. Apostrophe 4.x upgrades the admin UI from the no longer supported Vue 2.x series to the Vue 3.x series. Migration is straightforward and well-documented with no changes required at all outside of custom admin UI code. However, because this change involves some effortfor those who have customized the admin UI, we have committed to support the 3.x series with basic updates and address any serious security concerns stemming from the use of Vue 2.x until May 2025.

Apostrophe 2: time upgrade

Apostrophe 2.x was a long-term support release. 

We provided full support from 2016 until 2023. In addition, maintenance will continue until at least the end of 2025 for those who wish to purchase an Apostrophe Enterprise Support SLA. We encourage all users of Apostrophe 2.x to migrate to 4.x as soon as practical.

Support for Apostrophe 0.5

Apostrophe 0.5 was a previous release of Apostrophe for the node.js platform. We provided critical security fixes for Apostrophe 0.5 until September 1st, 2018. Minimal transitional support remains available to those who wish to purchase an Apostrophe Enterprise Support SLA. A migration plan to 4.x is necessary. Legacy documentation is available here.

Semantic Versioning Guide

Apostrophe favicon

 

Semantic versioning is a philosophy that says that each backwards-incompatible change should trigger a new major version number. It's a good policy because it makes it safe to use npm dependencies to install Apostrophe.

We follow semantic versioning, with the following caveats:

  • We began our semantic versioning policy with 2.0.0 to avoid confusion with an older PHP-based version of Apostrophe. In the future we will increment the major version number normally.
  • The addition of new option properties to the options object of a core Apostrophe type or module will not trigger a new major version number, which may impact you when extending modules. If you are concerned about conflicts, use a unique prefix for your own options.
  • The addition of new methods to a core Apostrophe type or module will not trigger a new major version number, which may impact you when extending modules. If you are concerned about conflicts, use a unique prefix for your own methods.
  • The addition of new, optional arguments to existing methods of core Apostrophe types or modules will not trigger a new major version number.
  • While we don't anticipate an issue similar to the Vue 2 to Vue 3 transition during the lifetime of Apostrophe 4.x, if a similar situation arises, it may be necessary for us to make a new major version release that impacts custom admin UI but has no unrelated incompatible changes. In such a situation we would once again provide one year of support for the previous major release due to the relatively small migration effort.
  • Also, just to be clear: bugs are bugs and may be fixed in a "patchlevel" release, no matter how used to them you may be. But, we'll aim to be reasonable about this.

The following are examples of things that would trigger a new major version number:

  • Changing the arguments of an existing Apostrophe core method such that existing calls will fail.
  • Removal of a core module (an Apostrophe module that ships with the `apostrophe` npm module).  

So in new projects, set your npm dependencies to ^4.0.0 (or specify a minimum minor and patchlevel version too, that's fine), type "npm update" often, and follow the above advice to be safe.