Questions tagged [semantic-versioning]

Semantic Versioning is a community-driven version-numbering standard. Use this tag to indicate the software versioning concepts defined at http://semver.org.

Semantic Versioning is a conceptual software scheme which defines concepts of API compatibility and a specific, strict set of versioning rules intended to avoid dependency hell.

A number of software packages have made a commitment to apply the concepts of Semantic Versioning, or help to enforce its rules. For example: , and other package managers often help manage software dependencies using these rules.

Not all software versioning applies these semantics, which can lead to confusion. Semantic Versioning 2.0.0, the current specification, was originally written by Tom Preston-Werner, and is a community based effort hosted at https://github.com/semver/semver.

664 questions
38
votes
1 answer

releasing alpha to beta to production with SemVer

My understanding of the SemVer release cycle is as follows: My first release is going to be 0.1.0-alpha.1 I may make a few tweaks and re-release at 0.1.0-alpha.2 (repeat as needed) When ready, I release 0.1.0-beta.1 I may make a few tweaks and…
user1270496
37
votes
1 answer

Semantic versioning of REST apis?

I've evaluated a number of versioning schemas for REST apis (header, url, …). So far, the most reliable approach seems to be the url option: It works with proxies, and does not rely on obscure schemas such as dates for versioning. Now, when I look…
Golo Roden
  • 140,679
  • 96
  • 298
  • 425
35
votes
6 answers

How to sort semantic versions in bash?

I would like to sort semantic versions (semver.org) v1.4.0 v1.4.0-alpha v1.4.0-alpha1 v1.4.0-patch v1.4.0-patch9 v1.4.0-patch10 v1.4.0-patch2 v1.5.0 v1.5.0-alpha v1.5.0-alpha1 v1.5.0-alpha2 v1.5.0-patch v1.5.0-patch1 in proper way. For instance, as…
Kirby
  • 2,847
  • 2
  • 32
  • 42
32
votes
9 answers

Where do you store your Rails Application's version number?

We use the wonderful semantic versioning paradigm when versioning our rails app. One question I had was where is it best to store this number? I've seen it stored in /lib, environment.rb, etc. Just wondering what people thought as to best…
Greg Olsen
  • 912
  • 1
  • 9
  • 14
31
votes
4 answers

What is the proper first version? 0.1.0 or 0.0.1 or anything else?

How do you name the initial version? Could you tell the proper version of the first version? Here is my candidates. Way1 Start => 0.1.0 => 0.1.1 => 0.1.2 => 0.2.0 => 0.2.2 => 0.2.3 ... => 0.10.0 ... =>…
ryo
  • 2,009
  • 5
  • 24
  • 44
31
votes
3 answers

How do I find out what version of a bower package is actually installed?

Normally a bower.json file specifies some dependencies, but these are typically expressed so that they allow a range of versions of a bower package to be used (e.g. >=1.0, which means anything higher than version 1.0). I have an automated process…
Andrew Ferrier
  • 16,664
  • 13
  • 47
  • 76
27
votes
1 answer

Specifying version numbers in Bower

When writing bower.json you can specify version numbers in your dependencies. Sometimes I see people writing { ... "devDependencies" : { "grunt" : "~0.3.13", } } What exactly does the ~ mean? Why not write >=0.3.13? Is this some…
Presidenten
  • 6,327
  • 11
  • 45
  • 55
26
votes
1 answer

How to create a nuspec dependency which includes prereleases

Some context: I have 4 nuget packages with dependencies. They are all in pre-release mode, and they evolve from alpha to "stable" at their own pace. I want to be able to specify in the dependency definition that prereleases should be included, but…
Filip De Vos
  • 11,568
  • 1
  • 48
  • 60
25
votes
4 answers

Is 0.0.1 valid semver?

A colleague got into a casual argument about the first version of a module. We're wondering if 0.0.1 should be the initial release. I think 0.1.0 is the proper first version, as 0.0.1 implies an increment of a patch, and a patch implies a prior…
M Miller
  • 5,364
  • 9
  • 43
  • 65
24
votes
1 answer

What does .RELEASE mean in Spring Framework versions

What does the .RELEASE ending to a file mean? e.g. org.springframework spring-context 3.0.0.RELEASE runtime
Tomeister
  • 675
  • 2
  • 9
  • 26
21
votes
3 answers

How to get the semver Major part of a Maven version?

Is it possible to get the major version (..) of the project.version? For example if my version is 1.3.4, I'd like to get 1 to later use it in a configuration of the same pom.xml Something like:
Yuriy Nemtsov
  • 3,869
  • 4
  • 30
  • 44
21
votes
1 answer

What exactly is considered a breaking change to a library crate?

Rust crates use Semantic Versioning. As a consequence, each release with a breaking change should result in a major version bump. A breaking change is commonly considered something that may break downstream crates (code the depends on the library in…
Lukas Kalbertodt
  • 79,749
  • 26
  • 255
  • 305
20
votes
2 answers

What does the "rc" in a npm package version structure

I was wondering what the rc in 2.2.0-rc.0 stands for. Does it mean that its production ready?
Clement
  • 4,491
  • 4
  • 39
  • 69
20
votes
1 answer

How do I see the release notes for an npm package before I upgrade?

Does the npm registry expose release notes in a standardized way? I've seen release notes in: The README.md On GitHub as a tagged release with no description On GitHub as a tagged release with a description While SemVer at least lets me know if…
Weston
  • 1,882
  • 1
  • 20
  • 26
17
votes
2 answers

Is there an equivalent scheme to Semantic Versioning for non-API software?

I really like the Semantic Versioning scheme but it really only makes sense for APIs, since the focus is on breaking changes and backwards-compatibility. For non-API, e.g. end-user software, many of the rules don't make much sense anymore. For…
neverfox
  • 6,680
  • 7
  • 31
  • 40
1
2
3
44 45