Project

Profile

Help

Actions

Pulp Python Roadmap » History » Revision 8

« Previous | Revision 8/27 (diff) | Next »
dalley, 10/25/2017 06:27 PM


Pulp Python Roadmap

_This is a living document that is moving towards a long term plan to develop pulp_python 3.0 and beyond._

Pulp Python Use Cases

[3.0] Synced Package Index use case:

As a user, I can configure an importer to sync a list of projects

Syncing a project includes all releases
Syncing a release includes all distribution packages (all types)

As a user, I can publish a repository:

Published Distributions are consumable by pip
Published projects are consumable by other Pulps
Published projects will include all releases and distributions

Upload Use Case:

[3.0] As a user, I can upload individual distribution packages (name, version, platform)

As a user I can upload an egg
As a user I can upload a wheel
As a user I can upload a sdist

[3.1+] A twine user can publish a distribution package to Pulp

[3.1+] Granular Sync

Blacklist: As a user, I can disinclude some content of a project

By specifying (release, distribution package)
I can disinclude content by distribution type

Whitelist (Curated Package index Use Case) As a user, I can sync packages that reproduce a specific environment

From the output of pip freeze (loose use case)
With the name, exact versions, and distribution type (tight use case)

[3.1+] PyPI Publish use case

As a user, I can publish a release to a remote package index

As a user, I can configure Pulp to publish to PyPI with my auth credentials

[3.1+] Cache Use Case:

As a user, I can use Pulp as a PyPI cache.

Glossary:

Project

A library, framework, script, plugin, application, or collection of data or other resources, or some combination thereof that is intended to be packaged into a Distribution.
[ https://packaging.python.org/glossary/#term-project ]

Package Index:

A repository of distributions with a web interface to automate package discovery and consumption. (this should align to a pulp repo). A Package Index is assumed to implement the PyPI APIs

Release

A snapshot of a Project at a particular point in time, denoted by a version identifier.
Making a release may entail the publishing of multiple Distributions. For example, if version 1.0 of a project was released, it could be available in both a source distribution format and a Windows installer distribution format.

Distribution Package

"Distribution" for short. If we mean linux, we will say "distro"
A versioned archive file that contains Python packages, modules, and other resource files that are used to distribute a Release. The archive file is what an end-user will download from the internet and install. A project may contain many releases, and releases may contain many distribution packages. Can be type sdist, bdist, etc. "Distribution package" is used instead of "package" to avoid confusion with "import packages" or linux "distributions".

Relevant PEPs:

Updated by dalley about 7 years ago · 8 revisions