On Tue, Oct 19, 2021 at 3:36 PM David Moreau-Simard <dmsim...@redhat.com> wrote:
> (replying from hyperkitty as I'm not subscribed to fedora-devel, hopefully > this works) > > > How about this: > > > > * Have a single ansible dist git repo with a single spec file > > * The source would be https://pypi.org/project/ansible/ > > There couldn't be a single source because 'ansible' and 'ansible-core' are > two distinct packages: > - https://pypi.org/project/ansible/ > - https://pypi.org/project/ansible-core/ > > Since >=2.10.x, 'ansible' is mostly composed of the ansible_collections > directory with a selection of included collections whereas 'ansible-core' > provides the CLI, runtime, builtin modules/plugins, etc. > > > * Produce multiple RPM packages from this spec file > > * ansible-core > > * one RPM package for each collection in the pypi ansible package - > > these could be created programatically in the spec file using LUA or > other > > spec file automation to create separate package, documentation, files, > > Requires, etc. for each collection package > > * a package called "ansible" which is essentially a meta-package > which > > simply does a "Requires: ansible-core" and also "Requires" every > > collection > > package > > > > That way, there is a single source for any/all combinations of > ansible-core > > + collection rpms, or the entire ansible containing everything. > > > > One downside is that this restricts the ability to produce fixes or > > upgrades for individual collections independently of the rest of the > > Ansible packages. But I think that's only a problem if > > > > * the independent collections change frequently > > * the https://pypi.org/project/ansible lags behind and doesn't keep up > > with the collections > > In fact, we first considered proposing something that was similar to what > you suggest -- an ansible package that pulls in individually packaged > collections as well as ansible-core - before settling on the change at > https://fedoraproject.org/wiki/Changes/Ansible5. > > We concluded that it would be hard to do in practice because: > - Ansible 5 will ship with ~95 individual collections ( > https://github.com/ansible-community/ansible-build-data/blob/main/5/ansible.in > ) > - Of these 95 collections, there's only about a dozen that are already > packaged (I wrote down some notes here: > https://hackmd.io/iAloYlTQQ3e-yi99w_o54A) > - The versions of individually packaged collections could diverge from > those shipped inside the 'ansible' package (ex: > https://github.com/ansible-community/ansible-build-data/blob/main/5/ansible-5.0.0a2.deps > ) > - Even considering we develop tooling and automation around the process, > it would still be error prone and a lot of work without mentioning the > administrative overhead of maintaining 95+ packages > > In short: it would require a non-negligible amount of effort to package > each individual collection, keep them updated while in sync with the > versions that the upstream package ships without conflicts. > ok > The change that is currently proposed is somewhat of a middle ground to > unblock the situation and allow us to move forward: > - Users who aren't interested in the "batteries included" or "kitchen > sink" package can install ansible-core (note that ansible-core by itself > contains far less modules/plugins than ansible 2.9.x as those were split > out >=2.10.x) > Indeed - https://docs.ansible.com/ansible-core/2.11/collections/ansible/builtin/index.html (but note that this list doesn't include filters, or jinja2 built-ins) - Users of the 'ansible-core' package can install collections from Ansible > galaxy or from individually packaged collections > - Users of the 'ansible' package can install collections from Ansible > galaxy or from individually packaged collections and they will have > precedence over the ones installed by 'ansible' by default > - It doesn't prevent collections from being individually packaged if a > maintainer wants to do so > > Hopefully that makes sense and I'm happy to answer questions. > Yes, this makes sense. _______________________________________________ > devel mailing list -- devel@lists.fedoraproject.org > To unsubscribe send an email to devel-le...@lists.fedoraproject.org > Fedora Code of Conduct: > https://docs.fedoraproject.org/en-US/project/code-of-conduct/ > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines > List Archives: > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org > Do not reply to spam on the list, report it: > https://pagure.io/fedora-infrastructure > >
_______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure