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

Compare with Current View Page History

« Previous Version 2 Next »

ZooKeeper Release Management Process

This document is currently a work in process and should not be considered authoritative.

This document describes the release management process for ZooKeeper.

Release Numbering

ZooKeeper uses a major.minor release numbering. A change in the major number means that the release includes some substantial changes from the previous version such as the introduction of new protocols, new formats, major new functionality, etc. A minor release includes new features and fixes from the main line development branch, referred to as trunk. The first release of the major.minor version of the code, will be called major.minor.0, where 0 designates a fix number. Bugs found after the release of major.minor.0 may need to be incorporated into the major.minor series, which will result in a new fix release. Fix releases are meant for bug fixes and should not include new functionality unless it is necessary to fix a bug.

Backward Compatibility

All fix releases to a major.minor release should be backwards compatible. Otherwise we do one major.minor release backward compatibility: a major.minor release of ZooKeeper must be backwards compatible with the previous minor release, major.(minor-1); a new major release, major.0, must be backwards compatible with current minor release for the previous major number.

Here are some examples of backward compatibility:

Old release

New release

Must be compatible

1.1.0

1.1.3

yes

1.1.1

1.1.x

yes

1.1.2

1.2.0

yes

1.1.x

1.2.y

yes

1.1.1

1.3.0

no

1.3.2

2.0.0

yes if 1.3.2 was the current release when 2.0.0 was released

Code Changes

Changes will be done against trunk. Patch contributors make their patches with respect to trunk. The only exceptions to this would be in the case of a bug fix that was only in a fix release and not in trunk or for a backport of a bug fix to a fix release.

Release Manager

Every Release will have a Release Manager. A committer proposes to manage a new release. Once the proposal is approved according to the ZooKeeper Bylaws, the committer becomes the Release Manager for that release. If the Release Manager is starting a new minor release, they will create a new major.minor branch in subversion and begin collecting changes into that branch to form a release. Although the release manager determines what is included in the release, the release must be approved according to the Bylaws.

Although the Release Manager may change between every fix release in a major.minor series of releases, it is desirable that the same Release Manager manage all of the fix releases in a major.minor series.

  • No labels