Search code examples
hadoopversionrelease

What are the differences between "generally available", "production ready", "stable" and "latest/current" in Apache Hadoop?


When describing the state of a version of a software product, what are the differences between "generally available", "production ready", "stable" and "latest/current"?

I met these terms in Apache Hadoop website, when trying to choose the right version/release/distribution (the three words are also confusing to me) to download:

https://hadoop.apache.org/docs/r3.2.0/

Apache Hadoop 3.2.0 incorporates a number of significant enhancements over the previous stable minor release line (hadoop-3.1). This is the first release in 3.2 release line which is not yet generally available (GA) or production ready.

https://hadoop.apache.org/docs/r3.1.2/

Apache Hadoop 3.1.2 incorporates a number of significant enhancements over the previous major release line (hadoop-2.x). This release is generally available (GA), meaning that it represents a point of API stability and quality that we consider production-ready.

https://hadoop.apache.org/docs/r2.9.2/

Apache Hadoop 2.9.2 is a point release in the 2.x.y release line, building upon the previous stable release 2.9.1.

and http://hadoop.apache.org/docs/stable/ and http://hadoop.apache.org/docs/current/ both refer to https://hadoop.apache.org/docs/r2.9.2/


Solution

  • TLDR: Usually production-ready, stable and generally available are just synonyms, but every team's definitions can be slightly different.

    Every developer team has its own statement of these terms, but usually they can be described as:

    • Release Candidate (RC): This version is better than beta-version. It is not crashing every hour and common users can use it, if they want. Of course there will be bugs but they will not appear enough times to be really annoying. But enterprise users should not use it because it is not SO stable for them. Some software has no RC, it upgrades from beta-versions to GA/Production-ready versions.
    • Generally Available: It is the improved version of RC, with many bugfixes (that was found by those who used RC), suitable for production-ready work. Usually GA and production-ready are just synonyms. Most software call these releases stable, but some software defines stable as:
    • Stable: Sometimes this word means not just production-ready version, but a version with nearly no bugs, super-stable that can be used within years. But mostly it is just a synonym for GA/PR.
    • Current: Usually it is the synonym for development version, with the newest features (and the newest bugs, heh :) ). Note, that if a software has several main versions (like Python2/3), current version is often set to the most popular or most stable version.

    In Hadoop case:

    • There is no versions that has RC in their names, but some versions are used as RC, like 3.2.0.
    • GA, stable and production-ready are just synonyms.
    • Current version is set to the last stable version of Hadoop 3.x branch.