pulp / pulp/pulp_deb

Hoisting Distributed Publication to pulpcore

Open
#1,430 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Triage-Needed
Dominant language
Python
Stars
71
Forks
91
Avg merge
1d 19h
Merged PRs (30d)
22

Description

Hey! I've been working on hoisting the Distributed Publication feature to pulpcore (https://github.com/pulp/pulpcore/issues/7514). This was motivated by RPM requiring a solution to the same problem.

First of all I wanna hear some feedback or concerns about the initiative.
Then discuss superseeding plan, if that's ok.

Superseeding plan

I have an implementation in place with basically the same approach as the one in place here, except it handles pass-through cases (e.g, pulp_file). In pass through publications, no published artifact is involved and ContentArtifacts are matched directly.

The feature adds a core model with the same name, but with some care taken to avoid name collisions. As it's internal, we don't need to worry with API collisions. Because the content handler calls pulp_deb's content_handler customization, deb will keep using it's own implementation if no action is taken.

Given that, here are some options I could think of for superseeding:

Let $v_0$ be the pulpcore version where the feature is released.

  1. When deb bumps the bump pulpcore lowerbound to $>=v_0$, deb's implementation gets removed.
    • Until then, deb will use it's own implementation
    • The system will have doubled DistributedPublication objects. Pulpcore one will be ignored
    • Very low effort
  2. Right now, add conditional to the code to use core's implementation if available. Then finalize with (2)
    • Deb uses core implementation right away, when possible
    • We might skip deb's DistributedPublication creation if core's implementation is detected (no duplicates).
    • Medium effort

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading pulpcore issue #7514 and the linked pulp_rpm issue #4236, then inspect the existing Distributed Publication implementation in pulp_deb. Compare the proposed pulpcore implementation with the pass-through behavior and content handler customization described here. Done means agreeing on a superseding plan and documenting the migration or compatibility work required.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.