

- #Create nuget package and visual studio for mac how to#
- #Create nuget package and visual studio for mac Patch#
But when you’re producing a CI package, you can’t know whether it will be version 1.2.3 or just a step along the way towards 1.2.3. Once you publish a package at a particular version, you can never change its contents. In NuGet, a particular package is identified by its name and version number.
#Create nuget package and visual studio for mac Patch#
When you make a backwards-incompatible change, increment major and reset minor and patch to 0 (2.6.5 → 3.0.0). When you release a new backwards-compatible feature, increment minor and reset patch to 0 (1.4.17 → 1.5.0). When you fix a bug, increment patch (1.0.0 → 1.0.1). Semantic version numbers have 3 numeric components,. Put another way, we have a paradox: We need to pick a version number before we’ve had a chance to determine what the version number ought to be based on the contents of the package. As Xavier Decoster wrote a few years ago, this is a contradiction in terms: You’re “auto-versioning a yet unknown semantic version”. Put those CI packages through your validation steps (automated testing, user acceptance testing, or whatever) and, when a particular package is deemed ready, you promote it to release status.ĭid you spot the conflict? Each CI package produced needs a unique version number, so you must automatically increment the version number as you produce packages. With continuous delivery, we recommend that you produce and publish packages as an output of your CI build. Later posts will talk about some future thinking we’re doing in the versioning space, as well as a tool for Git users that seems to work really well. In this first one, we’ll cover SemVer, immutability of packages, and a really simple versioning strategy. This series of blog posts will cover strategies for resolving the tension. But for teams that have adopted continuous delivery, there’s tension between this simple concept and the reality of publishing packages. Conceptually, it’s simple: NuGet (like many package managers) prefers semantic versioning ( SemVer), which describes a release in terms of its backwards-compatibility with the last release.
#Create nuget package and visual studio for mac how to#
On the Package Management team, we’re frequently asked how to think about versioning packages.
