accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher <>
Subject Re: Accumulo Versions (was Accumulo feature freeze in 1 week)
Date Sat, 26 Oct 2013 01:07:09 GMT
You're right, historically, Accumulo has considered y = major, and z =
minor/bugfix, by convention. This is because our iterative development
process hasn't really lent itself to feature planning for releases.
However, in the quoted thread, I was simply providing a definition of
a term ("minor") when I used it, so that I could not possibly be

However, since we're on the subject. we need to do better than our
previous conventions for versioning... because we need to establish a
better stability in our API contracts. Since not long after we
switched to using Maven, in the early days of the code, we've at least
tried to follow maven conventions, and the semantics of versioning is
one of them. Following it (major.minor.bugfix) more strictly can help
us make API compatibility guarantees that we can actually enforce, and
can help with long-term support.

For instance, we could establish rules like:

No public API changes between minor and bugfix releases (API semantic
changes are okay, if they fix a bug).
Major features are incorporated into major releases.
API compatibility is not guaranteed between major releases (deprecated
methods can be dropped).
Deprecated API must persist as deprecated through at least one major
release before removing.
Minor releases include changes and improvements to existing features,
but not major new features or drastic changes.

I can't say which specific rules we'd want to establish, but having
some in place could definitely ease the conflicts between development
of new features and support for old ones.

Christopher L Tubbs II

On Fri, Oct 25, 2013 at 3:43 PM, Sean Busbey <> wrote:
> On the feature freeze reminder thread, Chris said:
>> I don't mind putting things off to 1.7 (if necessary). But... if 1.6.0
>> isn't sufficiently feature rich, there's not really a reason to
>> release it just yet... until those features are ready. That said, I do
>> think there'll be enough features in 1.6.0 to release it as a minor
>> release, if we're interpreting the version as the standard
>> <major>.<minor>.<bugfix> scheme, even if we end up pushing some
>> off to 1.7.
> I didn't want to derail that thread, but this does not line up with what
> I've seen in Accumulo. (Though I agree that it is a common numbering
> scheme[1])
> The Accumulo release guide[2] doesn't specify how "minor" and "major" turn
> into positions in the version number. However, the git workflow guide[3]
> does, and basically says that Accumulo uses
> x.y.z
> y = major
> z = minor
> This also lines up with my understanding of previous Accumulo releases and
> cross-compatibility amongst them.
> [1]:
> [2]:
> [3]:
> --
> Sean

View raw message