Various fixes to improve how installing collections and roles with dependencies works.
Most of this is related to variations of 'do the right thing when asked to install something that is already installed'. Either directly, or as a requirement.
Make RepositorySpec class used a semver.VersionInfo object directly instead of just a string.
drive action.install breadth first instead of depth first (ie, build up info for the stuff to be installed, install it, accumulate results of all of them, then check for new deps for all new installs, repeat)
Add 'db' methods to installed_repository_db for accessing a repo "directly" by specifying a full RepositorySpec instead of a set of constraints to match it. This reduced the number of dirs/files we have to check to answer questions like 'is namespace.name installed?'. Also reduced the number of
Repository() objects that need to be loaded from disk.
Fix up display output.
Some str() for objects that need them (RepositorySpec, Requirement). The current ones are kind of ugly but it is a start.
ISSUE TYPE
Bugfix Pull Request
MAZER VERSION
name = mazer
version = 0.2.1
config_file = /home/adrian/.ansible/mazer.yml
uname = Linux, newswoop, 4.18.12-100.fc27.x86_64, #1 SMP Thu Oct 4 16:22:17 UTC 2018, x86_64
executable_location = /home/adrian/venvs/galaxy-cli-py3-2/bin/mazer
python_version = 3.6.6 (default, Jul 19 2018, 16:29:00) [GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
python_executable = /home/adrian/venvs/galaxy-cli-py3-2/bin/python
SUMMARY
Various fixes to improve how installing collections and roles with dependencies works.
Most of this is related to variations of 'do the right thing when asked to install something that is already installed'. Either directly, or as a requirement.
ISSUE TYPE
MAZER VERSION
ADDITIONAL INFORMATION