<div dir="ltr"><div>Overall, I am hesitant to start with complex CLI commands. Instead I had hoped to start with basic, auto-generated CLI commands which we could then build off to add more complex commands in the future.</div><div><br></div>Questions/responses inline though.<br><div class="gmail_extra"><br><div class="gmail_quote"><span class="gmail-im" style="font-size:12.800000190734863px">On Thu, May 17, 2018 at 11:52 AM, Dennis Kliban <span dir="ltr"><<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>></span> wrote:<br></span><span class="gmail-im" style="font-size:12.800000190734863px"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">The use cases we outlined earlier provide very little value over using httpie to interact with the REST API directly. </div></blockquote><div><br></div></span><div style="font-size:12.800000190734863px">I think this may be true for the first iteration of the CLI, but successive iterations will handle more complex use cases.</div><span class="gmail-im" style="font-size:12.800000190734863px"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">I'd like to propose 5 new use cases:<br><ul><li style="margin-left:15px">As a CLI user, I can create a repository, a remote, a publisher, and a distribution with a single command.</li><li style="margin-left:15px">As a CLI user, I can create a repository version, a publication, and update the distribution with a single command.</li><li style="margin-left:15px">As a CLI user, I can list remote types available on the Pulp server.</li><li style="margin-left:15px">As a CLI user, I can list publisher types available on the Pulp server.</li><li style="margin-left:15px">As a CLI user, I can list all repositories available on the Pulp server. <br></li></ul></div></blockquote></span><div style="font-size:12.800000190734863px">How would users do things like update objects? Like what if I want to edit the URL I am syncing a repo from?</div><span class="gmail-im" style="font-size:12.800000190734863px"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div><br>The use cases proposed at the beginning on this thread require the user to perform 4 steps before any content can be synced:<br><br></div>1) Create repository<br></div>2) Create remote<br></div>3) Create publisher<br></div>4) Create distribution <br><div class="gmail_extra"><br></div><div class="gmail_extra">The goal for the CLI should be to reduce this to a single step. The CLI will need to make some assumptions for the user: publisher name, distribution name, auto publish, auto distribute, and maybe others. However, this will allow the user to use a single command to create a repository that's ready for sync/publish.<br></div></div></blockquote><div><br></div></span><div style="font-size:12.800000190734863px">I think this is very brittle given the mutability of object names. Users couldn’t use both the CLI and REST API. They’d have to pick or choose or else run the risk of disconnecting objects. </div><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px">Also, how do we support things in the future like multiple remotes for a repo or shared remotes between repos?</div><span class="gmail-im" style="font-size:12.800000190734863px"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br></div><div class="gmail_extra">Sync/Publish/Distribute workflow can also be 3 steps:<br><br></div><div class="gmail_extra">1) Create a new repository version<br></div><div class="gmail_extra">2) Create a new publication<br></div><div class="gmail_extra">3) Update distribution<br><br></div><div class="gmail_extra">The goal here is to also reduce this to a single step. <br><br></div><div class="gmail_extra">The other use cases are auxiliary.<br><br></div><div class="gmail_extra">Questions? Thoughts? Ideas? <br><span class="gmail-m_8452712308110196896gmail-HOEnZb"><font color="#888888"><br></font></span></div><span class="gmail-m_8452712308110196896gmail-HOEnZb"><font color="#888888"><div class="gmail_extra">-Dennis<br></div></font></span><div><div class="gmail-m_8452712308110196896gmail-h5"><div class="gmail_extra"><br></div><br><div class="gmail_extra"><br><br></div></div></div></div></blockquote><div><br></div></span><div style="font-size:12.800000190734863px">A couple more questions:</div><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px">How would we handle things in the future that are plugin-specific like content upload/creation?</div><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px">Also, would this CLI use auto-generation at all? Or would it rely entirely on custom code? I assume the latter which means this would be similar to the Pulp 2 CLI in which every new API change required a change to the CLI code.</div><div class="gmail-yj6qo gmail-ajU" style="margin:2px 0px 0px;font-size:12.800000190734863px"></div></div></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><br></div><div>David<br></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On Thu, May 17, 2018 at 11:52 AM, Dennis Kliban <span dir="ltr"><<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>The use cases we outlined earlier provide very little value over using httpie to interact with the REST API directly. I'd like to propose 5 new use cases:<br><ul><li>As a CLI user, I can create a repository, a remote, a publisher, and a distribution with a single command.</li><li>As a CLI user, I can create a repository version, a publication, and update the distribution with a single command.</li><li>As a CLI user, I can list remote types available on the Pulp server.</li><li>As a CLI user, I can list publisher types available on the Pulp server.</li><li>As a CLI user, I can list all repositories available on the Pulp server. <br></li></ul><br>The use cases proposed at the beginning on this thread require the user to perform 4 steps before any content can be synced:<br><br></div>1) Create repository<br></div>2) Create remote<br></div>3) Create publisher<br></div>4) Create distribution <br><div class="gmail_extra"><br></div><div class="gmail_extra">The goal for the CLI should be to reduce this to a single step. The CLI will need to make some assumptions for the user: publisher name, distribution name, auto publish, auto distribute, and maybe others. However, this will allow the user to use a single command to create a repository that's ready for sync/publish.<br><br></div><div class="gmail_extra">Sync/Publish/Distribute workflow can also be 3 steps:<br><br></div><div class="gmail_extra">1) Create a new repository version<br></div><div class="gmail_extra">2) Create a new publication<br></div><div class="gmail_extra">3) Update distribution<br><br></div><div class="gmail_extra">The goal here is to also reduce this to a single step. <br><br></div><div class="gmail_extra">The other use cases are auxiliary.<br><br></div><div class="gmail_extra">Questions? Thoughts? Ideas? <br><span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div class="gmail_extra">-Dennis<br></div></font></span><div><div class="h5"><div class="gmail_extra"><br></div><br><div class="gmail_extra"><br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 14, 2018 at 11:58 AM, Dana Walker <span dir="ltr"><<a href="mailto:dawalker@redhat.com" target="_blank">dawalker@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">+1<br></div><div class="gmail_extra"><br clear="all"><div><div class="m_-4812114457493791527m_52532154587299881gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>
<p style="font-weight:bold;margin:0;padding:0;font-size:14px;text-transform:uppercase;margin-bottom:0"><span>Dana</span> <span>Walker</span></p>
<p style="font-weight:normal;font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><span>Associate Software Engineer</span><span style="font-weight:normal;color:#aaa;margin:0"></span></p>
<p style="font-weight:normal;margin:0;font-size:10px;color:#999"><a style="color:#0088ce;font-size:10px;margin:0;text-decoration:none;font-family:'overpass',sans-serif" href="https://www.redhat.com" target="_blank">Red Hat <span><br><br></span></a></p>




