Skip to main content
Share Your Experience: Take the 2024 Developer Survey
66 votes
Accepted

What is the significance of reaching major version 1.0.0?

There is a special difference between 0.0.0 and 1.0.0. Let's dig into the Semantic Versioning standards. The following rules label these numbers as x.y.z: When x is 0 Chaos rules. Major version zero (...
candied_orange's user avatar
34 votes
Accepted

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

You are mixing two different version numbers here: The "Technical Version Number" and The "Marketing Version Number". Don't do that. Conflating those two version numbers is going ...
Jörg W Mittag's user avatar
33 votes
Accepted

What Semantic Version increment to use for a filename change?

I think myprogram needs to release 1.1.0 which supports the myprog alias. If the user invokes myprogram then it should present a notice/warning to the programmer that this name will be deprecated in ...
MonkeyZeus's user avatar
27 votes
Accepted

When to add version numbers to documentation

This depends on how you plan which features go into which release. For example, if any feature that is merged during a certain timeframe will make it into the 2.4 release, then you can use that ...
amon's user avatar
  • 134k
22 votes

What is the significance of reaching major version 1.0.0?

If the project is using Semantic Versioning, then a 1.0.0 release means that the public API is stable. Not having a stable public API doesn't necessarily mean that the software isn't of sufficient ...
Thomas Owens's user avatar
  • 82.8k
18 votes
Accepted

Semantic versioning with bugfixes and new features in the same release

Assuming that the new features are backward compatible, you should increment the MINOR version number, an reset the PATCH level, . Rationale: semver 2.0.0 makes this crystal clear in clause 7: ...
Christophe's user avatar
  • 77.9k
15 votes
Accepted

Is fast major version bumping an evidence of poor design?

Assuming that the semantic versioning is used properly, does this indicate that the system is poorly designed since it makes major breaking changes almost every four months? Not necessarily. You ...
Jörg W Mittag's user avatar
15 votes

What Semantic Version increment to use for a filename change?

Since this is a backward incompatible API change, you should bump to 2.0.0. Changing the name of a command line program is backward incompatible because the name is part of the API, and scripts and ...
JacquesB's user avatar
  • 59.7k
14 votes

What is the significance of reaching major version 1.0.0?

Semantic versioning or not: A major version number > 0 is a declaration by its authors that the software is fit for production use. Or, negatively: A major version of 0 is an explicit statement by ...
Peter - Reinstate Monica's user avatar
13 votes

Versioning REST APIs. Each API has its own version

What you call single REST APIs might be called REST API's particular set of resources or resources. You also could look at it as REST API's functionalities. Such as any kind of software, the whole ...
ClemC's user avatar
  • 401
13 votes

Semantic versions/versions for web applications

What purpose will this version number for your web app server be? Have you asked yourself whether you even need a version number? As the consumer of a library, a version number is important, ...
David Arno's user avatar
  • 39.3k
13 votes
Accepted

How to modify workflow to allow multiple features per release?

Answering your questions below: Would the above proposed workflow be considered a standard workflow? There isn't a strict "standard" workflow that everyone adheres to, but your workflow is ...
Jimmy Kurian's user avatar
12 votes

Versioning Apps with SemVer

First of all, SemVer.org is all about version numbering for libraries and APIs. You can borrow the ideas to use for applications, but note that it's not a perfect fit (for example, SemVer says the ...
Dan Pichelman's user avatar
12 votes

Versioning REST APIs. Each API has its own version

Here's an even better approach: use content negotiation to version your API with the Content-Type and Accept headers: POST /api/accounts Accept: application/vnd.my-api.account.v1+json 201 Created ...
Jack's user avatar
  • 4,499
12 votes
Accepted

Binary data formats, how to make ensure you can read different format versions?

It seems to me that the simplest solution is to make your version header unambiguous and make sure that the old format can never look like it has a format header, you simply look for it. If it's not ...
JimmyJames's user avatar
  • 27.5k
12 votes
Accepted

Is changing the exception a method throws a breaking change for a library?

Could these exceptions break users' code if they are using your package as the documentation describes? Or are these exceptions an unadvertised or specifically annotated implementation detail? If it's ...
Tyberius's user avatar
  • 243
12 votes

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

A version number is just a message, a way to relay specific information to a specific group of recipients. And just like any communication, the "best" message is the one that conveys the ...
Duroth's user avatar
  • 900
11 votes

Is Git more useful for versioning binary files compared to versioning text files?

Git doesn't care about the contents of files. At all. It stores a directory tree*. That's it. It stores the names of directories and files, and their contents but without ever looking at the content. ...
Jörg W Mittag's user avatar
11 votes
Accepted

Avoid dependency version conflicts?

It's not your problem. It is up to your end user to resolve. It just comes with the territory of using third-party dependencies, and I've had to resolve dependency conflicts more times than I count. ...
Samuel's user avatar
  • 9,197
11 votes

Compare version numbers

In general, the dots are necessary, otherwise you couldn't distinguish 0.2.12 from 0.21.2 (and countless other examples). If you can ensure that the major, minor and patchlevel revision are always ...
Kilian Foth's user avatar
10 votes
Accepted

Convert version string to integer

No, there's no bulletproof way unless you know the maximum values in advance (the maximum number of digits per component). You will also need that information to decode the number. You're trying to ...
Mike Harris's user avatar
10 votes
Accepted

What should be the version of the very first build of a software?

First build? 0.0.0.0. Because you are going to build and try your code many times before you reach the point you put a version on it. But now I'm going to stop nitpicking and assume you mean the ...
Idan Arye's user avatar
  • 12.1k
9 votes

Is Git more useful for versioning binary files compared to versioning text files?

git is primarily a source control system. It's niche is that it's really, really great at keeping track of changes to text files and being able to re-incorporate those changes logically when branches ...
Stephen's user avatar
  • 8,838
9 votes

Binary data formats, how to make ensure you can read different format versions?

Your old format starts with an 8-byte "size" element (probably a 64-bit long). If that's the file size in bytes (what I guess), it most probably never exceeded 100 GByte, meaning 2^37. So, if you ...
Ralf Kleberhoff's user avatar
9 votes
Accepted

C# Names of Namespaces with version suffix

When the documents mention second-level, they're referring to the section of the namespace indicated as (<Product>|<Technology>). The product or technology should be version independent. ...
Neil's user avatar
  • 22.7k
9 votes
Accepted

Versioning: Where exactly in the code or repository should I write the version number?

Your code doesn't have a version. It's your compiled program which has a version. Create the version number when you do the build and have a build step which tags the git repo at the point at which ...
Ewan's user avatar
  • 76.4k
9 votes
Accepted

Keeping version parity between platforms

When most of your code base is shared for both platforms, I would avoid getting version numbers "out of sync", because it will bring a lot more effort for writing a coherent changelog or ...
Doc Brown's user avatar
  • 209k
8 votes

Convert version string to integer

If the only requirement is that each version string has a unique integer identifier, you can use a function like: int(x.y.z) = 2^x * 3^y * 5^z This is easily reversible by finding the prime ...
joelw's user avatar
  • 183
8 votes
Accepted

Why do developers love using code-names instead of actual version numbers?

why not use simple number based versioning? Android, as most of the software, has also semantic versioning. But, numbers are abstract and hard to sell. However, this does not happen only in the ...
Paul92's user avatar
  • 2,581
8 votes
Accepted

Storing config in source control, but a different version for each developer

This is a commonly recurring issue in past project I've worked on. There are several approaches, but they all have their drawbacks: Git ignore Simply put a default file on the Git repo, so that ...
Flater's user avatar
  • 51.7k

Only top scored, non community-wiki answers of a minimum length are eligible