Project

Profile

Help

Actions

Pulp Python Roadmap » History » Revision 1

Revision 1/27 | Next »
dalley, 10/18/2017 09:46 PM


Pulp Python Roadmap

Pulp Python Use Cases

pulp_python can interact with any remote package index that supports the PyPI API:

  • As a user, I can sync individual distribution packages (name, version, platform)
  • As a user I can sync an egg from a remote package index
  • As a user I can sync an wheel from a remote package index
  • As a user I can sync an sdist from a remote package index
  • As a user, I can sync a release and all its distributions packages (name, version)
  • As a user, I can sync all distributions in a project (name)
  • As a user, I can blacklist distributions
  • from a repository
  • globally
  • As a user, I can filter the distributions synced based on version (name, version qualifier)
  • As a user, I can reproduce my environment by syncing packages from the output of pip freeze (name, and exact versions)
  • As a user, I can publish a distribution package to a remote package index
  • As a user, I can configure Pulp to publish to PyPI with my auth credentials

pulp_python can act as a package index that supports the PyPI API

  • I can upload a distribution package to Pulp (standard Pulp upload API)
  • A twine user can publish a distribution package to Pulp
  • As a pip user I can install a package from a Pulp publication
  • As a user, Pulp can cache PyPI packages

Prioritized Use Cases

  • As a user, I can sync all distributions in a project (name)
  • As a pip user I can install a package from a Pulp publication
  • I can upload a distribution package to Pulp (standard Pulp upload API
  • As a user, Pulp can cache PyPI packages
  • As a user, I am in control of which packages are in my repositories:
  • As a user, I can filter the distributions synced based on version (name, version qualifier)
  • As a user, I can sync a release and all its distributions packages (name, version)
  • As a user, I can sync individual distribution packages (name, version, platform)
  • As a user I can sync an egg from a remote package index
  • As a user I can sync an wheel from a remote package index
  • As a user I can sync an sdist from a remote package index
  • As a user, I can reproduce my environment by syncing packages from the output of pip freeze (name, and exact versions)
  • As a user, I can publish a distribution package to PyPI
  • As a user, I can configure Pulp to publish to PyPI with my auth credentials
  • A twine user can publish a distribution package to Pulp
  • As a user, I can blacklist distributions
  • from a repository
  • globally

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)

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

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 · 1 revisions