Project

Profile

Help

Story #138

closed

As a user, I can express how many old versions of a package to keep during sync

Added by rbarlow almost 10 years ago. Updated almost 4 years ago.

Status:
CLOSED - DUPLICATE
Priority:
Low
Assignee:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
Target Release - Python:
Groomed:
No
Sprint Candidate:
No
Tags:
Sprint:
Quarter:

Description

Similar to the yum importer's --retain-old-count feature, we should have a way for users to express to us which versions of a package to keep during syncs. There are a few options we could consider:

0) We could do exactly as --retain-old-count does, allowing the user to specify an integer of how many packages to keep with 0 meaning keep them all.

1) We could instead allow the user to express ranges of versions they would like to sync with the package names. Something along the lines of "1.7<=Django<1.8" could express to sync and keep all Django versions in that range.

2) We could also potentially accomplish both of the above.

I considered option 1 because PyPI is quite a bit different than a yum repository. It gets all versions that a package ever goes through, with sudden API changes as they occur. Yum repositories typically stick to a particular version of a package, and they patch it. Users may be interested in expressing the packages they want to keep in terms of API stability. Option 2 would allow them to do that while also limiting the number of compatible versions they keep. If we decide to go with the last option, we may decide to break this into two stories if that makes sense.

Deliverables:

  • Provide some way for users to limit how many versions of a package they wish to keep via the CLI
  • Modify the importer to honor this new importer setting
  • Write a documentation example of how to use the setting with the CLI
  • Write release notes
  • Document the new importer setting in the importer technical documentation
  • Write unit tests

References:
PEP-440[0] contains the specifications for Python versions, and PyPA has created a reference library[1] for this specification.

[0] https://www.python.org/dev/peps/pep-0440/#version-specifiers
[1] https://packaging.pypa.io/en/latest/specifiers/


Related issues

Related to Python Support - Refactor #6930: Use Bandersnatch to perform package metadata fetching and filteringMODIFIEDgerrod

Actions
Actions #1

Updated by rbarlow over 9 years ago

  • Description updated (diff)

Added links to PEP-440 and a reference library to the description.

Actions #2

Updated by amacdona@redhat.com over 8 years ago

  • Related to Story #2041: As a user, I can whitelist packages to sync with standard python syntax added
Actions #3

Updated by amacdona@redhat.com over 6 years ago

  • Tags Pulp 3 added
Actions #4

Updated by bizhang over 6 years ago

  • Related to deleted (Story #2041: As a user, I can whitelist packages to sync with standard python syntax)
Actions #5

Updated by bizhang over 6 years ago

  • Priority changed from Normal to Low

AFAIK no requests has been made for a rolling feature for pulp_python. We will happily accept and merge a PR for this feature, but it is not on the team's priority list. Please reply on this issue if you want to implement this feature and we will gladly help you

Actions #6

Updated by bmbouter over 5 years ago

  • Tags deleted (Pulp 3)
Actions #7

Updated by dalley over 4 years ago

  • Related to Refactor #6930: Use Bandersnatch to perform package metadata fetching and filtering added
Actions #8

Updated by gerrod almost 4 years ago

  • Status changed from NEW to CLOSED - DUPLICATE

Issue migrated over to GitHub: https://github.com/pulp/pulp_python/issues/339

Also available in: Atom PDF