Development cycle and versioning
Many of you have asked me about the version numbers and frequency of Weather Station updates. For some of you this frequency seems too high, and for others the numbering of the versions seems to be a great mystery. So I decided to explain to you what the reasons are for me to develop and release new versions and how I number them. Because, yes, development cycle and version numbering actually follow a logic… and a philosophy!
As you may know, developing Weather Station is for me a hobby. I do it on my free time, the one I have left when I took care of my family, my work and the many activities I do. That means that the time I can devote to it is by definition very variable. For 2 or 3 consecutive weeks, I can devote several hours, then the following weeks, none…
Rather than making very “voluminous” new versions, I decided to make very short cycles of developments. This allows you not to wait several months to have bugs fixed and to enjoy small and medium-sized improvements. This also means that in order to have truly differentiating new features, it will be necessary to wait several cycles for a more important update.
This way of developing punctually and making available as soon as it is ready has a real impact on the number of “small” versions that I release: these versions – which can bring only some bug fixes and improvements – are indeed very close in time… This is why you will see new versions regularly and I can only encourage you to update as soon as a new version is available.
The construction of these development cycles has a strong implication on how to number the versions of Weather Station. And this way of numbering also becomes an imperative for me to follow the development cycles and help me to find myself in the 60000 lines of code distributed in the (almost) 300 files of the plugin – Because, yes, I also version (and in the same way) each file, each class and each method … Who said I’m psychorigide? 😉
The numbering mode of the versions I chose is a bit closer to Tom Preston-Werner’s Semantic Versioning, but a little more “lazy” – a kind of Lazy Semantic Versioning… 🙂
This numbering is in the form
PATCH are positive integers. The meaning of these numbers are:
MAJOR: major version number; an increment of this number indicates a deep update of the interface, features and operation mode of the plugin. An increment of
MINOR: minor version number; an increment of this number indicates new important features but does not imply operation mode or use modification. An increment of
PATCH: patch number; an increment of this number indicates significant fixes and/or improvements to existing features.
So, after a 3.1.2 version, we could find 3.1.3 or 3.2.0 or 4.0.0 version.
For developers or early adopters:
The three numbers composing a version can be followed by
-rcX(where X is a positive integer from 1 to n) in the trunk branch of the WordPress.org source manager. This denotes a pre-version. These two markers mean development preview (
-devX) or release candidate (
-rcX). Thus, for example, the 3.4.0-dev5 version is the 5th development preview of the future 3.4.0 public release and the 3.4.0-rc2 version, the 2nd release candidate of the same future public release.
NB: the trunk branch always shows the current state of development of the plugin. You can only install this version manually. Remember also that development previews may be unstable. In any case, I advise against installing a development preview or a release candidate on a production site: these special versions are only for testing or discovering future features.
If we take the history of the versions of Weather Station over its first 16 months of existence (ie the age it has at the moment when I write this post), one can see that there is a new version every 12 days on average, that a new minor or major version comes every month and that the “lifetime” of a major version is greater than 6 months.
Of course, all that says nothing of what will be the future …
Stay Up to Date
Receive the latest news and updates from Weather Station.