The Release Cycle

The most fundamental aspect to understanding the release cycle is understanding how FMSLogo version numbers work. FMSLogo uses three numbers for its version number, separated by dots, as in:

FMSLogo major.minor.bugfix

For example, FMSLogo 6.10.1 has a major version of 6, a minor version of 10, and a bugfix version of 1. In addition, there are "developer snapshots" versions that are not publicly released. Developer snapshots may be completely untested. Developer snapshots are distinguished from "official" revisions by appending a "+" character to the most recent revision.

A change to the bugfix version is required by any of the following:

  • Fixes for significant regressions introduced in the latest minor or bugfix revision
  • Minor improvements to the manual
  • Performance improvements

A change to the minor version is required by any the following:

  • A minor change to the look and feel of the user interface
  • A minor change usage paradigm of the user interface
  • Major changes to the manual
  • Fixes for long-standing bugs, however significant
  • Fixes for minor regressions
  • Small, new features
  • Incompatibilities in Logo programs that only require simple changes to get the program to run properly again

A change to the major version is required by any of the following:

  • A significant change to the look and feel of the user interface
  • A significant change usage paradigm of the user interface
  • Incompatibilities in Logo programs that require significant rework to get the program to run properly again

Before I release any new version of FMSLogo, I run it through a regression test suite, on both Windows XP and Windows 95. This includes automated tests, manual tests, and testing that the "extras" still work correctly.

I release a new minor version of FMSLogo about every three months, somewhere near the middle of the month. I release a new bugfix version only when necessary. Due to the amount of time required to test each version of FMSLogo, I only release a bugfix version to address problems that can't wait until the next minor revision. In other words, if I release a bugfix version, it's because I did something very bad in the previous release.