Package maintainer specifying MachineCache with priority over LocalPackageRepository via .nuspec

Topics: General
Feb 21, 2015 at 5:55 PM
Edited Feb 21, 2015 at 6:00 PM
If the package maintainer knows there no reason for the package to be duplicated in each LocalPackageRepository, allow them to specify it to be installed just system-wide (in MachineCache) via the package's .nuspec file. End-users can still redirect their LocalPackageRepositories via nuget.config files, so I don't see any backwards compatibility problems. I say priority as, with an additonal option in an end-user .config file they can force installation into LocalPackageRepository (for whatever reason). Though I guess priority isn't the right word, as it wouldn't be installed into LocalPackageRepository by default.

Use case example would be the boost-vc100 package (is around 4.3GBs). If you have 10 solutions using it, that would be 43GB.

Another use case example is if the package downloaded and built the library from source (in the case of boost-vc100 this would allow only the target binaries to be built which would probably be less than 700MB, instead of having to download all possible binary configurations). This work would be excessive if this had to be done for every solution using boost-vc100.

MachineCache is already somewhat managed (if package count > 200 they are pruned by last access). When removing package from solution, it wouldn't be removed from the MachineCache, and would eventually be cleaned up if no projects were using that package.

Somewhat related discussion (see EddieGarmon's observations):
https://nuget.codeplex.com/discussions/236592