Version Reference - McSherry/AppsAgainstHumanity GitHub Wiki

This page details all the currently released, planned, and obsoleted versions of Apps Against Humanity there are. This page also contains the official list of version identifiers, to be used with the META command to allow both client and server to perform version identification.

Version List

Development Stages

  • Planned – This version currently exists only on paper.
  • Alpha – This version is in early development.
  • Beta – This version is reasonably far into development.
  • Release Candidate (RC) – This version has no fatal flaws, and is a near-accurate representation of the next release.
  • Production – This version has been released, and has no known gameplay-impeding flaws.
Version Released Stage Tag NetSpec Additional Information
0.1.0 Unreleased Alpha 0.1

As said before, the patch versions of compatible clients and servers may differ.

Version Structure

The version number used by Apps Against Humanity follows a set structure. This section describes the structure of this version number, and any additional and relevant bits of information. Versions numbers are of the structure MAJOR.MINOR.PATCH[-EXTRA].

Major Version

A change in the major version indicates a substantial change, such as a rewrite of the application. The major version 0 is used for releases prior to the first feature-complete version.

Minor Version

The minor version is incremented each time a significant change is introduced. This may be the introduction of new features, or any other change which may break compatibility with other versions.

Patch Version

The patch version is used to indicate a change to the internals of the software which does not cause a break in compatibility between other versions. Clients and servers supporting the same minor and major versions may have differing patch numbers.

Extra Information

The extra information section of a version number is optional and is usually used to denote an in-development version following the use of 1 or greater as a major version. For example, if v1.5.2 is the current production release, v1.6.0-b.258 might be a beta version of the software.

Version Identifiers

Identifiers are formed via a simple system. Given a version of the form MAJOR.MINOR.PATCH, the identifier is equal to (10000 * MAJOR) + (100 * MINOR) + PATCH. A difference of 10^2 between each number means that it is extremely unlikely any overlap will occur, and so both client and server can simply check to see whether the version number given to them is greater than their own to determine whether they are communicating with something running a later version. For example, v1.2.3 gives the identifier 10203.