Story #2885
closedAs a User I can Publish Python packages in a way that is consumable by pip
100%
Description
This story is to extend the Publisher model and serializer with all Python specific fields and to implement publish.
Publisher.publish() should only be concerned with implementing the the simple API (which is consumed by pip). When this story is complete, the user will be able to create a Publisher, use it to publish a Repository with PythonPackageContent in it, creating a Publication. The user will be able to associate that Publication to a Distribution, and then pip will be able to install packages from the distribution.base_path.
https://wiki.python.org/moin/PyPISimple
https://www.python.org/dev/peps/pep-0301/
For every unique project in a repository pulp should distribute a HTML page located at: { distribution.base_path.}/simple/{project-name}/
This HTML page should contain every distribution package that shares the same project name and should look like:
<!DOCTYPE html>
<html>
<head>
<title>Links for pulpcore</title>
</head>
<body><h1>Links for pulpcore</h1>
<a href="{link-to-content}#md5={md5_hash}" rel="internal">{PythonPackageContentUnit.filename}</a><br/>
<a href="../../packages/02/ee/3ceee60a9694b9462c62eee3df0d2b3e525be82750bc3f9e8b4d21a0cfb7/pulpcore-3.0.0a1.dev5-py3-none-any.whl#md5=16f188762c54527815557af8a7067234" rel="internal">pulpcore-3.0.0a1.dev5-py3-none-any.whl</a><br/>
<a href="../../packages/03/6c/e48eb03fa930a36838b3ff92e4367d901bb09e725859e0030b3bb40dff77/pulpcore-3.0.0a1.dev4-py3-none-any.whl#md5=3c8c966327231e8a3f48b70866f3c56a" rel="internal">pulpcore-3.0.0a1.dev4-py3-none-any.whl</a><br/>
</body></html>
The json API (which would be consumed by other Pulps) is not a part of this story, and will be implemented in https://pulp.plan.io/issues/2886
Related issues
Updated by amacdona@redhat.com over 7 years ago
- Blocked by Task #2883: Create model(s) for Python's Releases added
Updated by dalley almost 7 years ago
- Groomed changed from No to Yes
- Sprint Candidate changed from No to Yes
Updated by amacdona@redhat.com almost 7 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to amacdona@redhat.com
Updated by amacdona@redhat.com almost 7 years ago
- Blocked by Task #3294: Update Python plugin to sync with versioned repositories added
Updated by jortel@redhat.com almost 7 years ago
- Sprint/Milestone changed from 53 to 54
Updated by dalley almost 7 years ago
- Assignee changed from amacdona@redhat.com to dalley
Updated by dalley over 6 years ago
- Status changed from ASSIGNED to POST
Updated by jortel@redhat.com over 6 years ago
- Sprint changed from Sprint 33 to Sprint 34
Added by dalley over 6 years ago
Updated by dalley over 6 years ago
- Status changed from POST to MODIFIED
- % Done changed from 0 to 100
Applied in changeset 3fd41a5532928f09a0f3fb13d45eb3dd912a8491.
Add publish implementation
Add support for publishing the PyPI simple API, and split the publish and sync code into different files.
closes #2885 https://pulp.plan.io/issues/2885