Skip to content

Development and Version Family Branches

gbadner edited this page Aug 27, 2015 · 2 revisions

Version Families

  • Discuss version families

  • Discuss our per-family branching strategy

Active Development

As an Open Source project, Hibernate simply does not have the resources to maintain and develop multiple families/branches simultaneously. As a project we adopt the guideline that we only actively develop and maintain the most recent stable family branch plus the upcoming family branch while that family is still in development. Really this is no different from most software developers whether Open or Closed Source.

For example if 1.0 is the current stable release family, then the 1.0 branch is actively maintained and developed. For a period of time we would also be actively developing and maintaining the 2.0 branch as the non-stable, in-development family. However, once 2.0 becomes stable (2.0.0.Final is released) we would cease active development of 1.0.

Red Hat support offerings

Red Hat offers support for Hibernate as part of many of its product offerings. The support timeframe for these Red Hat product offerings is many years. This has an impact on the "active development" strategy.

Above we gave the example of the 1.0 branch no longer being actively developed after 2.0 becomes stable. However if Red Hat has included 1.0 in one of these product offerings then we may need to fix bugs found in the products during that product support timeframe. So we do continue to apply fixes to that 1.0 branch, but in a very limited way.

First we only fix bugs. We do not apply new features. We do not apply enhancements.

Second, we never apply changes to any API or SPI.

Third, the bug must be critical or come from a Red Hat customer case.

The focus in the Red Hat support offerings is stability. Ideally only critical bug fixes are included. This helps ensure "enterprise-class stability".