Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

SemVer 2.0.0



  • Hi,

    If I try to push a package versioned as 0.1.0-unstable.3 or 0.1.0+2, I will get a Server 500 error returned from Proget. The logs show System.FormatException: Invalid version number.
    Does Proget not support SemVer 2.0.0 ?

    Product: ProGet
    Version: 4.7.11



  • For NuGet packages, ProGet follow's NuGet specifications, and NuGet does not support SemVer2; it uses a proprietary, 4-part versioning scheme that shares similarities.

    However ProGet's universal packages do indeed support SemVer2, so you should consider using those if you're doing something other than .NET library packaging.

    UPDATE: because NuGet now supports it, this is supported in ProGet v5



  • Actually nuget does support semver 2.0 since nuget 3.0. ProGet not having support for semver is currently breaking for us to not use ProGet unfortunately.



  • Actually that's not true; please refer to the NuGet Team's documentation on SemVer.

    • 3.0.0 and up support SemVer 2.0.0 with a limited capacity. Local folders and shares are unable to parse versions with multiple release labels or metadata due to the use of NuGet.Core.dll from the older 2.11.0 client.

    • Project.json restore supports SemVer 2.0.0 and is able to read local folders correctly since it does not depend on NuGet.Core.dll. In some scenarios metadata is written to the disk folder path which causes. Multiple release labels are supported.

    • Starting in NuGet Client 3.5.0-rc1 has added SemVer 2.0.0 for supported for local folders and UNC shares.

    If you take the time to read the documentation, you'll see it's is a much more complicated issue than it appears at first. The velocity of the NuGet team's releases has slowed, and it's likely NuGet will not fully support this in a while (document was from Oct 2016).

    You ought to consider changing your requirement if you're going to use NuGet packages.

    We may add support for this down the line, but it would require a major change to package indexing and thus could impact a lot of our enterprise customers.



  • You see, all software that tended to rely on NuGet packages have mostly been upgraded to support SemVer.

    For instance, take Octopus Deploy - they supported SemVer for all their package types except NuGet - since there was no support.

    So when can we expect to see ProGet follow suit?

    It isn't straight-forward, definitely not.

    But it is something you should have in your back log, as there are other tools that can now support this which gives me reason to look elsewhere for artifact management.



  • Is this still an issue? NuGet apparently added support for SemVer 2.0 shortly after the last post in this question:

    https://blog.nuget.org/20170815/Whats-nu-in-NuGet-with-VS2017-15-3.html#support-for-semantic-versioning-200

    I've just installed the latest ProGet version as of today (03/Jan/2018) and it won't accept packages styled: 1.0.0-pre.20180103.1322.



  • Never mind, found the 5.0 beta :-)



Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation