[PULP-1045] Add support for serving superseded publications for a retention period#7546
[PULP-1045] Add support for serving superseded publications for a retention period#7546
Conversation
d668814 to
4b940b8
Compare
Introduces a DistributedPublication model to track which publications are associated with each distribution. When a new publication becomes the latest for a repository, older ones are retained and served by the content handler for a configurable grace period, allowing clients to continue fetching from superseded publications without interruption. Handles publications with pass-trough=True|False. The behavior is sumarized: Given: - CA=ContentArtifact, - PA=PublishedAritfact - PU=Publication - RV=RepositoryVersion - DP=DistributedPublication - DT=Distribution Then CA is retrieved with: - pass-through: CA<-PA<-PU<-DP->DT - no-pass-through: CA<-RV<-PU<-DP->DT Closes: pulp#7514 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4b940b8 to
2ad945c
Compare
2ad945c to
c87f525
Compare
|
Can you make sure this doesn't collide with https://github.com/pulp/pulp_deb/blob/main/pulp_deb/app/models/publication.py#L136 |
I've tested with pulp_deb running alogside. There was a collision with the reverse relationship name, then I've simply renamed the reverse relationship. I'll create a test PR on deb to be sure.
Yes, I'll open an issue there and start a conversation. |
|
The test PR is fine: pulp/pulp_deb#1429 |
|
I've opened the issue for the superseeding with some options: pulp/pulp_deb#1430 |
|
I want a review of this, but I'd like pulp_deb folks feedback (on the general operation) before merging. |
Introduces a DistributedPublication model to track which publications are associated with each distribution. When a new publication becomes the latest for a repository, older ones are retained and served by the content handler for a configurable grace period, allowing clients to continue fetching from superseded publications without interruption.
Handles publications with pass-trough=True|False. The behavior is sumarized:
Given:
Then CA is retrieved with:
Closes: #7514
📜 Checklist
See: Pull Request Walkthrough