The current version of the Backblaze Computer Backup and Backblaze Business Backup applications is being updated to 4.3.0.1 on the PC and 4.3.0.2 on the Mac.
The list of fixes, changes, and updates is as follows:
- Update the version number to 4.3.0.
- Roll the build number back to start at 1.
- End of list.
If you are the curious type, you might have a question or two as to why we updated the version number and build number and nothing else. Here’s the story…
The tale begins over nine years ago as Brian, Damon, and others were crafting the code that would become Backblaze Computer Backup 1.0. In the furious development cycles that usually accompany a version 1.0 product, some decisions are made that will have to be reconsidered at a later time. That’s normal. So why does that matter? We’ll start by breaking down a version number, for example, 4.2.0.989. Each version number is divided into four separate parts:
- The “4” is the major release number and changes to this number are owned by Marketing. It reflects a major change to the product with lots of updates and added functionality. Marketing people get really excited when this number changes as they have lots to talk about.
- The “2” is a minor release and changes to this number are also owned by Marketing. It reflects a minor change to the product that is usually limited to minor enhancements and updates to existing features. It is a marketing faux pas to get too excited about minor changes, but you still need to communicate the update to customers.
- The “0” is a fix release and changes to this number are owned by Engineering. They change this number when they add a small fix to the product, like correcting a misspelled word or updating a graphical element. For example, the Backblaze flame icon on Mac Retina displays looks squished and needs a quick code update to fix it.
- The “989” is the build number and changes to this number are owned by Engineering. Each time the engineering group does a build during the development process, this number is incremented. The build number is at the core of this update.
Each of the four parts of the version number is something we decide; there is no concept of version number addition that underlies everything. For example, if we have a product version of 9.9.1.123 and we issue a minor release update, then the new release can be 9.10.1.123. We don’t have to “carry the one” to the left. We can also jump numbers, going from 4.2.0 to 5.0.0 all at once, for example. It all depends on what we think has changed in the product each time we announce the latest version.
The Build Number
Nine years ago, when Brian and Damon were building the first version of Backblaze, it was incomprehensible for them to think they would have to build another 999 versions, but here we are.
Building a thousand versions of anything seems ridiculous, but first consider that we have two platforms, Mac and PC, and they have different build numbers. PC build numbers are odd numbers and Mac build numbers are even. That makes it about 500 builds for each platform, although many of those builds are not made public. Why?
Let’s say the PC client development group is working on build 631. Each developer turns in their code, and build 631 is built. This is the first time all that code is together. While integration testing was done prior to the build, sometimes things don’t quite play nicely together once a build occurs, so it’s on to build 633, then 635, and so on. It could easily be build 661 that eventually gets published as a public release.
The Backblaze client software also integrates with our backend servers and our website. Different teams work on these systems and sometimes, even if the client code is perfect, it doesn’t mesh with the server code and something breaks. This usually entails a meeting or two to discuss the issue and sometimes a new client build is the answer.
So after nine plus years, we’ve used nearly 1,000 build numbers.
Just Use a Four Digit Build Number
Using four digits may seem like the obvious answer, but nine years ago, the decision was made to use three digits for the build number. There is no fourth digit to use. There’s another thing to know. When you update from one version of the product to another, you can only go up in version numbers—not down. So going from 4.2.0.990 to 4.2.0.998 is OK, but going from 4.2.0.990 to 4.2.0.2 will not work. This seems logical, but it plays a part in the four digit dilemma, as we’ll see.
Suppose we change the code in the product today so the build number can be four digits. That change is only in the product versions built from that point forward. None of the existing copies of the product in the field would understand four digits. When they got to build 999 and were told the next version was 1001, they would only see version 001 (three digits). Determining that 001 is less than 999 they would not go backward and as a consequence, they would not update to the next version.
We could build, for example, version 995 with the four digit code changes and then get everyone to upgrade to build 995. That would be nirvana, but in practice it would create a ton of headaches. Why? Not everyone updates their copy of Backblaze to the latest version. Crazy, I know, but true. Even when we auto-update everyone, there are some laggards.
One reason for the laggards is anti-virus programs. We have a good relationship will all the major anti-virus vendors. We sign our binaries and follow all the rules for a good application. Still, there are some lesser-known anti-virus vendors that just don’t care. They won’t allow Backblaze to be updated at all or at the very least without extensive user intervention. If the user doesn’t take the actions needed, the Backblaze update is not installed. Whether it is because of an anti-virus block or some other reason, older versions of the Backblaze application are out there. That means if we produced the magical version 995 noted above, some customers would not update to it. Knowing that, if we did go to a four digit build number, those laggards would not be able to update to the latest version—ever.
Three Digits It Is
Based on the way the update process works, you may be confused as to why changing the version number from 4.2.0.990 to 4.3.0.2 would work. It is because we evaluate the version number from left to right to decide which one is newer. For example, 5.0.0.2 is newer than 4.5.1.990 as the first part is greater and the update works. This means that changing from 4.2.0.990 to 4.3.0.2 would update as the “3” in the second part of the version number is greater than the “2.”
Why not just change the version from 4.2.0.990 to 4.2.1.2? We considered doing this, but thought the build number (the fourth part of the version number) rolling over would be noticed and we wanted to make sure people understood the change. We decided to treat this release like a minor product update and let marketing do their thing. We could have decided this was a major product update and pushed the version to 5.0.0.1, but we thought that was a bit over the top.
So, after nine years, 1,000 builds, and over 1,000 words in this blog post, it is time to start over—4.3.0.1 and 4.3.0.2 are here. We are now ready for another nine years of product builds with actual updates and fixes in them. Enjoy.
Release Versions:
- PC 4.3.0.1
- Mac 4.3.0.2
Release Date: 12/15/2016
Upgrade Methods:
- Immediately when performing a “Check for Updates” (right click on the Backblaze icon and then select “Check for Updates”).
- Immediately as a download from: https://secure.backblaze.com/update.htm.
- Immediately as the default download at: https://www.backblaze.com/cloud-backup.html.
- Auto-update for existing customers will begin in a couple of weeks.
Cost: Free as an update for all active Backblaze customers and active trial users.
Supported Platforms:
Version 4.3 can be installed and is supported on the following operating systems:
- Mac OS 10.6 or higher.
- Windows XP (32 bit).
- Windows Vista (32 bit & 64 bit).
- Windows 7 (32 bit & 64 bit).
- Windows 8 (32 bit & 64 bit).
- Windows 10 (32 bit & 64 bit).
Questions: Please contact Backblaze support at: https://www.backblaze.com/help.html.