<div dir="ltr">Looks good! I added a few questions below.<br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 25, 2017 at 12:47 PM, Daniel Alley <span dir="ltr"><<a href="mailto:dalley@redhat.com" target="_blank">dalley@redhat.com</a>></span> wrote:<br><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 class="gmail-m_-3246061218362080022gmail-ajy"><img class="gmail-m_-3246061218362080022gmail-ajz" id="gmail-m_-3246061218362080022gmail-:gn" src="https://mail.google.com/mail/u/1/images/cleardot.gif" alt=""></div><h2>P<font size="4">ulp Python 3.0 Use Cases</font><br></h2><u><b>[3.0]</b> Synced Package Index Use Case:<br><br></u>As a user, I can configure an importer to sync a list of projects<br><ul><li>Syncing a project includes all releases</li><li>Syncing a release includes all distribution packages (all types)<br></li></ul>As a user, I can publish a repository:<br><ul><li>Published Distributions are consumable by pip</li></ul></div></blockquote><div><br></div><div>minor suggestion: call this Distributed Publications. A publication comes first, and then it gets distributed.</div><div> </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"><ul><li>Published projects are consumable by other Pulps</li><li>Published projects will include all releases and distributions<br></li></ul><u><i>Upload Use Case:</i></u><b><br><br>[3.0] </b>As a user, I can upload individual distribution packages (name, version, platform)<ul><li>As a user I can upload an egg</li><li>As a user I can upload a wheel</li><li>As a user I can upload a sdist</li></ul><p><b>[3.1+]</b> A twine user can publish a distribution package to Pulp<br></p></div></blockquote><div>I'm interested to know more about how this would work. Would it require implementing a type-specific API for creating/uploading content?</div><div> </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"><p></p><br><u><b>[3.1+]</b> <i>Granular Sync Use Case:<br></i></u> <br>Blacklist: As a user, I can disinclude some content of a project<br><ul><li>By specifying (release, distribution package)</li><li>I can disinclude content by distribution type<br></li></ul>Whitelist (Curated Package index Use Case) As a user, I can sync packages that reproduce a specific environment<br><ul><li>From the output of pip freeze (loose use case)</li><li>With the name, exact versions, and distribution type (tight use case)<br></li></ul></div></blockquote><div><br></div><div>How would you prioritize the whitelist vs. blacklist features?</div><div><br></div><div>It seems like "As a user, I can configure an importer to sync a list of projects" is already a whitelist approach, but less specific. It may be worth planning the UX for all of the whitelist features up-front so you can find opportunities to accomplish them with similar or the same mechanisms. For example, it might be overkill to offer the user the chance to specify project names comma-separated, or the output of pip freeze, or name/version/type as CSV/JSON/similar. Maybe there's a way to consolidate some of that?</div><div> </div><div><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"><u><br><b>[3.1+]</b> <i>PyPI Publish Use Case:</i></u><br><br>As a user, I can publish a release to a remote package index<br><ul><li>As a user, I can configure Pulp to publish to PyPI with my auth credentials</li></ul></div></blockquote><div>Are the above two different use cases? They look real similar, and I'm not sure why one is a bullet under the other.</div><div> </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"><b><br>[3.1+]</b> PyPI <u><i>Cache Use Case:</i></u><br><br>As a user, I can use Pulp as a PyPI cache</div></blockquote><div><br></div><div>Does this just mean taking advantage of the on-demand features of Pulp? Or is there anything more to it? If it's just the former, you'll probably get this for free from core.</div><div><br></div></div>-- <br><div class="gmail_signature"><div dir="ltr"><p style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px"><span style="margin:0px;padding:0px">Michael</span> <span style="margin:0px;padding:0px">Hrivnak</span></p><p style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px"></p><span style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px"><span style="margin:0px;padding:0px">Principal Software Engineer</span><span style="margin:0px;padding:0px">, <span style="margin:0px;padding:0px">RHCE</span></span> </span><span style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px"></span><br style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px"><p style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px">Red Hat</p></div></div>
</div></div>