Q: Why did EDD Bookings start at version 0.1, not 1.0?

We follow SemVer - a widely adopted standard for versioning that advocates the use of version numbers that have real meaning. In short, every number of a version reflects how that version is different from the one that came before it.

Every version has three numbers: a major, minor and a patch number. Although sometimes the patch number is omitted when it is zero, as is the case with 0.1 and 1.0. The versions 0.1.0 and 1.0.0 are respectively equivalent.

  • The patch number indicates how many times the product has undergone maintenance changes.
    These include bug fixes, minor text or style changes, and so on.
  • The minor number indicates the number of times the product has had features and significant improvements added to it.
    These include new features, significant UI updates, and other similar changes.
  • The major version indicates how many times the product has undergone major API changes.
    In layman's terms, how many times the product has broken backwards compatibility. This is usually due to a rewrite. or massive refactoring.

We built EDD Bookings from scratch, rather than refactor the previous version. Therefore, we've essentially built a new product that has, so far, not undergone any API changes that broke backwards compatibility.

For this reason, and because we adhere to SemVer, the major version of our product is zero.
On the other hand, we've created a product that is being released with an initial set of features, so the minor version should be one.

Therefore, we're starting our versioning at 0.1 and not at 1.0.
SemVer also states that between 0.1, 0.2, 0.3 and so on, the product is allowed to break backwards incompatibility until it has matured and reached a point of stability. At that point, the product may versioned as 1.0, to signify that it has reached its first stable version. While we aren't planning to break backwards compatibility between the minor versions that lead up to 1.0, if the need arises we will be providing measures and tools to ensure that your existing data is kept intact.