Questions tagged [semantic-versioning]

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

Filter by
Sorted by
Tagged with
12 votes
4 answers
3k views

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. ...
0 votes
6 answers
297 views

Should modifying a hash function be considered a breaking change?

Semver specifies to update the major version on a backwards incompatible change. Would modifying the behavior for the hash function of a custom type fall under this category? I asked a couple friends, ...
6 votes
2 answers
426 views

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 ...
  • 1,342
18 votes
5 answers
3k views

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 ...
  • 309
0 votes
2 answers
123 views

Semantic versioning on a dev dependencies change

There are a few threads about how to handle the version number with semver upon changes in dependencies (usually resulting in a +1 to the patch number). Mine is probably a corner case: what if you are ...
2 votes
0 answers
90 views

Is branch-per-release trunk-based development incompatible with semantic versioning?

For the purposes of this question it will be assumed that the conventional commits spec is used as a version driver for semantic versioning. Given a project is in active development. Releases are ...
  • 29
2 votes
2 answers
301 views

Is updating to a new .NET-version a major or minor version change when using SemVer?

When updating to a new major version of .NET (in this case from .NET 5 to .NET 6) without needing to make any change other than selecting the new target framework in Visual Studio, does this warrant a ...
  • 39
0 votes
1 answer
294 views

How to implement automatic SemVer from code changes [closed]

Goal I'm working on libraries published as nuget packages and I would like the version of those packages to update automatically based on the changes I make. In other words, I would like something ...
  • 204
0 votes
2 answers
102 views

GitHub Versioning - Organizing Structure

I am making a JS library that creates graphs and charts using canvas. I have hosted it on GitHub as a public repository. So after looking at some other related questions, I have figured out two ...
0 votes
2 answers
445 views

Semantic versioning for SPA applications with a RESTful backend

I am building an Angular web application with a RESTful backend. I plan on using semantic versioning to differentiate between different releases. I've already read a bit about how to implement ...
  • 123
1 vote
2 answers
234 views

How to bump version (SemVer conform) after updating underlying database

I have a service that uses a package which is basically just a wrapper around an ElasticSearch index. I had to update the index as new data is added on a yearly basis. The source of the data needs to ...
  • 121
-2 votes
1 answer
101 views

Version naming for source code with multiple build targets

I have a Java library which is deployed automatically to Maven central. Right now this library has Java-1.8 target SDK, I want to continue releasing source code with this target and add new target ...
  • 126
1 vote
1 answer
150 views

Semantic Versioning for CSS

I maintain a CSS framework that is versioning with semantic versioning. What changes to a CSS framework are considered major, minor, and patches? Specifically, what is the "API" of a CSS ...
  • 127
4 votes
3 answers
814 views

How to deal with SemVer in a build number based company

My company uses Major.Minor.Patch.Build for our version numbers. When a new release is started, the Major.Minor.Patch part is set. Then as work is done, the build number goes up until a build is ...
  • 3,988
-1 votes
2 answers
359 views

How to version bug fix of library for earlier release?

I'm kinda new in versioning. In my scenario, for example, our main project is currently developing in 2.1.0 (develop branch), while the library version remain same as 1.5.0 since nothing change (for ...
  • 17
1 vote
1 answer
336 views

Which SemVer version to use between releases?

I'm working on a project that uses Semantic Versioning. The commit history can be generalized as: Also, the current version is present in source code (so that the software can use it for various ...
  • 129
1 vote
3 answers
1k views

When to increment build number?

I'm reading a book which says: The third number, 719, indicates the build of the assembly. If your company builds its assembly every day, you should increment the build number each day as well. so ...
  • 129
1 vote
1 answer
152 views

How do deal with bugs in semantic versioning introduced in old branches

