I would like to know what's the logic for setting the versions in an application that you're developing?
I mean from 1.0 to 1.1 or 1.7 to 2.0
I would like to know what's the logic for setting the versions in an application that you're developing?
I mean from 1.0 to 1.1 or 1.7 to 2.0
Version numbers are defined as major.minor.revision which can have any arbitrary meaning, but generally when referring to applications:
When referring to an API, a major upgrade is usually an interface change that will break users of the API. A minor upgrade is typically a change to the functionality behind API calls but the interface remains the same.
In general, they could mean whatever you want them to mean. Unfortunately, they are often used simply as marketing tools (Version 2 is out, so all of our clients should buy it!). A better use for them is in implementing semantic versioning. That is, giving those versions specific meanings that are useful to your development and QA teams. Technically, you can make those meanings whatever you'd like, but there are some best practices.
OSGi has a nice whitepaper on semantic versioning. While some of the concepts mentioned there are mainly applicable to OSGi, the rest are pretty general.
For example, changing a major version number (1.0 -> 2.0) usually means that the two pieces of software are not backwards compatible.
A new version is introduced when the feature set and/or previous functionality of an application is changed.
Numbers after dot are for smaller changes. For example, you've modified the registration form only, and the rest of the app remains the same.
Numbers before dot indicate more significant changes, like big functionality changes, or adding a new set of features, etc.
Besides numbers, the version might also have identifiers like Beta
or Alpha
, which indicate whether the current version is complete, or is still being worked on and might have some flaws.
Take a look at wiki article for more info.