[Pulp-dev] [Breaking Change] Typed Repositories

Brian Bouterse bmbouter at redhat.com
Sat Nov 9 16:53:46 UTC 2019

I'm excited to share that typed repositories is going forward, and will
likely merge on Monday; see PRs here:
https://pulp.plan.io/issues/5625#note-7. A huge thanks to @gmbnomis for
unblocking the work with code and addressing the written concerns with his
post here: https://pulp.plan.io/issues/5625#note-12 I'd also like to call
out the great work from @dalley, @dkliban, @ttereshc, @ipanova, and

# What does this mean for integrators/users?

1) Instead of all repositories living at /pulp/api/v3/repositories/ each
plugin will have a repositories endpoint. For example, pulp_file would be
2) RepositoryVersions will continue to be nested under the new repository
endpoints, e.g. /pulp/api/v3/repositories/file/file/<UUID>/versions/
3) Operations that create a new RepositoryVersion are moved to the
repository URL itself or an action URL underneath it. For example, 'sync'
is no longer on a Remote, but should be an action endpoint under repository
if plugin support it. For example, here's how to trigger a sync for

POST /pulp/api/v3/repositories/file/file/sync/ remote={remote_href}.

# What does this mean for plugin writers?

You'll need to define several new objects:

* A detail Repository, e.g. pulp_file's
* A RepositorySerializer, e.g. pulp_file's
* A RepositoryViewSet, e.g. pulp_file's
* A RepositoryVersionViewset, e.g. pulp_file's

# Next Steps

Another reply to this thread will be sent once this is fully merged. Please
share any concerns, corrections, questions, or ideas!

Thank you to everyone for the excellent collaboration and contribution.
Pulp's users and its API is significantly better for this.


On Wed, Nov 6, 2019 at 2:29 PM Brian Bouterse <bmbouter at redhat.com> wrote:

> After much, great work from @dalley on the typed repository prototype,
> unfortunately, we believe it cannot be adopted at this time. Here's a
> writeup of why:  https://pulp.plan.io/issues/5625#note-8 and another
> writeup of alternatives considered:
> https://pulp.plan.io/issues/5625#note-9
> This writeup came from a discussion with other core devs giving input on
> various options as well. If we've misread the opportunity here please let
> us know!
> The primary motivation for typed repositories was to resolve the design
> challenges encountered on https://pulp.plan.io/issues/3541 I'm going to
> do the following ASAP:
> 1) update 3541's design with the input from the thread:
> https://www.redhat.com/archives/pulp-dev/2019-November/msg00012.html
> 2) create proof of concept PRs for the changes described so others can see
> asap.
> On Sun, Nov 3, 2019 at 11:54 AM Daniel Alley <dalley at redhat.com> wrote:
>> In accordance with the rationale laid out in issue #5625 [0], we will be
>> merging a change that will make repositories a typed object in Pulp.  This
>> will require some work by plugin writers to become compatible post-merge.
>> We're aiming to merge these changes on Wednesday if possible.  There is
>> still a bit of work to be done to fix the client REST API bindings, and to
>> get all of the plugins migrated.  The PRs are being tracked in the comments
>> of the issue [1].
>> [0] https://pulp.plan.io/issues/5625
>> [1] https://pulp.plan.io/issues/5625#note-7
>> _______________________________________________
>> Pulp-dev mailing list
>> Pulp-dev at redhat.com
>> https://www.redhat.com/mailman/listinfo/pulp-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20191109/d1c6ea9f/attachment.htm>

More information about the Pulp-dev mailing list