Project

Profile

Help

Story #138

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

Added by rbarlow almost 5 years ago. Updated 3 months ago.

Status:
NEW
Priority:
Low
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Platform Release:
Blocks Release:
Target Release - Python:
Backwards Incompatible:
Groomed:
No
Sprint Candidate:
No
Tags:
QA Contact:
Complexity:
Smash Test:
Verified:
No
Verification Required:
No
Sprint:

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-4400 contains the specifications for Python versions, and PyPA has created a reference library1 for this specification.

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

History

#1 Updated by rbarlow over 4 years ago

  • Description updated (diff)

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

#2 Updated by amacdona@redhat.com over 3 years ago

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

#3 Updated by amacdona@redhat.com over 1 year ago

  • Tags Pulp 3 added

#4 Updated by bizhang over 1 year ago

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

#5 Updated by bizhang over 1 year 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

#6 Updated by bmbouter 8 months ago

  • Tags deleted (Pulp 3)

#7 Updated by sterlinghatton 3 months ago

Keeping track of older versions is useful feature so you can refer or revert to any prior version of a file at any time.
https://www.metal-archives.com/users/HenryGilmore

Please register to edit this issue

Also available in: Atom PDF