13:00:47 <dkliban> #startmeeting Pulp Triage 2020-04-24 CLI user story planning
13:00:47 <dkliban> !start "CLI user story planning"
13:00:47 <dkliban> #info dkliban has joined triage
13:00:47 <pulpbot> Meeting started Fri Apr 24 13:00:47 2020 UTC.  The chair is dkliban. Information about MeetBot at http://wiki.debian.org/MeetBot.
13:00:47 <pulpbot> Useful Commands: #action #agreed #help #info #idea #link #topic.
13:00:47 <pulpbot> The meeting name has been set to 'pulp_triage_2020-04-24_cli_user_story_planning'
13:00:47 <pulpbot> dkliban: dkliban has joined triage
13:00:56 <daviddavis> #info daviddavis has joined triage
13:00:56 <daviddavis> !here
13:00:56 <pulpbot> daviddavis: daviddavis has joined triage
13:01:04 <daviddavis> here's a link to the hackmd pad https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig
13:01:56 <dkliban> i can't seem to edit it
13:02:00 <bmbouter> #info bmbouter has joined triage
13:02:00 <bmbouter> !here
13:02:00 <pulpbot> bmbouter: bmbouter has joined triage
13:02:05 <daviddavis> I divided the user stories into user vs plugin writer
13:02:11 <dkliban> oh ... there is a button for editing in the top
13:02:15 <daviddavis> ha yea
13:02:37 <daviddavis> I'm assuming we want to describe what an MVP looks like for the cli, does that make sense?
13:02:43 <dkliban> yes
13:03:01 <daviddavis> to give a high level, I was hoping we could handle the happy path for pulp_file (create repo, sync, publish, distribute)
13:03:12 <daviddavis> and then also add a couple plugin writer stories
13:03:17 <bmbouter> that sounds good
13:03:39 <bmbouter> I also would like to cover some of the base functionality (name based resolution, status checking, and handling version client/server) mismatch
13:04:12 <ggainey> #info ggainey has joined triage
13:04:12 <ggainey> !here
13:04:12 <pulpbot> ggainey: ggainey has joined triage
13:04:44 <daviddavis> bmbouter: cool, I think status checking is great. I wonder if the other two are required for an MVP?
13:04:53 <daviddavis> I definitely agree we want them
13:05:23 <dkliban> to me the bare minimum is status and task tracking and cancelling
13:05:37 <daviddavis> +1
13:05:38 <ttereshc> #info ttereshc has joined triage
13:05:38 <ttereshc> !here
13:05:38 <pulpbot> ttereshc: ttereshc has joined triage
13:06:16 <bmbouter> also name based I think is minimum because otherwise it's too similar to httpie's use
13:06:51 <daviddavis> I'm +0 to that
13:07:04 <daviddavis> are we thinking that cli will just use name and only name?
13:07:16 <dkliban> nope, it can use either name or pulp_href
13:07:17 <daviddavis> or will it also support some sort of id like href
13:08:07 <dkliban> daviddavis: i captured that on line 13
13:08:41 <daviddavis> what about if we split it: "As a CLI user I can specify name or pulp href to reference resources" and "As a CLI user, I can create a file repository version by specifying file repository and a file remote"
13:08:53 <dkliban> +1
13:10:15 <daviddavis> this looks great
13:10:41 <daviddavis> any else from the user stories for our CLI MVP?
13:11:51 <daviddavis> what about authentication?
13:11:55 <ttereshc> what about listing content?
13:12:02 <daviddavis> yes
13:12:52 <dkliban> authentication is a tough one right now ... we have to provide it with each request. can we store the creds in a file for now?
13:13:07 <daviddavis> yea, I wonder if the CLI can use .netrc for now
13:13:30 <dkliban> i had the same thought
13:13:37 <ttereshc> modify endpoint? to add/remove content to/from a repo verison
13:13:55 <daviddavis> ttereshc: good
13:14:04 <ggainey> should we have a "...can set up a configuration for..." story? so I can set user/login/pulp-instance in a single place?
13:14:07 <ttereshc> or is it out of mvp scope? I'm not sure where to draw the line
13:14:38 <daviddavis> ggainey: actually that makes sense
13:14:39 <ggainey> ttereshc: I think minimal-happy-path for MVP
13:16:01 <daviddavis> I updated line 8 to add something about configuration and extended it to handle auth
13:16:39 <daviddavis> also added line 22
13:16:45 <ggainey> yeah, I turned editing on and then you were done - you're either too fast, or I'm too slow today :)
13:16:50 <daviddavis> haha
13:17:08 <bmbouter> for L#7 is the expected output json like the server response? or is it parsed basically?
13:17:15 <daviddavis> good question
13:17:23 <dkliban> bmbouter: i think it's parsed
13:17:27 <bmbouter> I agree
13:17:49 <bmbouter> I think that goal is bigger than L#7 so I think it should get it's own line item
13:17:52 * bmbouter writes one
13:18:12 <ggainey> that was a general question i was musing on - should it be possible to tell the CLI to return machine-readable output, with human-readable (ie parsed) the default?
13:18:13 <bmbouter> L#12 now
13:18:18 <daviddavis> on our old cli PoC with click we provided highlighted js https://github.com/daviddavis/pulp-cli#demo
13:18:31 <ggainey> nice
13:18:40 <bmbouter> ggainey: yes I think human-readable as default and later we can add a --json option maybe?
13:18:47 <dkliban> i agree
13:18:49 <ggainey> bmbouter: +1, sounds good
13:18:55 <daviddavis> it should probably configurable. I know some users wanted csv for hammer.
13:19:00 <ggainey> (and outside of MVP, but def would be great to get there)
13:19:11 <ttereshc> I was about to suggest somehting along those lines +1
13:19:13 <dkliban> ggainey: humans definitely want to make machines use this CLI also ... so yes, json as an option later
13:19:17 <ggainey> yus
13:19:37 <bmbouter> +1 csv future support also
13:19:57 <daviddavis> should the CLI monitor tasks?
13:20:08 <dkliban> not for the mvp
13:20:09 <ggainey> hrm, does the REST API support "return results to me in CSV"?
13:20:19 <ggainey> concur RE "not MVP" for monitoring
13:20:31 <dkliban> ggainey: i don't think so
13:20:34 <daviddavis> it's pretty easy to do https://git.io/JfL4z
13:20:40 <daviddavis> but I'm fine to leave it off
13:21:02 <daviddavis> ok, anything else for user stories?
13:21:02 <dkliban> daviddavis: it's all easy to do :) but how many things do we want to do ?
13:21:11 <daviddavis> haha all of them
13:21:15 <ggainey> heh
13:21:16 <bmbouter> ha
13:21:23 <bmbouter> what does monitor tasks mean?
13:21:26 <bmbouter> to you
13:21:27 <ggainey> reminder: the 'M' stands for 'Minimal' :)
13:21:40 <ggainey> bmbouter: I heard 'wait for'
13:21:49 <bmbouter> we def need to wait for I think at a minimum
13:22:04 <ggainey> kk - that's the code daviddavis showed us
13:22:20 <bmbouter> a script for example calling the CLI would benefit greatly from knowing each command only returns when the server side has completed
13:22:35 <bmbouter> otherwise they have to take that responsibility (is my reasoning folks already are agreeing)
13:22:47 <ggainey> bmbouter: 'CLI commands serialize', basically
13:22:57 <ggainey> which is great as long as the task eventually returns...
13:23:12 <dkliban> let's add it to the list
13:23:18 <ggainey> I mean, that's where we are w/pulp-admin - it waits, after telling you "it's OK to interrupt this"
13:24:21 <daviddavis> yup
13:24:33 <daviddavis> ok anything else
13:24:40 <daviddavis> for user stories
13:25:02 <daviddavis> !friday
13:25:02 <pulpbot> ♪ It's Friday, Friday, gotta get down on Friday ♪
13:25:06 <dkliban> lol
13:25:07 <daviddavis> ok, plugin writer stories
13:25:15 <daviddavis> who added line 30
13:25:20 <dkliban> bmbouter:
13:25:22 <dkliban> i am guessing
13:25:27 <daviddavis> cool
13:25:50 <bmbouter> I did
13:26:06 <daviddavis> what does "discovered by an entry point" mean?
13:26:14 <daviddavis> oh a python entry point
13:26:15 <dkliban> python entrypoint
13:26:18 <ggainey> yus
13:26:53 <daviddavis> can we say maybe "discovered by a Pulp CLI"
13:27:08 <daviddavis> or I guess python entrypoint is fine
13:27:18 <daviddavis> these are plugin writer stories
13:27:24 <dkliban> yep
13:27:31 <dkliban> i had a hard time formulating line 33
13:27:33 <bmbouter> yeah it's kind of implementation more than story but yeah
13:28:08 <dkliban> that looks better
13:28:17 <daviddavis> +1
13:29:04 <daviddavis> just added line 35
13:29:20 <dkliban> 34 you mean ... that looks good
13:29:48 <bmbouter> those look good
13:29:53 <dkliban> +1
13:29:53 <bmbouter> bootstrapping is important, CI important
13:30:02 <bmbouter> rebecca black important
13:30:06 <dkliban> lol
13:30:14 <daviddavis> haha
13:30:24 <daviddavis> maybe it should even be a separate template?
13:30:29 <daviddavis> we can think about it
13:30:37 <dkliban> yeah ... i am not too concerned about that part
13:30:41 <dkliban> it probably will be
13:30:47 <bmbouter> yup
13:30:52 <bmbouter> github has repo tepmates now also
13:30:58 <daviddavis> interesting
13:31:14 <dkliban> i love tepmates! they are the best kind of mates!
13:31:18 <daviddavis> haha
13:31:23 <bmbouter> lol
13:31:26 <ggainey> :)
13:31:33 <daviddavis> ok, anything else?
13:31:43 <dkliban> maybe soemthing about version checking?
13:31:44 <bmbouter> so what does L#33 have in terms of implications on L#18 - L#27 ?
13:32:06 <daviddavis> it will probably mean that we can just test and close out these user stories
13:32:30 <bmbouter> what about calling them out as a "expected to be auto-generated" section?
13:32:37 <dkliban> sure
13:32:38 <daviddavis> sure
13:32:41 <bmbouter> and I think upload maybe would not be auto generated? wdyt?
13:33:09 <daviddavis> yes, that'll probably be chunk
13:33:13 <bmbouter> I guess the non-chunked upload is simple enough that it will work?
13:33:17 <dkliban> yeah
13:33:52 <daviddavis> I'll file the autogenerated stories together as a single story
13:34:10 <dkliban> yep
13:34:21 <daviddavis> speaking of which, should we create a separate redmine project?
13:34:30 <dkliban> i think so
13:34:48 <ggainey> is the code going to live in pulpcore?
13:34:57 <dkliban> i don't think so
13:35:01 <daviddavis> I had imagined a pulp-cli repo
13:35:07 <ggainey> yeah sounds right
13:35:25 <daviddavis> I want to get katello to review these too
13:35:40 <ggainey> so we need a pulp/pulp_cli project and a new redmine
13:35:49 <daviddavis> I think so
13:36:31 <daviddavis> I will work on the latter before I file these issues
13:36:34 <daviddavis> anything else?
13:36:57 <ggainey> lg2m
13:37:00 <daviddavis> should I email these out before I add them into redmine or after?
13:37:25 <dkliban> daviddavis: where are you going to email? pulp-list?
13:37:47 <daviddavis> uh maybe both pulp-list and pulp-dev?
13:38:00 <dkliban> let's email out ASAP
13:38:06 <dkliban> and then open up stories
13:38:34 <ggainey> sounds right
13:38:38 <daviddavis> ok I'll do that today
13:38:50 <daviddavis> alright, last call
13:38:58 <dkliban> should line 30 go above line 16?
13:39:23 <daviddavis> sure
13:40:23 <daviddavis> actually artifacts doesn't belong in the pulp_file section
13:40:37 <ttereshc> are docs assumed or should we add a story to document, at least the plugin writer's part?
13:40:55 <bmbouter> ohh docs
13:40:59 <daviddavis> we should add stories
13:41:00 <bmbouter> +1 add docs line
13:41:05 <daviddavis> also, I assumed no testing?
13:41:22 <dkliban> daviddavis: you already added a line about CI so the joke is late
13:41:34 <bmbouter> no we'll just use did
13:41:36 <bmbouter> didn't
13:41:37 <dkliban> LOL
13:41:47 <ggainey> heh
13:41:50 <ttereshc> :)
13:42:14 <daviddavis> https://github.com/daviddavis/didnt
13:42:29 <daviddavis> ok, I added two docs stories: one for the user and one for the plugin writer
13:43:08 <dkliban> sweet
13:43:30 <daviddavis> alright, last call again
13:43:54 <dkliban> i'll take a ginger beer
13:43:57 <daviddavis> ha
13:44:06 <daviddavis> !end
13:44:13 <dkliban> #endmeeting
13:44:13 <dkliban> !end