I see so many projects and softwares released on the internet that has a 0.x version and they never reaches 1.0.
Shouldn't a first release be 1.0 (or 1.0b at least)?
Example, the VLC project dated 1996-2008 now at version 0.8.6?
I see so many projects and softwares released on the internet that has a 0.x version and they never reaches 1.0.
Shouldn't a first release be 1.0 (or 1.0b at least)?
Example, the VLC project dated 1996-2008 now at version 0.8.6?
The way I personally do things is that 0.x releases aren't intended to be public. They're either internal releases or releases that go out to private testers.
It seems to me that there's a lot of pre-1.0 open-source software out there, because by its nature it is made available long before it is considered complete.
On the other hand, commercial software tends to go the other way - you can't sell a program easily if it's "version 0.9". And then you have to bump the version number by at least one major digit in order to sell the next version.
So I'd say, call it 1.0 when you think it's "complete". It's really up to you, of course.
I tend to start with version 0.0 and increment to 1.0 when I consider it feature-complete and releasable. The major version only increments after that for complete rewrites, that is, a whole new application with the same purpose and title. The minor version increments for large feature addition/modifications. I also usually include a build number or Subversion revision number.
This is one of those issues where you just have to make a decision. Nobody else can make it for you and any advice is mostly, if not completely, subjective.
There are literally a dozen ways to do this. I suggest taking a look at the wikipedia article first. As you can see it mostly depends on if you are making FOSS or commercial software, but even then there are completely different ways to go.
For FOSS software, with VLC as you mention as an example, 1.0 is often a major milestone. Wine is also a great example for this, which was 15 years in development before reaching 1.0. Another version numbering that is growing more popular is following the date, this is used by Ubuntu, having releases in April and October of every year and numbering them Y.04 and Y.10. You might gain some insight into the options for FOSS software by reading the recent discussion on the subject on the linux kernel mailing list.
If you are making commercial software though, you almost always want to keep 0-0.9 releases internal and show nothing to any customers before you have a 1.0 release.
There is no "best" way. However, as a .net Developer, I simply cannot use letters for my Version number, same for Delphi Development. Therefore "1.0b" is not possible.
Open Source Projects tend to start with 0.x simply because they are released to the public very very early with only a bare feature set in. A Version 1.0 should be Feature Complete (as per the original Spec), so that's why Closed Source and Commercial Software usually starts with 1.0 as usually the feature complete versions are released first.
Where to advance from that then depends. Commercial Software usually makes larger steps - 1.0, 2.0, 3.0 - in order to sell Updates (Customers don't like to buy an Update from 1.0 to 1.5 as there is a psychological barrier or something...) and only use 1.1 or 1.0.1 for free Bugfixes.
As said, I am a c# developer, so i have 4 parts in my Version number: Major.Minor.Build.Revision. I usually increase the Build Number when I just fix a bug, the Minor number when I add a small new feature and the Major number when i have a really big new feature. The Revision is always my SVN Revision, just to be able to track things.
Generally, releases mean whatever you want them to be. Most open source applications don't use releases to mean anything in terms of features. They're just the next incremental number.
Occasionally an app will release a version number that means something, like the Wine project did with their 1.0 release, however most release numbers are just used to signify a new version, not neccessarily functionality.
I think the version number should be truncateable - i.e. 1.9 should be similar to any other version 1 + some bug fixes and improvements.
I'm not sure "release 0" quite sounds like a proper version.
While all us programmers ('cept you VB guys ;-) are happy thinking from 0 as the start point most people actually think from 1. Your first release 'out' should probably by 1.0
All that said it doesn't really matter, so long as you don't keep changing the system (3.1, 95, 98, NT, 2000, ME, XP, Vista - Microsoft I'm referring to you here)