Friday, August 13, 2010

What's in a Version Number?

The current official release of Open Watcom is version 1.9. This leads one to wonder if the next release will be version 1.10 or version 2.0. The choice is important since many people assume that a 2.x version will be significantly different than previous 1.x releases.

In fact, the step to the next release of Open Watcom will probably not be much greater than the step between any of our other releases. There will be enhancements and bug fixes, of course, but not significantly more than between version 1.8 and 1.9 (for example). This suggests that the new release should be version 1.10 and that we should save the 2.0 moniker for some future and more special version.

However, I have a general dislike for version numbers like 1.10... particularly given that we have been using only two digit version numbers so far. For one thing it is ambiguous. Is that version "one point ten" or version "one point one, subversion zero?" Also when file names are sorted 1.10 appears after 1.1 and before 1.2, suggesting the wrong interpretation of the ambiguity. It would be different if we had been using 1.0x for the releases all along.

Thus it is my intention to number the next release of Open Watcom as 2.0 despite the fact that there will be nothing "special" about the release. It will just be another step in the sequence from 1.8 through 1.9. Will we be misleading the public who might expect something significant from a 2.0 release? I don't think so. Compared to Open Watcom 1.0, the 2.0 release will be a significant enhancement. Someone who has not been following the project might be tempted to take another look, and that's entirely reasonable. Open Watcom 2.0 will be a big step from Open Watcom 1.0 and it would be good to attract the attention of those who have not looked at Open Watcom since the early days.

On a more technical note, the value of the __WATCOM__ macro in Open Watcom 2.0 will be 2000. So far all the Open Watcom 1.x releases have used a value of 12x0, reflective of the fact that Open Watcom is essentially Watcom v12. Since the last commercial release of the Watcom compiler suite was version 11, this is entirely reasonable. However, setting __WATCOM__ in Open Watcom 2.0 to 1300 seems rather counter intuitive. Thus we are taking this opportunity to jump to a more direct numbering scheme for the __WATCOM__ macro. We don't anticipate this causing any problems since the value is still monotonically increasing and thus will work properly in relational tests.

1 comments:

Ape said...

It always confuses me what the difference is between 1.1 and 1.10 at first glance.

I see the point, and think decimal.