-
Notifications
You must be signed in to change notification settings - Fork 39
Description
As we work to populate a more general purpose package index, we want to quickly and easily identify all available versions of packages and build them. One way to do that would be to update the bootstrap commands to have a mode to build all versions of packages that match the requirements, instead of only the latest version.
Requirements
The bootstrap commands should take a flag to enable a mode of building multiple versions of a package. When the mode is activated, all versions of a package that match the requirements specifiers in the top level list or in any of their dependencies should be included in the build. By default only the newest version of each package that matches the rule should be included.
When resolving multiple versions for a rule, all other filters should be honored. This includes the constraints for the package, if any, and the minimum age (#877 ).
Expanding the set of packages to be bootstrapped like this will be quite expensive, so we need to optimize as much as we can. Any version that appears in the cache server should be skipped completely (so neither the build nor install dependencies of that version should be bootstrapped). The most effective way to do that is likely to filter the resolved list of versions based on what already exists, rather than relying on the bootstrapper to handle them recursively.