On Mon, Mar 7, 2022 at 3:30 PM Pavel Cahyna <pcahyna@redhat.com> wrote:
On Mon, Mar 07, 2022 at 03:24:27PM -0700, Richard Megginson wrote:
> On Mon, Mar 7, 2022 at 3:21 PM Pavel Cahyna <pcahyna@redhat.com> wrote:
>
> > On Mon, Mar 07, 2022 at 03:16:30PM -0700, Richard Megginson wrote:
> > > On Mon, Mar 7, 2022 at 3:00 PM Pavel Cahyna <pcahyna@redhat.com> wrote:
> > >
> > > > Hello Rich,
> > > >
> > > > On Mon, Mar 07, 2022 at 11:27:12AM -0700, Richard Megginson wrote:
> > > > > On Mon, Mar 7, 2022 at 11:25 AM Till Maas <till@redhat.com> wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > Am Mo., 7. März 2022 um 19:14 Uhr schrieb Richard Megginson <
> > > > > > rmeggins@redhat.com>:
> > > > > >
> > > > > >> Some roles now have dependencies on collections, since with
> > > > ansible-core
> > > > > >> some of the plugins are now external to ansible and only
> > available via
> > > > > >> collections.
> > > > > >>
> > > > > >> for background see
> > > > > >> https://github.com/linux-system-roles/storage/issues/258
> > > > > >>
> > > > > >> The Ansible team regards this as a "not my problem" issue.
> > > > > >>
> > > > > >> I was thinking of adding a non-standard file like
> > > > > >> `meta/collection-requirements.yml` to the roles that need it - at
> > > > least we
> > > > > >> could document that users will have to first do
> > > > > >> ansible-galaxy role install linux-system-roles.storage
> > > > > >> then use
> > > > > >> ansible-galaxy collection install -r
> > > > > >>
> > > >
> > /path/to/roles/linux-system-roles.storage/meta/collection-requirements.yml
> > > > > >>
> > > > > >> Any ideas?
> > > > > >>
> > > > > >
> > > > > > if a user can install a collection it seems best to me if they also
> > > > > > installed the system roles collection instead of the system roles
> > role.
> > > > > > Would this allow it to depend on the other collection?
> > > > > >
> > > > >
> > > > > Yes.  It is not a problem for collections to depend on other
> > collections.
> > > > > It is only a problem if a role wants to depend on a collection.
> > > > >
> > > > > There are apparently a lot of users who still like to use roles, for
> > > > > various reasons.  So I would like to be able to support such users.
> > > >
> > > > Do those users need to use the ansible-core package, instead of ansible
> > > > (which should still include the usual set of modules)?
> > > >
> > > > I.e. do you need to support standalone roles and ansible-core
> > > > simultaneously?
> > > >
> > >
> > > I don't know.  I suspect there may be a few users out there who want the
> > > smallest footprint possible - ansible-core, a single role, and its
> > > dependencies.
> >
> > Hmm. Presumably, if they are using standalone / legacy roles, it is
> > because they are used to the original structure of Ansible content (no
> > collections) and thus have not minded so far that everything has been
> > bundled and the footprint is larger than strictly necessary.
>
>
> That's probably a good assumption, but I don't have any real data to
> confirm.

I would not worry too much about it then, but OTOH having such a file
might be useful anyway. If each role documents this way in a machine
readable format which collections it needs, you can then autogenerate
the dependencies for the entire collection from those files.

Ok, then I propose meta/collection-requirements.yml for such a purpose.  Will also come in handy for CI testing when we test ansible-core + legacy role.
 
(Assuming
that you still keep the sources as legacy roles and auto-convert to a
collection).

Yes, and for the foreseeable future.
 

P.