Project

Profile

Help

Pulp Python Roadmap » History » Sprint/Milestone 3

dalley, 10/25/2017 06:15 PM

1 1 dalley
# Pulp Python Roadmap
2
3
## Pulp Python Use Cases
4
5 3 dalley
### \[3.0\] Synced Package Index use case:
6 1 dalley
7 2 dalley
> As a user, I can configure an importer to sync a list of projects
8
>
9
>> Syncing a project includes all releases  
10
>> Syncing a release includes all distribution packages (all types)
11
>
12
> As a user, I can publish a repository:
13
>
14
>> Published Distributions are consumable by pip  
15
>> Published projects are consumable by other Pulps  
16
>> Published projects will include all releases and distributions
17 1 dalley
18 2 dalley
### Upload Use Case:
19 1 dalley
20 3 dalley
> \[3.0\] As a user, I can upload individual distribution packages (name, version, platform)
21 2 dalley
>
22
>> As a user I can upload an egg  
23
>> As a user I can upload a wheel  
24
>> As a user I can upload a sdist
25
>
26 3 dalley
> \[3.1+\] A twine user can publish a distribution package to Pulp
27 1 dalley
28 3 dalley
### \[3.1+\] Granular Sync
29 1 dalley
30 2 dalley
> Blacklist: As a user, I can disinclude some content of a project
31
>
32
>> By specifying (release, distribution package)  
33
>> I can disinclude content by distribution type
34
>
35
> Whitelist (Curated Package index Use Case) As a user, I can sync packages that reproduce a specific environment
36
>
37
>> From the output of pip freeze (loose use case)  
38
>> With the name, exact versions, and distribution type (tight use case)
39 1 dalley
40 3 dalley
### \[3.1+\] PyPI Publish use case
41 1 dalley
42 2 dalley
> As a user, I can publish a release to a remote package index
43 1 dalley
>
44 2 dalley
>> As a user, I can configure Pulp to publish to PyPI with my auth credentials
45 1 dalley
46 3 dalley
### \[3.1+\] Cache Use Case:
47 1 dalley
48 2 dalley
> As a user, I can use Pulp as a PyPI cache.
49 1 dalley
50
## Glossary:
51
52
### Project
53
54
> 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.  
55
> \[ https://packaging.python.org/glossary/#term-project \]
56
57
### Package Index:
58
59 2 dalley
> 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
60 1 dalley
61
### Release
62
63
> A snapshot of a Project at a particular point in time, denoted by a version identifier.  
64
> 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.
65
66
### Distribution Package
67
68 2 dalley
> "Distribution" for short. If we mean linux, we will say "distro"
69
70
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".
71 1 dalley
72
## Relevant PEPs:
73
74
  - https://www.python.org/dev/peps/pep-0241/ Final (Original Metadata)
75
  - https://www.python.org/dev/peps/pep-0301/ Final (HTTP API)
76
  - https://www.python.org/dev/peps/pep-0314/ Final (Metadata 1.1)
77
  - https://www.python.org/dev/peps/pep-0345/ Accepted (Metadata 1.2)
78
  - https://www.python.org/dev/peps/pep-0427/ Accepted (Wheel 1.0) 
79
  - https://www.python.org/dev/peps/pep-0491/ Draft (Wheel 1.9)
80
  - https://www.python.org/dev/peps/pep-0426/ Deferred (Metadata 2.0)
81
  - https://www.python.org/dev/peps/pep-0459/ Deferred (Standard Metadata Extensions)
82
  - https://www.python.org/dev/peps/pep-0503/ Accepted (Simple API)
83
  - https://www.python.org/dev/peps/pep-0508/ Active (Dep specification)