Story #3092: As a packager, I have a Pulp packaging guide
Add documentation about Pulp's setup.py requirements
This issue is limited in scope to platform only. We'll need additional, similar tickets for plugins.
When pip installing our various Pulp packages, the dependencies do not get automatically installed. setuptools has a way to express dependencies so that when users pip install packages their dependencies are also automatically pulled in0.
If this is working you should be able to:
0. Ensure that Pulp's Python based dependencies are not installed on your machine (neither via pip or yum).
1. locally install all setup.py files contained in the pulp repo1 using
python setup.py install
For Pulp3 I think this is mostly already in-progress2 so really this story is about adding docs indicating listing requirements is a requirement for Pulp's python packages.
#3 Updated by bmbouter about 3 years ago
- Checklist item Add documentation about Pulp's setup.py package requirements added
- Description updated (diff)
- Sprint Candidate changed from No to Yes
- Tags Documentation, Pulp 3 added
I'm marking this as Pulp3 since practically speaking the python package layout is changing considerably with pulp3.
#5 Updated by bmbouter about 3 years ago
- Checklist item Ensure that for Pulp3 all Python packages have a setup.py added
- Subject changed from All setup.py files should reference their dependencies so users can pip install Pulp packages to All setup.py files are present and should reference their dependencies so users can pip install Pulp packages
#6 Updated by bmbouter about 3 years ago
- Checklist item consolidate all setup.py files into exactly 1 that lives in the root added
- Tags deleted (
After a bit of research, I'm convinced that our current path is going to lead to issues later. We have a lot of setup.py files and this is going to be a problem when we go to publish on PyPI since each setup.py will be its own python package. These will all have to be published and also pip installing from a url will become pip installing from a bunch of urls. I don't know of a good reason to motivate this structure.
I believe we should have exactly 1 setup.py and it should be in the root. For example look at the way Django lays out their repository0.
Also the Django root is a lot cleaner than the pulp root. We could have a 'pulp' folder with all of the subpackages that live at
pulp.<packagehere> as subfolders of Pulp. This would both clean up the root and reduce the depth of the folder tree. We should probably file this as a separate task though.
I'm removing the documentation tag since this is a lot more than docs.
#7 Updated by semyers about 3 years ago
Yes, please let's do this. We do want some separation; my current expectation is that there will be a "pulp" package containing pulp.app, pulp.exceptions, and pulp.tasking. Then I assume we'll want to have separate packages for pulp.common and pulp.whateverwenametheclientlib.
#8 Updated by bmbouter about 3 years ago
- Checklist item deleted (
Ensure that for Pulp3 all Python packages have a setup.py)
- Checklist item deleted (
consolidate all setup.py files into exactly 1 that lives in the root)
- Checklist item changed from Add documentation about Pulp's setup.py package requirements to Add documentation about Pulp's setup.py package requirements (see comment 8 for details))
- Subject changed from All setup.py files are present and should reference their dependencies so users can pip install Pulp packages to Add documentation about Pulp's setup.py requirements
- Tags Documentation added
This issue is being purposed to capture the setup.py requirements going forward. The consolidation and reorganization is being created as a separate issue.The documentation requirements should include:
- That Python requirements be expressed in the setup.py
- That one setup.py exists for the entire pulp package, but two additional setup.py files are needed. One for pulp.common and another for the pulp CLI.
#11 Updated by bmbouter about 3 years ago
Where is this documentation going to live?
That is a good question. Really this is about cross-platform distribution, so perhaps we could create a section at (docs/contributing/cross_platform.rst). It maybe could live as a paragraph in the build docs, but that probably should be reserved for docs on how to build.
What do you think?
#12 Updated by email@example.com about 3 years ago
This documentation is about packaging. So I think it would be more appropriate for it to live in the Build guide0
#15 Updated by bmbouter about 3 years ago
- Checklist item changed from Add documentation about Pulp's setup.py package requirements (see comment 8 for details)) to Add documentation to build guide (docs/contributing/build_guide.rst) about Pulp's setup.py package requirements (see comment 8 for details))
Revised the checklist item based on discussion.
Please register to edit this issue