Questions tagged [semantic-versioning]

De-facto standard for using multi-part version numbers like {major}.{minor}.{patch-level} followed optionally by pre-release labels.

SemVer defines a de-facto standard for managing multipart doted version numbers in the form:

{major-version}.{minor-version}.{patch-level} 

The version number can be followed by a pre-release label.

Examples:      0.3.0      development version before any initial release
               1.0.0      first public release
               2.1.155    release with a patch level 
               3.0.0-rc1  pre-relese candidate for next major version

SemVer was originally defined for managing versions of software providing a public API, with the intent to improve component dependency management.

The numbering scheme is broadly used, including with adapted semantics for software without public API.

122 questions
69
votes
1 answer

How does semantic versioning apply to programs without API?

In http://semver.org/ — which in my perception seems to be the most widely used convention in versioning — it is recommended to increase the major version number when a change that breaks/modify the API is introduced. There are two related scenarios…
user148056
50
votes
2 answers

Why is build.number an "abuse" of semantic versioning?

I was explaining a proposed build system (Gradle/Artifactory/Jenkins/Chef) to one of our senior architects, and he made a comment to me that I sort of disagree with, but am not experienced enough to really weigh-in on. This project builds a Java…
33
votes
4 answers

When should a commit not be version tagged?

Context: I recently found out about Semantic Versioning, and am trying to determine how to best use it practically for my own projects. Given that semver takes major changes, minor changes, and patches into account for versioning, when should a…
30
votes
2 answers

Does Semantic Versioning allow 4 components in version numbers?

All examples of semantic versioning I've seen show 3 components in use. No more than 2 period characters. At $DAYJOB, we use 4 components in our release numbers: 5.0.1.2 Does Semantic Versioning allow for this? And as a higher-level and more…
void.pointer
  • 4,983
  • 8
  • 30
  • 40
29
votes
3 answers

Semantic versioning for desktop applications

I can easily follow the Semantic Versioning recommendations if I develop a library or API, but what if the developed product is a website or a desktop application? When would you increment a major component in that case? In case of a complete UI…
zerkms
  • 776
  • 7
  • 17
27
votes
5 answers

When should I increment version number?

I didn't learn programming at school and I do not work as a (professional) developer, hence a lot of basics are not quite clear to me. This question tries to clarify one of them. Now let's suppose that I have issues #1, #2 and #3 in my Issues…
ahmed
  • 403
  • 1
  • 4
  • 9
25
votes
3 answers

How to change the semantic version number when reverting the last major change

I am trying to plan a system which validates the compability of different components by comparing their semantic versioning number, especially the major release number (since it indicates API changes and backwards compability). I came across the…
Josef
  • 387
  • 3
  • 5
19
votes
4 answers

Is fast major version bumping an evidence of poor design?

I started a job as junior programmer a few months ago. The system we are working on has been in production for ~2 years. I wasn't involved in the begging of the system and the design. One thing I have noticed is that the system major version is…
user367035
  • 301
  • 1
  • 6
18
votes
5 answers

What Semantic Version increment to use for a filename change?

I have a program that runs on command-line, let's call it myprogram 1.0.1. It's published on GitHub. Now I discovered that name already exist for a well-know software, so I want to change the name from myprogram to myprog. This, of course, will…
Lawrence
  • 309
  • 2
  • 6
18
votes
2 answers

Semantic versioning when fixing an important bug

I currently manage a library which has a lot of public usage, and I had a question about semantic versioning. I want to refactor one fairly important part of the library which is implemented incorrectly - and has always been implemented incorrectly.…
hohner
  • 233
  • 1
  • 7
15
votes
3 answers

What version numbers should I assign to builds on different branches as part of continuous integration for NET Core-based projects?

Overview I'm developing a number of .NET Core applications and I've met my current sprint commitments early. Until my next sprint begins, I'm using the slack to look into setting up a CI pipeline for my projects (this hasn't been hugely necessary as…
15
votes
5 answers

How to treat bugs that users thought were a feature?

Question: What is the proper way to address a bug that an end-user thought was a feature? Elaboration: I'm guessing that if a large percentage of users expected it as a feature, it should be left "unfixed" or "fixed" to be more stable? However, what…
robodude666
  • 275
  • 1
  • 8
12
votes
4 answers

Guidance on rectifying a minor bump that should have been a major bump

We have product X which has the following semver versions: 1.0.0, 1.1.0, 1.2.0, ..., 1.10.0. In version 1.5.0, we introduced a feature which changes the way the application is consumed in a big way. Eventhough the change is backwards compatible…
user2218154
  • 139
  • 1
  • 6
10
votes
2 answers

How do I choose a versioning scheme when Semantic Versioning (SemVer) isn't appropriate?

All too often, I see people people pointing out flaws in Semantic Versioning (SemVer), or pointing out that it doesn't apply to huge categories of software. (See quotes below). In particular, SemVer doesn't apply to websites without a public…
David Cary
  • 1,402
  • 13
  • 20
10
votes
2 answers

What is a predictable versioning strategy for a monorepo using semver?

To simplify deployment and project management tasks I maintain a monorepo containing several packages that each have a semver version. To be clear, I don't mean several repositories managed from one place, I mean a single Git repository that tracks…
1
2 3
8 9