<table border="0"><tbody><tr><td width="100px"><a href="https://red.ht/sig" target="_blank"> <img src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a> </td>
</tr></tbody></table>

</div></div></div></div>
<br><div class="gmail_quote"><div><div class="m_-4812114457493791527h5">On Tue, May 8, 2018 at 10:31 AM, Jeremy Audet <span dir="ltr"><<a href="mailto:jaudet@redhat.com" target="_blank">jaudet@redhat.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-4812114457493791527h5"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><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"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span><span style="font-size:12.8px">A configuration file in the user's home dir, right?</span></span><br><span></span></blockquote><span><div><span style="font-size:12.8px"><br></span></div></span><div><span style="font-size:12.8px">Yes, exactly.</span></div></div></blockquote><div><br></div></span><div>Can we make sure to avoid placing configuration files directly in users home directories, and instead place them into directories like ~/.config? This is in line with the <a href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html" target="_blank">XDG Base Directory Specification</a>. The spec is pretty straightforward, but Pulp Smash uses <a href="https://www.freedesktop.org/wiki/Software/pyxdg/" target="_blank">pyxdg</a> to avoid mistakes. There's two big benefits to doing this:<br></div><div><ul><li>Less clutter in home directories.</li><li>Guidance on what to do with other types of files, such as cached files and runtime files.</li></ul><p>Projects such as git, htop, lftp, mpd, neovim, tmuxinator, boybo, and more do this.<br></p></div></div></div></div>
<br></div></div><span>______________________________<wbr>_________________<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<wbr>/listinfo/pulp-dev</a><br>
<br></span></blockquote></div><br></div>
<br>______________________________<wbr>_________________<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<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div></div></div></div>
<br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>