Release Information for Versions 2.0 of Spartacus Libraries
Final 2.0 released June 3, 2020!
Last updated June 3, 2020 by Bill Marcotte, Senior Product Manager, Spartacus
- Release 2.0
- About Spartacus Releases
- How Spartacus is Versioned
- Upgrading Spartacus Libraries to a New Minor Version
- Future Releases
This document describes what is included in all Spartacus 2.x libraries since 2.0.
For release information about Spartacus 1.x, see Release Information for Versions 1.0-1.5 of Spartacus Libraries in our version 1.x documentation archive.
Note: Spartacus 2.x requires Angular 9. For more information, see Updating to Version 2.0.
- For information on specific code changes for a particular release, see the Development Release Notes.
- For information about features published in pre-release libraries, see Pre-Release Information.
- For information about upgrading, see Upgrading Spartacus Libraries to a New Minor Version.
- If you have technical questions, you can get in touch with us on Stack Overflow. For non-technical questions, you can reach us on our Slack workspace. Feedback welcome!
Disclaimer - Forward-Looking Statements
This document contains or may contain forward-looking statements. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions. Any information is subject to change for any reason without notice. The information in this document is not a commitment, promise or legal obligation to deliver any material, code or functionality. This document is provided without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. This document is for informational purposes and may not be incorporated into a contract. SAP assumes no responsibility for errors or omissions in this document, except if such damages were caused by SAP’s intentional or gross negligence.
The various documentation links provided point to SAP Commerce Cloud platform or Accelerator documentation or third-party external links. These links are included for information purposes only and may not reflect exactly what is implemented in Spartacus.
Release 2.0.0 libraries published June 3, 2020
As Release 2.0 is a new major version, it contains breaking changes. To migrate to 2.0 from 1.x, see the following documentation:
- Updating to Version 2.0 (automated update using schematics)
- Technical Changes in Spartacus 2.0
- Changes to Styles in 2.0
The following is a summary of the major changes introduced in 2.0:
- Framework updated to Angular 9, including related dependencies such as ngrx 9
- Schematics updated
- Accessibility Keyboarding features
- Lazy loading of CMS components
- Event Service, with Add to Cart event
- State Persistence
- Custom Angular URL Matching
- Many components refactored
- New facet navigation makes extending facets easier
- Deprecated code removed
For a detailed list of all changes for 2.0 and previous ‘next’ releases of the Spartacus libraries, see the Spartacus project release page on GitHub.
About Spartacus Releases
- Libraries that are “released” are new, official, tested Spartacus libraries available to the public (hosted on npmjs.com)
- We usually publish new libraries every 2 weeks
- A change in minor means we added new features, but they are configured to be off by default, so as not to cause compatibility issues. A new minor also means inclusion of changes or bug fixes that may affect compatibility, but these are also controlled by feature flags. So all significant changes are “opt-in”. See feature flag documentation for more information.
- We will normally publish pre-release libraries labelled ‘next’ a few weeks before a new minor release. The goal is to provide early access to new features and get feedback from the community.
- If you choose not to use a new feature, you should have no problems upgrading to a new Major.# with features flag set to a previous Major.#. If you do see a problem, please report a bug and we’ll assess and fix it. We encourage you to upgrade to latest libraries frequently during development in order to take advantage of bug fixes and new features.
- To be able to use all functionality in Spartacus 2.*, release 2005 of SAP Commerce Cloud is required. The latest patch release is required or at least strongly recommended, as it usually contains bug fixes that affect Spartacus (for example, ASM requires 1905.5 and Save for Later features requires 1905.11). However, Spartacus 2.* also works and is tested with release 1905; Spartacus features that rely on new APIs introduced in 2005 (such as cancellations and returns) are not available.
How Spartacus is Versioned
Spartacus is following semantic versioning (Major.Minor.Patch).
- A new patch release (1.2.3 > 1.2.4 for example) means we added fixes or improvements but no new features.
- A new minor release (1.2.4 > 1.3.0 for example) means we added a new feature and possibly fixes and improvements.
For both patch and minor releases, upgrading to the new libraries should not cause any compatibility problems with your storefront app. (If it does, report a bug.) All new features and fixes are implemented in a compatible way. For example, all new features are disabled by default using feature flags. We hope you will upgrade frequently.
- A new major release (1.3.2 > 2.0.0 for example) means that, besides adding new features and improvements, we made changes that will likely cause compatibility issues. Your app likely needs updating when moving to a new major release. These effects, reasons, and benefits will be documented.
We don’t plan to introduce a new major release that frequently, unless an issue is found that makes it necessary to move to a major release . For example, a new major release of the Angular framework is one factor in our decision to move to a new major for Spartacus.
Upgrading Spartacus Libraries to a New Minor Version
You can upgrade your Spartacus libraries to a new minor version, as follows:
package.json, set your
#is replaced with the release version number you wish to upgrade to.
If you are upgrading from 1.x to the latest 1.5 release in order to then upgrade to 2.x, in
package.json, set your
- Delete your
See the separate roadmap document.