One of the features we implemented recently was the concept of an Aggregate Package Source an a means of implementing the
Package Source Fallback Behavior.
The basic idea is the aggregate source is a special package source that is an aggregate of all the others. You might call it a "virtual" package source since it itself doesn't have a source URI.
Thus when you have the Aggregate source selected, a package with a dependency that's in another feed will install correctly. The common use case for this is if you have a package on a local machine, but it has dependencies on packages in an online feed,
you still want to be able to install the local package and its online dependencies.
However, there's a few behaviors we need to clarify and decide upon.
1. In the Add Package Dialog, I can explicitly specify one of the package sources. If I choose to install a package when I have a package source selected, the package should be installed from that source. The packages dependencies should also be
installed from that source, unless they don't exist in that source. If they don't exist, the fallback behavior should only fallback to the Aggregate source.
Is that the current behavior?
2. I assume the Aggregate source itself aggregates feeds using some ordering. If so, then it may still make sense to allow ordering of the package sources. Of course, this may not be all that important as we make the strong assumption that a package with
an id is the same no matter which feed it's in. Should we allow ordering or is that unnecessarily adding more complexity? Keep in mind that we do allow specifying a specific package source in the Add Package Dialog.