Package Source Fallback Behavior


When installing a package's dependency, we should iterate through each package source looking for the dependency. For example, if I set up a local package source c:\packages and put my ReallyCool.nupkg package in there, and that package depends on "Ninject", when installing ReallyCool, we should be able to find Ninject in one of the other package sources.

Order of fallback:
  1. Look in specified feed (if specified via -Source).
  2. Look in default feed.
  3. Look in all others.
Spec: http://nupack.codeplex.com/wikipage?title=Package%20Source%20Fallback%20Behavior
Closed Dec 7, 2010 at 10:13 PM by AnglicanGeek
Verified that when using the "All" aggregate source, dependencies will be resolved across package sources


Haacked wrote Oct 12, 2010 at 9:05 PM

As part of this, let's remove "Current Package Source" from the console. Ordering is dependent on the order in settings.

Haacked wrote Oct 12, 2010 at 9:09 PM

Actually, hold that thought. I'll assign to myself. We need to think this through some more.

Haacked wrote Oct 19, 2010 at 9:11 PM

Please look at the design and start a discussion.

Haacked wrote Oct 20, 2010 at 9:34 PM

Updated design doc. Make it so.

Haacked wrote Oct 27, 2010 at 9:20 PM

Potential perf problems with aggregating multiple feeds and paging. looking at doing a bit of pre-fetching for the pages surrounding the current page in order to improve perf since most people won't page across more than two or three pages after doing a search in the first place.

Something like:
  1. Unfiltered. Pre-cache first three pages.
  2. User types search term: Pre-cache 7 pages (3 before, current, 3 after)

Haacked wrote Oct 27, 2010 at 9:30 PM

We're looking at doing feed aggregation as a solution to this. Spec needs to be update: http://nupack.codeplex.com/wikipage?title=Package%20Source%20Fallback%20Behavior

dfowler wrote Oct 31, 2010 at 9:46 PM

This is mostly done. Next steps are to get it into the dialog and console.

dfowler wrote Nov 7, 2010 at 8:19 AM

Feature Complete:
Core Changes -> cf07e6041600 - 31c2e5cce867
Unit tests -> 4acf97ff59c2 and ca78ddcab3e9
VS Integraiton -> 16cec4e606e4 - eb837e094ccc

We still have some minor caching left to do in the dialog when paging over aggregates.

Kiliman wrote Nov 7, 2010 at 1:04 PM

@Haacked, since I've been working on the Add Package Source dialog, do you think we should consider adding "Ordering" to the mix?

Currently new packages are added at the end of the list. The only "order" change is when the user sets the "Active" source. Perhaps I can add "Move Up" / "Move Down" buttons. This way, ordering is explicit.

Haacked wrote Nov 7, 2010 at 7:49 PM

@kiliman. Yeah, please open a new bug for the ordering. Can you quickly put together a mock-up of what the UI would look like?

dfowler wrote Nov 8, 2010 at 8:38 AM

Also, don't allow ordering the Aggregate.

Kiliman wrote Nov 8, 2010 at 1:47 PM

@dfowler, I just saw the All (Aggregate source) option. I'm not sure how that impacts ordering. You said don't order the Aggregate. Does that mean it's always first? If so, doesn't that defeat the whole purpose of ordering? And if we're always going to search all packages (in order specified), what's the point of the aggregate source then?

Kiliman wrote Nov 8, 2010 at 2:19 PM

@Haacked, I create issue #356 and attached a mock-up of the UI.

HintonBR wrote Nov 18, 2010 at 5:05 PM

Is this in CTP 2 - if so any documentation on how it works? We have a dependency on Unity with one of our packages and it isn't resolving unless the Unity package is in the same feed. We are using CTP2

dfowler wrote Nov 19, 2010 at 3:20 PM

This is RTM not CTP2.

AnglicanGeek wrote Dec 7, 2010 at 10:09 PM

N.B., this only works when you're on the "All" source aggregate.