My question relates to semantic versioning (specifically as specified here). Say I have some feature I introduced in version 1.10.0 and then some time later (let's say the project has advanced to ...
  • 129
-1 votes
2 answers
99 views

Versioning of re-implementation - same idea, same name, new project and repo - 1.0.0 or 2.0.0?

Assuming that we have a project called: "WizardProject". The WizardProject, which currently stands at version 1.x.x, has a mostly Java based stack and active development has been ...
1 vote
1 answer
2k views

What's the best practice to use semantic-release to update version number in a node.js or frontend project

I'm using semantic-release to auto find out the next version based on the git commit. It's working fine with creating new version, upload to npm and create new git tag. And semantic-release is ...
  • 139
0 votes
3 answers
151 views

Should it be considered a BC break to return clone instead of new self?

(This question applies to the equivalent code in both Java and PHP) I have a class like this: class Foo { private int $bar; public function __construct(int $bar) { $this->bar = $...
  • 618
2 votes
3 answers
519 views

How is a reproducible build guaranteed with version ranges in NPM?

I know with NPM caret, tilde and some logical operators can be used to specify version ranges. This post explains a bit on how this works. The problem now is I find it hard to reconcile the use of ...
0 votes
2 answers
158 views

What can be used as abbreviation for perpetual beta?

According to Wikipedia, we talk about stages of development; prealpha alpha beta release candidate stable But, beta also have 2 sub-stages; perpetual beta open/closed beta Now if we were to ...
  • 119
0 votes
2 answers
299 views

Why are minor versions of dependencies pinned, despite possibly having bugs?

I am an amateur developper and I deploy my (home oriented) code to containers. This is usually Python and JavaScript. JavaScript, when saving dependencies for a further npm install, will pin the ...
  • 1,541
3 votes
1 answer
193 views

Projects version and database compatibility

We are trying to fix our's company versioning of several modules and I'm not sure how to consider Database compatibility when versioning. The same Database is used for a lot of applications and we're ...
7 votes
2 answers
754 views

Versioning in parallel features development

I have a library (npm package, LIB) which is used by the application code (APP). In a release of APP, multiple features are worked on parallely. Sometimes these features need support from LIB, so the ...
  • 197
1 vote
0 answers
149 views

Gradle + Git - enforcing a version change upon merge to master

I am leading a team of developers creating a Java library. We are following the standard Semantic Versioning model. The code is versioned with Git. Artifacts are built and pushed to an artifact ...
  • 259
1 vote
1 answer
162 views

Implementing semver within a development pipeline when building libraries

This is not about the specification of semver itself (which is crystal clear), but rather about the best approach to implement it within a development pipeline when building libraries. TL;DR: who/...
  • 620
24 votes
3 answers
3k views

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 ...
  • 377
-1 votes
2 answers
458 views

Git Tagging for SaaS application with CD and SemVer

I'm developing a SaaS application where I'm required to keep track and publish every change in a changelog. I've started to follow a Semantic Versioning approach and also using Continuous Delivery. ...
3 votes
3 answers
275 views

In SemVer, am I allowed to change the in-practice behaviour of undefined behaviour usages

I maintain a small (tiny!) .NET library. It has a few ill-defined edge cases, which I call out explicitly in the docs. Places, where the "correct" behaviour is not self-evidently well-defined, so I ...
  • 140
0 votes
2 answers
137 views

Can a library reach v1.0 when its dependencies haven't?

Some widely used libraries are still versioned 0.x, which under semantic versioning, means they might break the API at any time. Examples of such libraries: numba v0.46, 1.2 million downloads on ...
  • 990
2 votes
1 answer
46 views

Should I update the major version of a consumer package if one of its critical dependencies has a major update?

This is a scenario I have seen: I have a shared library with code that fetches data from an api. Let's call this ApiProvider. Currently this ApiProvider is in version 1.1.1 and is currently pointing ...
2 votes
3 answers
813 views

Switching to semantic versioning from simple version numbers

There's a software library / application / framework which currently uses "simple version numbers". So it's currently at (say) version 135 and releases are made in irregular intervals whenever "there'...
-1 votes
1 answer
431 views

Proper version incrementation with multiple bug fixes in same release

Say I have a three PRs going into the next release. Each PR is a bug fix and all have been approved for the next release. If the current version is 2.3.1, should the next version be 2.3.2 (count all ...
  • 125
2 votes
1 answer
305 views

How to handle patch version bumps for docker images when the software itself is unchanged?

Let's say I'm maintaining a piece of software that I version following the semver spec. I am also maintaining a docker image for said software, tagged with version tags. What do I do if I need to ...
  • 1,281
0 votes
1 answer
141 views

How far to go with semantic versioning?

Say you have an interface with a function List<A> doSomething(Collection<B> bs). Looking at Java's List interface and its JavaDoc I could return an immutable List which doesn't support ...
  • 197
0 votes
1 answer
319 views

How does a software engineer version two minor updates at the same time?

In a web app I am building, I might finish two distinct minor features at the same time: Implementation of a new web page, and implementation of the notification bar. After merging both of these into ...
  • 157
1 vote
1 answer
1k views

Microservices Versioning - Design Pattern

I have a few questions regarding the versioning in the microservices architecture: Let's say there are three services - S1, S2, S3 S1 calls S2 and S3 to generate a response R1. Service S2 generates ...
4 votes
1 answer
878 views

Is it okay to use a patch version in semver when updating documentation?

How does one go about e.g. missing documentation in the source files when using semver? I have just released 1.0 of my library and noticed that a class is missing JavaDoc - is it ok to release a PATCH ...
  • 197
0 votes
1 answer
216 views

Change semver versioning after dropping node eninge versions

I doubt about to which semver version I should update my public NPM package. I didn't change any code, but I had to drop some node engine versions due to a dependency package which had a major update ...
  • 111
1 vote
2 answers
172 views

How to manage updates after a release?

I wonder how should we manage the commits we make AFTER a version is released, according to SEMVER. For example, I just released 1.0.1, now I have 2 choices: Immediately change version to 1.0.2 and ...
2 votes
1 answer
891 views

Using semantic version with trunk based development for Python package

I am trying to understand trunk based development with semantic versioning for a Python project. Has anyone had any experience of adopting a trunk based development with semantic versioning for ...
  • 133
3 votes
1 answer
272 views

Semantic Versioning - going from one major version to another?

How should versions be bumped during development between two major versions? For example let say I have version 1.5.0 and my target is to release new major version that will be incompatible with major ...
  • 149
4 votes
1 answer
802 views

What would be the pros and cons of requiring major versions to be forward compatible? [closed]

So I was learning about forward compatibility, and I was wondering if you could warn a "dependent" that a dependency is backward compatible, but not forward compatible*, and vice-versa. The SemVer ...
  • 149
33 votes
4 answers
6k views

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 ...
  • 439
-1 votes
1 answer
348 views

How to use Semantic Versioning on Existing Multi Component Codebase?

I am working on a multi contributor project, having ~2500 Commits. It has multiple components, i.e. Frontend, Backend and Data Processor/DB Ingestion. Now that we are expecting more contributors, a ...
7 votes
2 answers
228 views

Semantic Versioning

If a change compiled/built but the semantics were different would it be considered a major change? For example, suppose a time string returned was the same format but now was CET rather than, say, ...
  • 79
1 vote
2 answers
165 views

How to update version when only dependencies are updated?

I have a public project that I'm the single developer. I love updating packages to new versions regularly and keep the project up to date with the updated environment. This is probably not always a ...
2 votes
3 answers
218 views

Versioning different flavors built from shared source

I need advice on how to version builds based on shared and separate codes at the same time. I have a gradle project with multiple flavors. Large part of the code is shared. Some parts are flavor ...
  • 129