When do we patch

What is a major release?

A major release (task 1.0, task 2.0) is made when significant internal or user-visible changes are made. Major releases represent architectural changes. Don't expect many of these.

What is a minor release?

A minor release is much more common, and made when new features and capabilities are added. Every major or minor release adds capabilities to task. This is the main focus of the development effort - to generate more minor releases. Note that although bugs are fixed in minor releases, they are not the reason for the release. A minor release is made on a schedule that is determined by development.

What is a patch release?

A patch release (example, 1.7.1 was a patch release to 1.7.0) is made to fix a critical bug. Features are not added in patch releases, only fixes. A patch release is made on a schedule that is determined by need.

A scenario helps in this case - consider a minor release that has been made (a hypothetical 1.9.0), and a bug report is submitted. This bug states that a word is misspelled in the help text. This is not a critical bug because it doesn't prevent anyone from using task. The bug is entered as a low priority bug, and the fix will be made in the next minor release.

Now a second bug report is submitted. This one is more severe - suppose that it is suddenly not possible to remove a priority from a task using "task <id> pri:". This is an important bug, and affects functionality, but suppose also that the "task <id> edit" command is able to remove the priority from the task. This constitutes a workaround that restores the functionality. This bug is entered as a medium priority bug, and the fix will be made in the next minor release.

Finally a third bug is submitted. This one is critical, because it causes a task crash when a certain task is entered, and there is no workaround. This bug will be fixed immediately, and a patch release (hypothetically 1.9.1) is made that include all three bug fixes.

Should another critical bug with no workaround be reported, then another patch release (hypothetically 1.9.2) will be made.

What about a beta release?

These are infrequent, but do exist sometimes. Usually these are for verifying quality on a platform that we don't have direct access to.

What about a daily development snapshot release?

There aren't any, and there won't be any. I don't think there is anyone out there that wants to install task every day. Furthermore I don't think there is anyone out there willing to expose themselves to the latest and greatest bugs. The only folks who might want the absolute latest version are developers, and they already know how to get up-to-the-second current copies direct from the code repository.

Also available in: HTML TXT