GitVersion – selective versioning multiple assemblies of the same project

I’m on a .net c# project composed by a solution with several class library projects.The source control is managed by git using gitflow as branching model.We have decided that we wanted to implement semantic versioning (http://semver.org/) of the project in order to follow a standard way to communicate our releases. For that we are using GitVersionTask (via NuGet) which works pretty well with gitflow. Every time we tag a release and we perform a build from the master branch the version of all assemblies are updated and a new release is out for ...Read more

Versioning multiple configurations

I've been using Semantic Versioning for a project I'm distributing with Nexus, and I've run into a conundrum. I need to release two different configurations for each version: Release and Debug. In general, the average consumer will use the Release artifact(s), but some will want/need the Debug artifact(s).How can I consistently version the artifact(s) so the Release configuration takes precedence over the Debug configuration?I could add an identifier for the Debug configuration, but then pre-release versions have the wrong precedence.✓) ...Read more

how to get top 5 semantic versions if you are using Semantic Versioning in a folder

I have a folder with lot of zip files based on semantic versions i want to get the top 5 versions and delete rest. I want to know how can i query the latest top 5 versions in a query MyService- 1.0.2.5.zip MyService- 1.0.2.6.zip MyService- 1.0.2.7.zip MyService- 2.0.0.63.zip MyService- 2.0.0.64.zip MyService- 2.0.0.65.zip MyService- 2.0.0.66.zip and so on MyService- 3.0.0.11.zip MyService- 3.0.0.12.zip and so on I want the top 5 or top 1 version is there any utility or funct...Read more

semantic versioning - How to introduce incompatible changes while remaining in major version zero?

I have a large personal software library that I have been working on and is currently working on. Currently, its version is 0.1.0.It is not mature enough to have a major version of 1. I keep modifying the code and introducing incompatible changes that would merit an increase of the major version number. At the same time, some of my other libraries depend on this library and refer to it by the version number.If I introduce incompatible changes and don't want to increase the major version from 0 to 1, how should I increment my version number?The ...Read more

Semantic versioning - major version for a traditional web application

I have a Rails app which is a traditional web application (HTTP requests are processed and HTML pages are rendered). As of now, it does not have an APIs that are exposed to other apps. I want to use semantic versioning for versioning the application. Currently it is at '0.0.0'.Quoting from the documentation: MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and PATCH version when you make backwards-compatible bug fixes.From what I understand, because there are no...Read more

How can I combine semantic versions?

I have a product that ships in two formats: individual packages and a combined single package. The single package is programmatically generated from the individual packages. The individual package semantic versions are manually determined and set.How can I calculate a semantic version for the single package based on the semantic versions of each individual packages that respects the semantic versioning rules of the individual packages?For discussion purposes, assume I have three individual packages:a - 1.0.3b - 2.1.0c - 1.1.1How would I calcula...Read more

What does "public api" means 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 Versioning MUST declare a public API. This API could be declared in the code itself or exist strictly in documentation. However it is done, it should be precise and comprehensive"I am confused about "public API". What does it refer to?...Read more

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 the rules don't make much sense anymore. For example, the very concept of backwards-compatibility doesn't really mean anything; the user experiences new features or they don't, fewer bugs or they don't, etc. I would however benefit from a clear scheme for x.y.z versioning that follows the spirit of Semantic Versioning so that the users can have some...Read more

semantic versioning - Would a protocol's version need a "patch"?

According to semver, the version number is MAJOR.MINOR.PATCH, and patch is incremented when you make backwards-compatible bug fixes. I'm working on making a new communications protocol, and I want the protocol to have a version associated with it (entities speaking this protocol may negotiate during the handshake the highest supported version of the protocol they will use in their conversation). Does the patch even make sense in this context? I understand that it makes sense for software products (e.g. fixed bug that caused app to crash, but no...Read more

Semantic versioning : Incrementing by two

Had a question related to Semantic VersionWe have two levels of customers - Levels 1 & 2. We have a current release (Say 1.0.2). We did a release for Level 1 with a minor number change (1.0.3) - but then decided that it will not go to Level 2. Now the next release should go to both Levels 1 & 2. But if we release it with 1.0.4 then it will look like a skip for Level 2 users. If we stick with 1.0.3, it will conflict with our Level 1 users.So, for from a Level 2 users point of view, Would it be strictly consistent with Semantic Version if...Read more

semantic versioning - When to increase minor version with SEMVER?

I have a website I'm developing. I try to use SEMVER with any changes I make. Sometimes I'm not sure when I need to bump up the minor version. For example,I have my website/app at v0.9.0. I have this deployed on a production site. One day, I decide to add some new functionality to the website. I add my new functionality, test it and deploy it and it works great. Since this is not a bug fix, does that mean I need to go from v0.9.0 to v1.0.0? So essentially, if I'm at vX.0.0, it only takes 10 new features to be independently added (no matter the ...Read more

Under what version is semantic versioning versioned?

Semantic versioning exists in two drafts (as of this writing, not counting betas and release candidates): 1.0.0 and 2.0.0. It is, apparently, versioned by itself.What is the breaking change between 1.0.0 and 2.0.0 that prompted the major version bump?Do I need to be worried when using semver that this or future changes will cause confusion?What would happen if semver made a change that was allowed under one version but not under others?...Read more

semantic versioning - Breaking change in previous major release

I am seeking guidance for the following scenario -Assume that we have the following multiple production versions of a public API -1.1.02.1.2If a bug/defect was identified in the "1.1.0" version fixing which would introduce a breaking non-backward compatible change, how would the versioning need to be handled? Following semver, a breaking change would necessitate incrementing the major version - so "1.1.0" should become "2.0.0". However, we already have the next major version "2.1.2" live with its own changes.Is it advisable to skip numbers betw...Read more