Update on NuGet CI improvements (will SemVer help?)

Nov 23, 2011 at 6:05 PM

There have been various discussion threads in the past related to the current challenges of using NuGet in CI scenarios.  The thread that most resonated with me was started by @chappoo at http://nuget.codeplex.com/discussions/268636. At my company, we are very interested in wrapping all our internal shared libraries as NuGet packages, however, we have not been able to make it feasible yet, for essentially the reason's that were identified in @chappoo's thread.  To summarize the primary blocker:

- NuGet currently treats packages as immutable (so to continuously pull in the latest build, one must increment the package number with every build)

- NuGet installs packages into a folder with the full version name in it (so continuously upgrading a dependency to use the latest version causes an unacceptably high amount of source control churn due to HintPath changes)

In that thread, a couple ideas were floated around to ease the current pain:

- Add support for a alwaysCheckFeed flag in the install process (this would allow you to relatively quickly update to the latest build of a package without incrementing the version)


- Add the ability to exclude the version from the package folder name (while this is doable via NuGet.exe right now, the fact that the VS integration does not support it makes it a non-starter)

Since that thread, I know the NuGet team has been working on adding SemVer support, and I have at least heard mention of supporting build numbers as part of that effort (http://nuget.codeplex.com/discussions/277189).  If build numbers were supported, AND those build numbers were excluded from the folder path of the package (e.g. the folder path would contain the package id and the version part before the build number delimiter), then that would actually solve our problem quite nicely I think.

So I guess my purpose in posting here is I was hoping to get an update from the NuGet team on what progress is being made on these issues.  Specifically, is the proposed build number part (~) being rolled into the SemVer support in 1.6?  If so, will the build number part be part of the HintPath (I'm hoping not :-))?