325
votes
Accepted
Maintain hundreds of customized branches over master branch
You are completely abusing branches! You should have the customisation powered by flexibility in your application, not flexibility in your version control (which, as you have discovered, is not ...
94
votes
Maintain hundreds of customized branches over master branch
Having 500 clients is a nice problem, if you had spent the time up front to avoid this problem with branches, you may never have been able to remain trading for long enough to get any clients.
...
56
votes
Accepted
Why is build.number an "abuse" of semantic versioning?
Your build number won't be reset to 0, when minor and major versions increase, this violates sections 7 and 8 of the specs:
Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards ...
40
votes
Maintain hundreds of customized branches over master branch
In the future, ask the Joel test questions in your interview. You'd be more likely not to walk into a trainwreck.
This is an, ah, how shall we say... really, really bad problem to have. The "interest ...
31
votes
Accepted
Is it good practice to store software version numbers in VCS?
Personally, I choose option 3: keep versioning information in VCS metadata, specifically, tags.
Git makes it very easy to do so, because there is a command git describe, which can uniquely describe a ...
29
votes
Accepted
Does Semantic Versioning allow 4 components in version numbers?
It sounds like you are bypassing normal conventions just to avoid process overhead/audits. That... strikes me as concerning.
What you are doing is effectively making an extra version number (your ...
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 ...
26
votes
What exactly is the build number in MAJOR.MINOR.BUILDNUMBER.REVISION
The whole confusion stems from the different semantics that MS uses for "Build number" and especially "Revision". The terms just mean different things.
Most people (myself included) use a semantic ...
24
votes
Accepted
Version number as a part of a file name
It makes sense to specify the version you require. Behavior you may rely on could have changed, so newer is not always better. First, test whether a new version of a library works for you. Then, ...
21
votes
Accepted
Event sourcing, replaying and versioning
First, it is important to understand and be able to leverage the difference between Commands and Events.
As this question succinctly points out, Commands are things we would like to happen, and ...
17
votes
Maintain hundreds of customized branches over master branch
This is one of the worst anti-patterns you can hit with any VCS.
The correct approach here is to turn the custom code into something driven by configuration, and then each customer can have their own ...
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 ...
15
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:
...
14
votes
Accepted
In SemVer should I increase the version on every commit/accepted pull request
While not being explicit about it, SemVer applies to released packages.
Therefore, if you, as release manager, build a package containing all 3 commits then you only have to increment the version ...
13
votes
Maintain hundreds of customized branches over master branch
The purpose of branches is to explore one possible avenue of development without risking to break stability of the main branch. They should eventually be merged back at a suitable time, or be ...
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 ...
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 ...
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
...
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 ...
12
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, ...
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 ...
11
votes
Are version numbers needed
You might want to have internal version numbers of your application to better manage your internal development processes. However, these numbers are of little use for the user.
The usual purpose of ...
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. ...
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. ...
10
votes
How to handle versioning with multiple independent pull requests in a Git repository?
Alice should handle this situation by rejecting the pull requests which also change the version number (both of them). Collaborators who are not the maintainer should not be changing the version ...
10
votes
How to treat bugs that users thought were a feature?
I'd recommend making it more stable. Users are the canonical source of what your software does. If they want it, and have come to rely on it, I'd think twice about yanking it.
A good example of this ...
9
votes
Accepted
How to handle versioning with multiple independent pull requests in a Git repository?
If Alice is the maintainer of the project, then Alice and Alice alone should be the one that increments the version. Increasing the version number means a release, and Alice is the one to decide when ...
9
votes
Is it good practice to store software version numbers in VCS?
Yes. It is good practice to keep most of the version number in vcs. If we consider semantic versioning semver.org where we have major.minor.patch.build the first three must live in vcs. The last one ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
versioning × 311semantic-versioning × 63
version-control × 42
release-management × 31
git × 29
java × 13
continuous-integration × 13
architecture × 11
database × 11
api × 11
api-design × 11
development-process × 11
.net × 10
deployment × 9
branching × 9
release × 9
c# × 8
rest × 8
web-applications × 8
builds × 8
maven × 8
design × 7
microservices × 7
naming × 6
configuration × 6