<div dir="ltr"><div>I'm excited to share that typed repositories is going forward, and will likely merge on Monday; see PRs here: <a href="https://pulp.plan.io/issues/5625#note-7">https://pulp.plan.io/issues/5625#note-7</a>. A huge thanks to @gmbnomis for unblocking the work with code and addressing the written concerns with his post here: <a href="https://pulp.plan.io/issues/5625#note-12">https://pulp.plan.io/issues/5625#note-12</a> I'd also like to call out the great work from @dalley, @dkliban, @ttereshc, @ipanova, and @davidavis.</div><div><br></div><div><br></div><div># What does this mean for integrators/users?</div><div><br></div><div>1) Instead of all repositories living at /pulp/api/v3/repositories/ each plugin will have a repositories endpoint. For example, pulp_file would be <span class="gmail-blob-code-inner gmail-blob-code-marker"><span class="gmail-pl-s"><span class="gmail-pl-pds"></span>/pulp/api/v3/repositories/<span class="gmail-x gmail-x-first gmail-x-last">file/file/</span><span class="gmail-pl-pds">.</span></span></span><br></div><div>2) RepositoryVersions will continue to be nested under the new repository endpoints, e.g. /pulp/api/v3/repositories/<span class="gmail-x gmail-x-first gmail-x-last">file/file/</span><span class="gmail-pl-pds"><UUID>/versions/</span></div><div>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 pulp_file.</div><div><br></div><div>POST <span class="gmail-blob-code-inner gmail-blob-code-marker"><span class="gmail-pl-s"><span class="gmail-pl-pds"></span>/pulp/api/v3/repositories/<span class="gmail-x gmail-x-first gmail-x-last">file/file/</span></span></span>sync/ remote={remote_href}.</div><div><br></div><div><br></div><div># What does this mean for plugin writers?</div><div><br></div><div>You'll need to define several new objects:</div><div><br></div><div>* A detail Repository, e.g. pulp_file's <a href="https://github.com/pulp/pulp_file/pull/299/files#diff-7b38205db1c4e6004b1a30ea0a2db477R41">https://github.com/pulp/pulp_file/pull/299/files#diff-7b38205db1c4e6004b1a30ea0a2db477R41</a></div><div>* A RepositorySerializer, e.g. pulp_file's <a href="https://github.com/pulp/pulp_file/pull/299/files#diff-0f3aaa9013e997a4c15352be12eb1881R60">https://github.com/pulp/pulp_file/pull/299/files#diff-0f3aaa9013e997a4c15352be12eb1881R60</a></div><div>* A RepositoryViewSet, e.g. pulp_file's <a href="https://github.com/pulp/pulp_file/pull/299/files#diff-4ea13541b01c775a55f25a8c4fab0aebR66">https://github.com/pulp/pulp_file/pull/299/files#diff-4ea13541b01c775a55f25a8c4fab0aebR66</a></div><div>* A RepositoryVersionViewset, e.g. pulp_file's <a href="https://github.com/pulp/pulp_file/pull/299/files#diff-4ea13541b01c775a55f25a8c4fab0aebR103">https://github.com/pulp/pulp_file/pull/299/files#diff-4ea13541b01c775a55f25a8c4fab0aebR103</a></div><div><br></div><div><br></div><div># Next Steps</div><div><br></div><div>Another reply to this thread will be sent once this is fully merged. Please share any concerns, corrections, questions, or ideas!<br></div><br><div>Thank you to everyone for the excellent collaboration and contribution. Pulp's users and its API is significantly better for this.</div><div><br></div><div>-Brian</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Nov 6, 2019 at 2:29 PM Brian Bouterse <<a href="mailto:bmbouter@redhat.com">bmbouter@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>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:  <a href="https://pulp.plan.io/issues/5625#note-8" target="_blank">https://pulp.plan.io/issues/5625#note-8</a> and another writeup of alternatives considered: <a href="https://pulp.plan.io/issues/5625#note-9" target="_blank">https://pulp.plan.io/issues/5625#note-9</a><br></div><div><br></div><div>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!</div><div><br></div><div>The primary motivation for typed repositories was to resolve the design challenges encountered on <a href="https://pulp.plan.io/issues/3541" target="_blank">https://pulp.plan.io/issues/3541</a> I'm going to do the following ASAP:</div><div><br></div><div>1) update 3541's design with the input from the thread:  <a href="https://www.redhat.com/archives/pulp-dev/2019-November/msg00012.html" target="_blank">https://www.redhat.com/archives/pulp-dev/2019-November/msg00012.html</a></div><div>2) create proof of concept PRs for the changes described so others can see asap.</div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Nov 3, 2019 at 11:54 AM Daniel Alley <<a href="mailto:dalley@redhat.com" target="_blank">dalley@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>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.</div><div><br></div><div>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].<br></div><div><br></div><div>[0] <a href="https://pulp.plan.io/issues/5625" target="_blank">https://pulp.plan.io/issues/5625</a></div><div>[1] <a href="https://pulp.plan.io/issues/5625#note-7" target="_blank">https://pulp.plan.io/issues/5625#note-7</a></div></div>
_______________________________________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-dev</a><br>
</blockquote></div>
</blockquote></div>