I submitted this pull request to devpi, which would cause devpi to "shadow" package versions across indexes. I will quote my description of the pull request here:

Say I have package 'a' on index 'x' which lists index 'y' as a base index. That is, 'x' inherits from 'y'. A common use case is to want to install package 'a' from 'x' and 'y'. If I wanted the version of 'a' listed on in the 'y' index, I would have listed that index in my pip configuration. But I want the version of 'a' listed in index 'x', not 'y'.

Currently, if I as a user point pip to index 'x', pip will only install 'a' from 'x' if the package 'a' is of a later version than the package 'a' listed in 'y'. But in our scenario, pip should always install the package 'a' listed in index 'x', not 'y', else there would be no need for multiple repositories at all.

This patch fixes that. With this patch, if devpi is queried for a package 'a' from index 'x', it will get package 'a' from 'x' every time, even if a newer version of 'a' is listed in index 'y'.

The pull request in its current form would have changed the way devpi pulls packages, and would have broken important workflows. However, for other workflows, I feel this feature is relevant and handy. I therefore request that:
  1. The "shadow indexes" feature be added to devpi, although by default it be turned off.
  2. The feature should/could be enabled either by command line option or configuration file.
I think that index shadowing isn't something for everyone, but I think a lot of people would find it useful. We certainly would in our shop.

Thanks