Skip to content

[PULP-1045] Add support for serving superseded publications for a retention period#7546

Draft
pedro-psb wants to merge 1 commit intopulp:mainfrom
pedro-psb:feature/add-distributed-publication
Draft

[PULP-1045] Add support for serving superseded publications for a retention period#7546
pedro-psb wants to merge 1 commit intopulp:mainfrom
pedro-psb:feature/add-distributed-publication

Conversation

@pedro-psb
Copy link
Copy Markdown
Member

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: #7514

📜 Checklist

  • Commits are cleanly separated with meaningful messages (simple features and bug fixes should be squashed to one commit)
  • A changelog entry or entries has been added for any significant changes
  • Follows the Pulp policy on AI Usage
  • (For new features) - User documentation and test coverage has been added

See: Pull Request Walkthrough

@pedro-psb pedro-psb changed the title Add support for serving superseded publications for a retention period [PULP-1045] Add support for serving superseded publications for a retention period Mar 30, 2026
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>
@pedro-psb pedro-psb force-pushed the feature/add-distributed-publication branch from 6ba2d0d to 20407b0 Compare March 30, 2026 20:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Distributed Publication Retention Cache

1 participant