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