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
15
votes
2 answers

Composer.phar difference between | and ||

What is the difference between pipe and douoble pipe in composer.json file? For example: "^1.0.0 || ^2.0.0" and '^1.0.0|^2.0.0'
Roman678
  • 161
  • 1
  • 3
15
votes
3 answers

What is a good iOS app versioning strategy when using TestFlight for internal testing?

I have an iOS app that uses semantic versioning to tag shipped builds. I'm also using Apple's TestFlight to push internal builds to the team for testing/QA. Pushing an internal build requires uploading a build to iTunes Connect. There's no…
redhotvengeance
  • 27,446
  • 10
  • 49
  • 54
15
votes
1 answer

npm install using pre-release versions

i want to use pre-release versions in my package.json to get some dependencies in the latest version (containing als pre-releases) but for some reasons it doesn't work in my case. The pre-releases are fully ignored. As an example lets use angular.…
Michael
  • 173
  • 1
  • 1
  • 7
15
votes
4 answers

bash regex to match semantic version number

I have the following: versionNumber=$(sw_vers -productVersion) # Finds version number versionShort=${versionNumber:0:4} # Cut string to 1 decimal place for calculation which works when versions are like this: 10.9.2 10.9.5 but it will not…
lukemh
  • 5,043
  • 7
  • 30
  • 38
14
votes
1 answer

What is the breaking change in semver 2.0.0

There is a version 2.0.0 of the semantic versioning spec, given that you should: increment the MAJOR version when you make incompatible API changes, What was the incompatible change between semver 1.0.0 and 2.0.0?
Jeremy French
  • 11,707
  • 6
  • 46
  • 71
14
votes
2 answers

Does semantic versioning apply to source or binary compatibility?

This question applies to any language which is written in one language ("source"), e.g. C or Java, and distributed in another ("binary"), e.g. machine code or Java byte code, using dynamic linking. Suppose a user is already using version A of my…
Paul Draper
  • 78,542
  • 46
  • 206
  • 285
12
votes
1 answer

Gradle: what means that a dependency has a "promoted version"?

Today I discover this "experimental" screen in Android Studio. Some updates says "Gradle promoted library version from..." what means with that? (I checked the source code and found this:…
12
votes
2 answers

REST API versioning - why aren't models versioned

I've been reading up on all the approaches to version REST APIs. In almost all implementations, controllers and views are versioned, however models are not. To give the rails example, controllers are organized as: #…
11
votes
2 answers

Is there a NuGet package that contains a semantic version parser in .NET?

I found this blog post and the related Gist. The author does not appear to have created a corresponding NuGet package. Anyone aware of a NuGet package that already exists? For reference, here is the specification for semantic versioning.
David Peden
  • 17,596
  • 6
  • 52
  • 72
11
votes
3 answers

Should major SemVer updates cascade?

So "myLibrary" references "anotherLibrary". Both libraries follow http://semver.org/ If I release a new version of myLibrary that forces consumers to update to a new major version of anotherLibrary should the major version of myLibrary also…
Simon
  • 33,714
  • 21
  • 133
  • 202
11
votes
2 answers

bower register new version

I register a version of my "angular-backstrech-adrr" to bower: bower register angular-backstrech-adrr git@github.com:AladdinMhaimeed/angular-backstrech-adrr.git this is bower.json: { "author": "Aladdin Mhaimeed", "name":…
Aladdin Mhemed
  • 3,817
  • 9
  • 41
  • 56
10
votes
2 answers

Reason for MINOR vs PATCH rules in SemVer

The rules for when to increase the MAJOR vs the MINOR version number with SemVer 2.0 are very compelling. They clearly give a lot of advantages to knowing if the app/service is backwards compatible. But the site does not really give an reason for…
Vaccano
  • 78,325
  • 149
  • 468
  • 850
10
votes
2 answers

Do I have to update project version when only README has changed on GitHub?

I'm editing one of my open-source projects on GitHub and I want to replace link (pointing to a demo) in README.md. Do I have to update library version every time I introduce some minor changes to the README file or documentation (without any actual…
Slava Fomin II
  • 26,865
  • 29
  • 124
  • 202
9
votes
2 answers

regex for semver

What is a correct regex for matching semantic versioning? It should not match for instance 01.1.1 9.8.7-whatever+meta+meta 1.2.3.DEV 1.2.3-0123 1.0.0-alpha_beta 1.2-SNAPSHOT 1.2.31.2.3----RC-SNAPSHOT.12.09.1--..12+788 it should match for…
karlsebal
  • 1,449
  • 17
  • 23
9
votes
2 answers

What's the point of having a "compatible version" (^version) declared in package.json if package-lock.json locks it?

I know the main advantages of package-lock.json and I agree with that. It not only locks the downloaded version in the last install, but also the uri... and that's required on most cases for being possible to replicate the most similar project as…
1 2
3
44 45