Skip to content
This repository has been archived by the owner on Jul 30, 2020. It is now read-only.

On collection install, install run-time dependencies from meta/main.yml for each included role. #137

Closed
chouseknecht opened this issue Sep 11, 2018 · 4 comments

Comments

@chouseknecht
Copy link
Contributor

chouseknecht commented Sep 11, 2018

After installing an Ansible Collection:

  • traverse the roles directory, and for each role, install any dependencies enumerated in meta/main.yml.
@chouseknecht chouseknecht added this to the Mazer 1.0.0 milestone Sep 11, 2018
@chouseknecht chouseknecht changed the title Install all role run-time dependencies Install role run-time dependencies Sep 11, 2018
@alikins
Copy link
Contributor

alikins commented Nov 6, 2018

Part 2 ("After installing a traditional Ansible role, Install any dependencies enumerated in meta/main.yml") is implemented via:
#156
#158
#157

@alikins
Copy link
Contributor

alikins commented Nov 6, 2018

Part 1 ("After installing an Ansible Collection, traverse the roles directory, and for each role, install any dependencies enumerated in meta/main.yml."). This bug list two parts, but going to consider part2 here as split out into #138

This is not implemented currently as of (~0.3.0, 5ea70d3).

I'm not sure if it doing a transverse down into all of the roles looking for deps is consistent with the idea that a collection is the installable unit.

  • Dependencies specified in a roles meta/main.yml are going to be a dep that points to another role, not necessarily a collection. Granted, this is fuzzy for the case of traditional roles available in galaxy (where the role is also sort of a Collection).
  • role meta/main.yml deps are runtime deps and not necessarily install time requirements.
    • a role inside of a collection could have a meta/main.yml dep on another role inside of the collection, which would not have a name that mazer could resolve but ansible-playbook could resolve it at runtime.
    • a role inside of a collection could have a dep on a role that is not known to mazer (a locally installed role, or a role provided outside of mazer/galaxy)
  • All of the roles within a collection would need to share the same transitive requirements. ie, roles inside a collection could not have dependencies that conflict with each other since there would be no way to solve them all at the same time.

@alikins
Copy link
Contributor

alikins commented Nov 6, 2018

Removing part2 of original comment "After installing a traditional Ansible role: Install any dependencies enumerated in meta/main.yml" as it is split out into #138

@alikins alikins changed the title Install role run-time dependencies On collection install, install run-time dependencies from meta/main.yml for each included role. Nov 6, 2018
@alikins
Copy link
Contributor

alikins commented Mar 28, 2019

WONTFIX in lieu of collection being the unit of installation and dependencies. Roles that need roles from other collections should update the containing collection dep.

@alikins alikins closed this as completed Mar 28, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants