Dipende davvero dal progetto; alcuni progetti non rilasciano nemmeno una versione 1.0.
The developers of MAME do not intend to release a version 1.0 of their emulator program. The argument is that it will never be truly "finished" because there will always be more arcade games. Version 0.99 was simply followed by version 0.100 (minor version 100 > 99). In a similar fashion Xfire 1.99 was followed by 1.100. After 6 years of development, eMule has not even reached version 0.50 yet. Software versioning at Wikipedia
Un metodo popolare di versioni di numerazione (che ho iniziato a utilizzare) è Versioning semantico .
Under this scheme, version numbers and the way they change convey meaning about the underlying code and what has been modified from one version to the next.
Alcune citazioni per darti più idee su come funziona e / o rispondere ad alcune delle tue domande:
How do I know when to release 1.0.0?
If your software is being used in
production, it should probably already
be 1.0.0. If you have a stable API on
which users have come to depend, you
should be 1.0.0. If you're worrying a
lot about backwards compatibility, you
should probably already be 1.0.0.
Doesn't this discourage rapid
development and fast iteration?
Major version zero is all about rapid
development. If you're changing the
API every day you should either still
be in version 0.x.x or on a separate
development branch working on the next
major version.
If even the tiniest
backwards incompatible changes to the
public API require a major version
bump, won't I end up at version 42.0.0
very rapidly?
This is a question of responsible
development and foresight.
Incompatible changes should not be
introduced lightly to software that
has a lot of dependent code. The cost
that must be incurred to upgrade can
be significant. Having to bump major
versions to release incompatible
changes means you'll think through the
impact of your changes, and evaluate
the cost/benefit ratio involved.
Ci sono anche regole su come specificare "alpha", "beta", ecc. Consulta i dettagli sul link .
[Modifica] Un altro interessante schema di numerazione delle versioni è quello utilizzato da MongoDB :
MongoDB uses the odd-numbered versions
for development releases.
There are 3 numbers in a MongoDB
version: A.B.C
- A is the major version. This will rarely change and signify very large
changes
- B is the release number. This will include many changes including
features and things that possible
break backwards compatibility. Even Bs
will be stable branches, and odd Bs
will be development.
- C is the revision number and will be used for bugs and security issues.
For example:
- 1.0.0 : first GA release
- 1.0.x : bug fixes to 1.0.x - highly recommended to upgrade, very
little risk
- 1.1.x : development release. this will include new features that are not
fully finished, and works in progress.
Some things may be different than 1.0
- 1.2.x : second GA release. this will be the culmination of the 1.1.x
release.