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
675
questions
5393
votes
22
answers
1.9m
views
What's the difference between tilde(~) and caret(^) in package.json?
After I upgraded to the latest stable node and npm, I tried npm install moment --save. It saves the entry in the package.json with the caret ^ prefix. Previously, it was a tilde ~ prefix.
Why are ...
283
votes
5
answers
116k
views
What is the bower (and npm) version syntax?
Bower enables me to specify version requirements for packages using the following syntax:
"dependencies": {
"<name>": "<version>",
},
But I have not been able to find what is the ...
125
votes
3
answers
22k
views
What is the caret sign (^) before the dependency version number in Flutter's pubspec.yaml?
In the pubspec.yaml file of my Flutter project there is a caret (^) before the version number of some of the dependencies.
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
...
81
votes
4
answers
64k
views
Update package to a major release with NPM
Inside a Node.js project, it's not clear to me what the correct workflow would be to upgrade a package to a major release.
Let's suppose I'm installing stylelint:
npm install --save stylelint
By ...
69
votes
3
answers
24k
views
Should I pin my Python dependencies versions?
I am about to release a Python library I've been working on the past few weeks. I've read a lot about Python dependencies but something is not quite clear yet:
Some people pretend you should never pin ...
66
votes
3
answers
35k
views
What package version does @next specify for npm?
What version of package foo will this command install?
npm install foo@next
The package.json and semver docs don't mention next.
60
votes
7
answers
48k
views
How do I install the latest minor version of a package on npm?
For example:
I have version 2.0.0 of package-name installed.
The latest minor version that has the same major version is 2.1.2
The latest major version (which would be installed if I ran npm install ...
59
votes
3
answers
45k
views
Are there npm version prerelease identifiers?
There is a very handy npm version command. Besides arguments like major, minor and patch it accepts arguments like prerelease, prepatch, etc.
It says in the docs that the commands work in accordance ...
53
votes
3
answers
35k
views
What is the meaning of -rc in semantic versioning?
I get the logic of MAJOR.MINOR.PATCH and kinda intuitively get what -alpha and -beta mean at the end of a semver number but -rc doesn't ring any bell for me.
Couldn't find a satisfying answer there ->...
50
votes
8
answers
39k
views
Azure Pipeline Nuget Package Versioning Scheme, How to Get "1.0.$(Rev:r)"
I'm setting up an Azure Pipelines build that needs to package a C# .NET class library into a NuGet package.
In this documentation, it lists a couple different ways to automatically generate SemVer ...
47
votes
2
answers
35k
views
npm version to add alpha postfix
How can i bump the package.json version to contain -alpha using npm versioning.
Running npm version <new version> will bump the version of the package.json file, however i want to add -alpha ...
47
votes
1
answer
21k
views
What is the convention for versioning npm packages prior to 1.0.0?
I was reading up on versioning with npm, and apparently it provides a nice convenient command for bumping your package versions.
npm version [<newversion> | major | minor | patch | premajor | ...
45
votes
5
answers
60k
views
Is there a workaround for `npm publish -f`
Now that npm publish -f is deprecated, is there a workaround or a package that makes it possible to overwrite a target version after it's been published?
I know about semver; I still want npm ...
44
votes
1
answer
17k
views
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 ...
42
votes
2
answers
13k
views
Parcel SemVer bug
So, I've used Parcel multiple times before and I've never had an issue with it.
This time it throws some stupid errors about SemVer versioning and I'm literally loosing my mind trying to find a ...
42
votes
5
answers
5k
views
What does "public api" mean in Semantic Versioning?
I'm learning about how to assign and increment version numbers with the rule called "Semantic Versioning" from http://semver.org/.
Among all its rules, the first one said:
Software using Semantic ...
41
votes
1
answer
15k
views
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 ...
39
votes
7
answers
19k
views
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-...
37
votes
4
answers
25k
views
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 =&...
32
votes
9
answers
12k
views
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 ...
31
votes
3
answers
29k
views
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 ...
27
votes
2
answers
16k
views
What does the "rc" in a npm package version structure [closed]
I was wondering what the rc in 2.2.0-rc.0 stands for. Does it mean that its production ready?
27
votes
1
answer
14k
views
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 ...
26
votes
4
answers
10k
views
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 ...
26
votes
1
answer
14k
views
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 ...
25
votes
1
answer
7k
views
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 ...
24
votes
1
answer
8k
views
What does .RELEASE mean in Spring Framework versions
What does the .RELEASE ending to a file mean?
e.g.
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</...
23
votes
1
answer
4k
views
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 ...
22
votes
3
answers
11k
views
How to get the semver Major part of a Maven version?
Is it possible to get the major version (<Major>.<Minor>.<Patch>) 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 ...
19
votes
2
answers
2k
views
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 ...
17
votes
4
answers
30k
views
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 ...
16
votes
2
answers
17k
views
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....
16
votes
3
answers
10k
views
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 ...
15
votes
2
answers
3k
views
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'
15
votes
1
answer
2k
views
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 ...
15
votes
1
answer
18k
views
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 ...
15
votes
2
answers
2k
views
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.
...
12
votes
3
answers
18k
views
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.
...
12
votes
2
answers
4k
views
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 ...
12
votes
5
answers
4k
views
NuGet Versioning with ProjectReference Dependencies
I have a solution containing several projects. Let's say PackageA and PackageB, where PackageB depends on PackageA with a ProjectReference.
Each project is set to also output a NuGet package on build. ...
12
votes
3
answers
4k
views
Semantic Versioning and Dependency Changes
Some context: I'm working on a team which produces 6 different NuGet packages, which depend directly, and sometimes indirectly, on each other. Simply, we could have a situation like p0 < p1 < p2,...
12
votes
1
answer
3k
views
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: https://...
11
votes
2
answers
5k
views
bower register new version
I register a version of my "angular-backstrech-adrr" to bower:
bower register angular-backstrech-adrr [email protected]:AladdinMhaimeed/angular-backstrech-adrr.git
this is bower.json:
{
"author": "...
11
votes
2
answers
4k
views
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 ...
11
votes
2
answers
6k
views
Is there a NuGet package that contains a semantic version parser in .NET? [closed]
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 ...
11
votes
3
answers
2k
views
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 ...
11
votes
5
answers
6k
views
How to setup semantic-release without the need for npm?
I have a C# project and would like to add semantic versioning to it. So whenever I push to the main branch I want to create a new release and autogenerate a new version number based on the commit ...
10
votes
1
answer
6k
views
How to version front-end projects?
Semantic versioning brings the follow approach:
MAJOR version when you make incompatible API changes
MINOR version when you add functionality in a backwards-compatible manner
PATCH version when you ...
9
votes
4
answers
7k
views
How to implement semantic versioning of Docker images in GitHub Actions workflow?
I would like to achieve the following CI pipeline with GitHub Actions workflow.
Pull Request is merged -> GitHub action is being triggered -> docker image is being built with semantic version ...
9
votes
2
answers
797
views
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 ...