You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Apache Geode can’t really follow Semantic Versioning specification (http://semver.org/)  since even on major releases we don’t break backward compatibility with previous major version. But most principles still apply, such as the model:


[MAJOR].[MINOR].[MAINTENANCE]

 

Where:

 

MAJOR: Releases will have major version increase when there are significant features or functionalities that are considered enough for a major project release. All releases with the same major version number will have API compatibility and those releases will stay stable and in use for a longer period of time. (~1+ year) - Requirements for QA of major releases will include regression and complete performance tests. Voting will be casted on the mailing lists and after consensus a release cycle will be initiated for the major release.


MINOR: Minor releases can contain minor new features and must definitely include significant improvements to current API or components that justify not be configured as maintenance changes.  Minor releases can also be increased if extensions or sub-projects add new features or are updated somehow. 

MAINTENANCE: Maintenance releases can occur more frequently and depend on specific patches introduced (e.g. bug fixes) and their urgency. In general these releases are designed to hot-fixes and bugs.

 

The release schedule for this project is currently TBD.

 

API Compatibility

 

Changes to public classes or APIs should take into consideration backward compatibility with at least the previous major version in order to support rolling updates on a cluster.

 

All changes to the public API must be backwards compatible, with the exception of removing deprecated features. Removing deprecated features also requires discussion. API should be deprecated for a major version before being removed.

 

Geode supports rolling upgrades on a live system. Message serialization and disk persistence must be backwards compatible with previous versions. This includes algorithmic changes that don't affect the serialization format. Geode has a framework for backwards compatible serialization - see Managing backward-compatibility.

 

 

 

 

  • No labels