15:32:03 #startmeeting Documentation Working Group 15:32:03 Meeting started Tue Feb 19 15:32:03 2019 UTC. 15:32:03 This meeting is logged and archived in a public location. 15:32:03 The chair is acozine. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:32:03 Useful Commands: #action #agreed #halp #info #idea #link #topic. 15:32:03 The meeting name has been set to 'documentation_working_group' 15:32:15 #chair gundalow samccann 15:32:15 Current chairs: acozine gundalow samccann 15:32:18 who else is around? 15:33:03 nobody here but us chickens? 15:33:30 #topic Big PR Review this week 15:34:07 background: this is the third month we've done a day-long community review session focusing on assessing open PRs 15:34:07 #info https://www.ansible.com/blog/ansible-community-update-february-2019 & https://github.com/ansible/community/issues/407 15:34:29 this month's session will focus, in part, on documentation PRs 15:35:07 Aim here is to help the various PRs that need both technical and Docs input to move 15:35:51 as of right now we have 109 open PRs with the label `docs`: https://github.com/ansible/ansible/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Adocs 15:36:46 I would like the community to focus on the oldest ones 15:36:50 here's my reasoning: 15:37:34 I'd like to hear whether the changes suggested in some of those old `docs` PRs are still of interest to the community, especially the ones that include code as well as documentation 15:38:21 many of them need rebasing, but we don't want to rebase them if the changes are no longer needed or wanted 15:38:28 +1 for cleaning up the old old stuff 15:38:44 alongchamps: are you here for the DaWG meeting? 15:39:01 I'm mostly watching, actually in a team meeting at the moment 15:39:04 acozine: That logic sounds good to me 15:39:19 alongchamps: right-ho 15:39:36 so oldest first would give us https://github.com/ansible/ansible/pulls?q=is%3Apr+is%3Aopen+label%3Adocs+sort%3Acreated-asc 15:39:37 I won't make you a chair for the moment, then 15:39:38 bah 15:39:42 https://github.com/ansible/ansible/pulls?q=is%3Apr+is%3Aopen+label%3Adocs+sort%3Acreated-asc 15:40:19 yep, though for the review, we should ignore `WIP` ones 15:40:37 https://github.com/ansible/ansible/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Adocs+-label%3Awip+sort%3Acreated-asc+ 15:41:07 Good question, there re only 12 `WIP`, so I'd include them 15:41:14 you want to give WIP a quick look, in case people are going down a deaad end road, you want to stop them before they put in too much work 15:41:25 #chair bcoca 15:41:25 Current chairs: acozine bcoca gundalow samccann 15:41:47 bcoca: the ones I want to avoid are the ones that internal folks labelled WIP so I'd stop bugging them 15:42:05 like 22959 15:42:39 a few of them are in a limbo state - we've decided not to merge them, but we have not decided to close them 15:42:41 well, that is not really a docs pr, but a pr that includes docs for new features 15:43:06 bcoca: true, and those are exactly the ones we'd like to target for the big community review 15:43:28 the docs-only PRs are easy for the docs team to review 15:43:55 the docs-and-code ones are harder, and we'd like to take advantage of the wider community attention to move them forward if we can 15:44:34 that said, I guess it wouldn't hurt to get feedback on those about whether people think they are useful to pursue or not 15:44:41 i think we need a way to deal with 'crossover', its not only docs, but tests also 15:44:50 gundalow: okay, I retract my "let's not look at WIP" comment 15:44:56 gettign approval from 'each section' docs/tests/code 15:44:56 bcoca: yes! 15:45:30 i would hold of docs/tests till 'code' approval is there, since any changes in code can/probably will affect the other 2 15:46:08 bcoca: yes, it's "code" approval/review we're mostly looking for from the Big PR Review day 15:46:20 we might need to discuss that in core meeting, to coordinate better, right now its 'chase X' cause I approved and PR is still in limbo 15:46:45 It's fine to open it up spend a minute ago them go `#action #1234 add to core agenda/Core Triage` 15:46:47 waiting_on_doc/test_approval? 15:46:50 labels 15:47:33 @gundalow i think its not worth for docs to review a 'mixed' pr when the code is still in flux 15:47:41 bcoca: the point of the Big PR Review (which is happening on Thursday - we are just doing some prep for it here) is to chip away at hte backlog 15:47:59 ie we will have mix of knowledge & skill set 15:48:05 as well as some of the Core Team available 15:48:20 bcoca: most of these old PRs are not in flux, they are stuck/in limbo or have been forgotten 15:48:42 that makes more sense, i'm just trying to minimize frustration for docs reviewers, since we end up having 'docs reviewd' but 'code review pending' PRs stagnating 15:49:35 acozine: im not commenting on the full list, jsut a particular subset that we need to deal with (even outside of backlog) 15:50:08 that gets tricky and we dont have good workflow for, having 'all the minds' at same time available for review is rare 15:50:30 bcoca: agreed that for incoming PRs a better distributed workflow would help 15:50:42 when they need code/tests/docs all reviewed 15:51:04 for this Thursday, though, getting some of the older PRs unstuck is my main goal 15:51:08 So we happy that we'll start with oldest PRs first? 15:51:15 didnt mean to drail, sorry 15:51:23 bcoca: it's all good 15:52:41 bcoca: your `live` keyword PR is a case in point - it seems there's interest from the community, and if we could get it updated/rebased and reviewed on Thursday maybe it can finally get merged 15:52:52 (that's 13620) 15:53:15 I hate to lose good work 15:53:36 just because we didn't have the bandwidth, or got distracted, or whatever 15:54:09 13620 hasn't been approved for the 2.8 release, so that is likely one reason it hasn't been worked on 15:54:13 but is something we plan to work on 15:54:51 So `#action 13620 add to 2.9 potential list`, or roadmap_candidate 15:55:15 sivel: so does that mean if we get community input and folks get it passing tests, we'd still hold it for the next release? or just that no core hours have been set aside to get it finished? 15:55:33 acozine: we would probably hold it 15:55:38 ah, good to know 15:56:30 acozine: live is not going to happen any time soon 15:57:30 also, fwiw, we typically ignore PRs by the core team, as we assume that the author will drive it forward and ask the appropriate people for reviews 15:57:59 at least in triaging 15:58:33 gundalow: have you filtered out core PRs in the past Big PR Review days? 15:58:56 acozine: not directly, though I ignore `support:core` 15:59:47 hum, though I'm not sure if it should be `-label:support:core` or `label:support:community` 16:00:28 do those two queries return different numbers of PRs? 16:00:38 do we have PRs with both, or neither? 16:00:49 we have prs with both... just checked 16:01:08 gundalow: do community or you would also need -label:surpport:netowrk 16:01:36 bcoca: yup, that's in the list, just didn't list it 16:01:48 TBH, support;network is down to 18 PRs, they've done great work 16:01:50 ^ we also need better workflow for 'multi support' PRs 16:02:06 bcoca: yup, totally agree 16:02:15 i.e community module that also updates module_utils/basic.py 16:02:26 wow, yeah, 63 in the list for `label:support:community` and only 34 for `-label:support:core` 16:03:43 to take a few steps back. PR review day is about 1) Hitting the PR backlog with various sized hammers 2) engaging/motivating people that they can review and contribute. 16:03:43 So given, in someways I don't really care too much *what* queries we use. Though for Thursday we will be looking at `bug` PRs not covered by Core/Network/WG as they are more important that features 16:05:46 here's what I'd like to avoid: someone spends an hour rebasing and reviewing a PR, then we don't merge it and it's still there in three months, still needs rebasing, and we're duplicating work 16:06:24 Yup 16:06:49 * gundalow is happy with acozine suggestion of oldest docs PR 16:06:58 acozine: what's next #topic? 16:07:10 let me check the agenda 16:07:55 #topic `loop` vs `with_*` 16:08:09 related PRs: https://github.com/ansible/ansible/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+label%3Adocs+loop+in%3Atitle 16:08:58 I think we can merge this one https://github.com/ansible/ansible/pull/47231/files 16:09:13 it updates an example in the `crypttab` module 16:10:00 has two shipits, though those folks must not be maintainers 16:12:14 the example doesn't show the values of `ansible_mounts` but I imagine it's not a complex data set 16:12:45 any thoughts, objections, concerns? 16:13:15 okay, I'm going to merge 16:13:25 :-) 16:13:40 well, `rebuild_merge` 16:13:51 does this change your mind - https://www.reddit.com/r/ansible/comments/98watc/creating_a_list_of_mount_point_names/ 16:14:02 sorry was trying to dig up what ansible_mounts might mean 16:15:59 (back in 5) 16:16:25 samccann: thanks - one of the replies in that thread uses `loop` and the other `with_items` but there's only one lookup in each 16:16:36 which I think means that the two would be equivalent 16:17:04 ok cool 16:17:20 I retract my statement about "it's not a complex data set" 16:17:54 it's more accurate to say "no matter how complex the data, this loop is only looking at one thing at one level" 16:18:42 heh 16:18:47 the other PR updating an example needs rebasing, but also looks straightforward 16:18:49 https://github.com/ansible/ansible/pull/47244/files 16:19:50 do we ask the owner to rebase or do we take it over at this point? 16:20:12 I'm happy to rebase this one 16:20:25 I put my name on it weeks ago, and the rebase should be straightforward 16:20:29 the change is just to one example 16:20:45 kewl 16:21:10 so that leaves the larger rewrite of loops: 16:21:27 https://github.com/ansible/ansible/pull/47895/files 16:21:46 I'd still like an example of a "here be dragons" change 16:21:48 see https://github.com/ansible/ansible/pull/47895#discussion_r234054716 16:22:20 can someone come up with an example `for_*` construction that would NOT provide the same results if changed to `loop`? 16:22:30 sivel: bcoca ^ 16:23:26 subelements would be one i can think of 16:23:37 there is a subelements filter 16:23:40 that does the same thing 16:23:56 ah, that was 'on my list' ... didnt realize/forgot we added that 16:24:23 subelements? so are these two not the same? 16:24:31 I don't think we have any missing gaps. The main point is UX (user experience) 16:24:40 https://www.irccloud.com/pastebin/N5dGSYMr/with_*%20example 16:24:49 and the UX of using a lookup in a loop, is considered "bad" 16:24:52 and 16:24:53 loop: "{{ sdb_info.partitions }}" 16:25:38 acozine: we have `with_subelements` and then we also have a `|subelements` filter 16:25:55 sivel: what does "using a lookup in a loop" look like in a task? 16:26:22 `loop: "{{ lookup('items', sdb_info.partitions, wantlist=True) }}"` 16:26:35 that is contrived, but an example 16:26:46 thanks! 16:26:51 that is equivalent of `with_items: "{{ sdb_info.partitions }}"` 16:27:01 and also `loop: "{{ sdb_info.partitions }}"` 16:28:09 okay, so here it's a matter of readability or style? 16:28:30 So I wouldn't recommend to someone to switch from `with_fileglob: '*.txt'` to `loop: "{{ lookup('fileglob', '*.txt', wantlist=True) }}"` 16:28:39 as the UX is bad with that change 16:28:51 gotcha 16:29:05 I'll see if i can work those examples in 16:29:38 are there examples where switching to `loop` would actually change the output and/or break the playbook? 16:29:42 I thought there were 16:29:58 mostly with_items: listiforgothas1sublist 16:30:28 https://gist.github.com/bcoca/030e1ad0b0a5cc741b5f246891d27954 16:30:42 ^ not that it shoudl 'not be converted' but that the conversion is tricky 16:30:45 ahhhh 16:30:50 okay, that makes sense 16:31:04 loop: [1, [2,3] ,4]|| flatten(1) 16:31:52 even trickier https://gist.github.com/bcoca/030e1ad0b0a5cc741b5f246891d27954 16:32:13 so without `flatten(1)`, will `loop` return `1,4` for that? or `1,2,4`? 16:32:25 yes, `with_items` has an implicit "flattening" that `loop` does not do. `loop` is more closely related to `with_list` 16:32:41 but its also a flatten(1) , most 'conversions' i see use flatten() (unlimited) 16:32:48 loop == with_list 16:32:58 most people use with_items thinking its with_list 16:33:15 which causes corner case issues ... which is why loop was created to be 'unambigious' 16:33:56 thanks sivel bcoca - I will update that PR today and ping you both back for a quick review - hope to merge it today/tomorrow 16:34:09 oops, and we are over time for the DaWGs meeting today 16:34:13 thanks everybody! 16:34:23 \o/ loop progress! 16:34:38 yeah, we actually addressed the agenda today! 16:35:02 #endmeeting