Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vendor enrich library to reduce packaging dependency #1781

Closed
ganeshrn opened this issue Dec 14, 2021 · 2 comments
Closed

Vendor enrich library to reduce packaging dependency #1781

ganeshrn opened this issue Dec 14, 2021 · 2 comments
Labels
AAP Ansible Automation Platform enhancement research
Milestone

Comments

@ganeshrn
Copy link
Member

ganeshrn commented Dec 14, 2021

Summary

Vendor enrich library to reduce packaging dependency https://pypi.org/project/enrich/
Based on the usability research viability to move it to ansible-compat library

Issue Type
  • Feature Request
  • Research
OS / ENVIRONMENT

RPM-based downstreams

Desired Behaviour

An unpackaged downstream dependency shouldn't get in the way of packaging our project for that ecosystem.

Actual Behaviour

In order to package our project, it is also necessary to package extra projects like enrich that are our dependencies.

@ganeshrn ganeshrn added new Triage required bug AAP Ansible Automation Platform labels Dec 14, 2021
@ganeshrn ganeshrn added enhancement and removed bug labels Dec 14, 2021
@webknjaz
Copy link
Member

Sorin and I talked about the vendoring strategies the other day. So let me document a few I know of:

  1. Implement the same ansible-core has: https://github.com/ansible/ansible/tree/97ef1d0/lib/ansible/_vendor. TL;DR they have an empty directory within the repository that is auto-added to the Python import path and if downstream packagers have problems with packaging the dependencies from PyPI separately, they could drop in those right in this directory and it'll work magically without forcing them to also package those deps.
  2. Implement what pip does: https://github.com/pypa/pip/tree/main/src/pip/_vendor#automatic-vendoring. TL;DR they have the vendored deps committed in the repository but the content of the vendor folder is managed automatically using the https://pypi.org/p/vendoring package.
  3. Implement what setuptools does: Stop vendoring packages pypa/setuptools#2825 / Declare dependencies in metadata pypa/setuptools#2764. TL;DR there's efforts to stop/minimize special-casing of the deps as much as possible and let downstreams do their thing. Where not possible, they'll try to use the vendoring package made by the pip maintainers. This option is mostly about not caring on the upstream side and solving the problem within the spec file.

@ssbarnea ssbarnea removed the new Triage required label Jan 10, 2022
@ssbarnea ssbarnea added this to the 6.0.0 milestone Feb 4, 2022
@ssbarnea
Copy link
Member

No need to do it, there are rpms for it.

Repository owner moved this from Todo to Done in 🧰 devtools project board Mar 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AAP Ansible Automation Platform enhancement research
Projects
Archived in project
Development

No branches or pull requests

3 participants