ansible / mazer

Experimental Ansible Galaxy Content Manager
GNU General Public License v3.0
114 stars 18 forks source link

Add collections lock file support (Fixes #173) #271

Closed alikins closed 5 years ago

alikins commented 5 years ago
SUMMARY

Add --collections-lock art to a 'collections lock'

Add support for 'collection lockfiles'.

A collections lock specifies a set of collections to install and the version specs to match.

Fixes #173

Add collections_lock and collections_lockfile models.

Add ansible_galaxy.collections_lockfile with a yaml loader for a collections lockfile.

Update cli and install action to use the collections lockfile.

The contents of collections lock file is a yaml file, containing a dictionary. The dictitionary is the same format as the 'dependencies' dict in galaxy.yml.

ie, The keys are collection labels (the namespace and name dot separated ala 'alikins.collection_inspect').

The values is a version spec string. ie "*" or "==1.0.0".

Example contents of a collections lock file:

alikins.collection_inspect: "1.0.0"
alikins.collection_ntp: ">0.0.1,!=0.0.2"
ISSUE TYPE
MAZER VERSION
name = mazer
version = 0.5.0
config_file = /home/adrian/.ansible/mazer.yml
uname = Linux, newswoop, 5.0.5-200.fc29.x86_64, #1 SMP Wed Mar 27 20:58:04 UTC 2019, x86_64
executable_location = /home/adrian/venvs/mazer_0.4.0_py36/bin/mazer
python_version = 3.6.8 (default, Jan 27 2019, 09:00:23) [GCC 8.2.1 20181215 (Red Hat 8.2.1-6)]
python_executable = /home/adrian/venvs/mazer_0.4.0_py36/bin/python