jsj
jsj

Reputation: 9381

What, if any, Is the difference between a software 'release' and a 'version'?

Title says it all. What, if any, Is the difference between a software 'release' and a 'version'?

Do these two definitions overlap? Is it the case that all releases, and release candidates are versions, but not all versions are releases?

Upvotes: 18

Views: 21806

Answers (4)

shylynx
shylynx

Reputation: 615

A release describes more the process of publishing a software than a concrete material thing. Whereas a version is a concrete and specific software package. Because you won’t publish all software versions you build, only the software versions that you publish or deliver are called software releases. A build is the process of compiling and packaging of a software. Because you can build one and the same code more than once at different machines and with different compilers in different environments a build is the outcome of compile and packaging code and software parts.

Imagine you plan, design, develop, build and test a software. All this steps bring you towards a software release. Because you don’t exactly know how much fixes and versions your team has to build and your quality assurance rejects you must define an objective for you team and your customers. So a release is an objective your team develops towards.

So let’s say you plan your first release in November. The objective of your team is to create a “Halloween Release”. Towards this “Halloween Release” you think it’s clever to present it to our QA before delivering the first version to key users or customers. So the intermediate objective of your team is to create a QA-Release or Alpha-Release. After the 1001st build you present a first running version for example 1.0-alpha-build-1001 to your QA. But your QA rejects this version and the following version as well. So you further fix, improve and build to get a Beta Release that your QA accepts for presentation to key users. Then some builds after, your QA confirms so you can present 1.0-beta-build-4711 to your key users; your first Beta-Release. After some improvements you publish your “Halloween Release” at November with version 1.0 as final software version to your customers. But unfortunately some customers complain about minor issues and some users do complain about missing features. In consequence you decide to fix the issues on the one hand and to integrate new features on the other hand. So your team has two goals and objectives, first to fix and to work towards a “Bugfix release” and second to work for a “Christmas Release” with the new features.

So you fix and build a “Bugfix release”, maybe resulting in a version 1.1. In parallel your team creates new features, integrates, tests and builds a “Christmas release”, resulting in a version 2.0 you deliver at Christmas to your customers.

So in one sentence: A release is a challenge towards a version, you deliver to a particular addresse:

  • QA-Releases for your QA to examine your software.
  • Beta-Releases for your key users to introduce new features.
  • Customer releases for customers to satisfy customers and make money.
  • Seasonal releases and other releases for funny as serious objectives as well.

Upvotes: 1

user1306322
user1306322

Reputation: 8721

Here's a simplistic explanation:

  • Build − executable or a library created by compiling source code.

  • Version − a software build. New version is a different build.

  • Release − (public release) a version intended for use by general population.


Build #465832567 is just the number of times the main developer compiled the program (or library). Sensible developers only release builds with meaningful and tested changes.

Version 2.1.5 means it's the second edition with at least 1 major difference from its 2.0.~ predecessors and 5 minor feature updates or bug fixes.

"Public release" usually means it's a version for normal users who are not involved in testing or development of the software.

Different release types example:

  • Firefox − browser version for simple users

  • Aurora − so called "alpha" version, which includes latest additions, some untested

  • Nightly − "beta" version for developers and enthusiasts who don't fear bugs and crashes

Upvotes: 11

Zeusoflightning125
Zeusoflightning125

Reputation: 170

Definition of version: a particular form of something differing in certain respects from an earlier form or other forms of the same type of thing.

Think of it this way.

When you edit the code, depending apon what you consider a change (saving, publishing, or just editing), your code version changes (depending on how large of a difference you consider a version- also note that versioning systems can be whatever you decide). You might have a version of code where there is a bug, then you patch it, and you have another version. What you call your versions can be whatever you want (versioning system).

A release is commonly considered a version that is pretty stable, complete, tested and most likely having few known bugs and then made public, although more technically its ANY version made public. However, when you see the word release I feel it is safe to assume it is the first provided you cant figure it out by context.

This is my second post so I hope it was helpful!

Upvotes: 0

Adrian Shum
Adrian Shum

Reputation: 40026

I am not sure if there is a very concrete on these two terms, and the definition seems also differs base on context.

Normally Release is more about the "action" to distribute the software to interested candidates, while "version" is an identifier of certain snapshot of the software (mostly a meaningful snapshot).

Therefore, in most case, as we need to identify certain release of the application, we will have a version assigned. (There are always exceptions anyway...)

Upvotes: 2

Related Questions