Optimize dependency version resolution when root dependencies fail.
Avoid querying the package registries repeatedly for invalid packages.
Prefer version tags to branches when determining package versions using GIT.