15:31:10 #startmeeting Documentation Working Group aka DaWGs 15:31:10 Meeting started Tue Mar 26 15:31:10 2019 UTC. 15:31:10 This meeting is logged and archived in a public location. 15:31:10 The chair is acozine. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:31:10 Useful Commands: #action #agreed #halp #info #idea #link #topic. 15:31:10 The meeting name has been set to 'documentation_working_group_aka_dawgs' 15:31:15 who's around? 15:32:37 helloooooo? anybody here? 15:32:45 ooph sorry! here! 15:32:53 #chairs samccann 15:33:08 #chair samccann 15:33:08 Current chairs: acozine samccann 15:33:14 I get that wrong every time 15:33:25 consistency is important ;-) 15:33:28 heh 15:34:17 anybody else? felixfontein gundalow dag decentral1se Xaroth Pilou you folks ready to talk docs? 15:34:30 talk the docs! 15:34:37 we've got an easy one to start with: 15:34:39 * gundalow waves 15:34:41 https://github.com/ansible/ansible/pull/54288/files 15:34:45 #chair gundalow 15:34:45 Current chairs: acozine gundalow samccann 15:34:47 Suffering from ebola or whatever monstrosity I have caught, so I'll probably not be useful. 15:35:11 * acozine is glad we're only breathing the same digital air 15:35:45 Xaroth: I won't make you a chair, then . . . hope you can get some down-time and heal 15:36:03 <3 Thanks, and I hope so too. 15:36:11 how about a comfy cushion? 15:36:28 * samccann feels punny today 15:36:39 * acozine groans 15:36:51 That took me way too long to notice. 15:36:52 * acozine and refuses to make Xaroth a comfy cushion 15:37:03 54288 has +1 from maintainer, and from someone else so mergeit 15:37:31 i got myself all twisted up about that one yesterday 15:37:34 only concern on it was that apparently ports 60K - 61K are commonly used by some unsavory types 15:38:03 that port range if you google it, comes up as common ports for maleware... so I wondered if we should request either a port range change, or rule change to deny? 15:38:39 Well people will only enable it if they have a legitimate reason. Firewall defaults are generally "block everything then allow specific" 15:38:46 so I' think it's good to merge 15:38:53 I hope people aren't picking actual port numbers from our examples 15:38:56 right, merging 15:39:53 ugh, GitHub is having a rough day again 15:39:58 well, I'll merge it when I can 15:40:04 acozine: yup, GitHub is being slow :( 15:40:19 okay, so our next topic is . . . 15:40:37 #topic finding the Module Dev Tips and Tricks page 15:41:02 so the page in question is https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_best_practices.html 15:41:42 gundalow, you're hearing that people aren't finding it, or you're guessing they aren't because they aren't following the suggestions when the submit module code? 15:42:21 I keep on brainfarting on it, so I guess others are 15:42:29 it is a little obscure - it's linked from the bottom of https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_checklist.html 15:42:36 let me check the main dev guide TOC 15:43:19 I wonder if we could deletemost of `Contributing to Ansible: subjective requirements` and just put 15:43:19 Other Checklists 15:43:20 * All modules -> Link to developing_modules_best_practices.html 15:43:20 * Amazon 15:43:20 * Windows 15:44:13 we could add a link from the dev guide indext page 15:44:26 hmmm, well, I want to keep the text that says "checking all the boxes isn't enough" - to forestall "I checked every box, merge my code NOW" demands 15:44:43 We could definitely add a line to this section of hte TOC: 15:45:05 https://www.irccloud.com/pastebin/NXZFPcxr/ 15:45:13 How about keeping the next, though changign the bullet points like I put above? 15:45:59 Yeah, bulleted lists are good 15:46:02 easy to read, clear 15:46:14 ie we'd link to it twice 15:46:26 make sense 15:47:03 what does the auto-response to new module PRs look like? 15:47:40 could we include a link to that page on the PR, a sort of "if you haven't seen this page, take a look while your PR is awaiting review" 15:48:06 that's catching people late in the cycle, but better late than never? 15:48:24 this is in addition to adding the links, I'm in favor of that too 15:48:49 acozine: You mean from the bot? Nothing specific, though I'd like it to look something like https://gist.github.com/gundalow/29f8565b9cdd6fd2056e04a03823511b 15:49:56 I like that - could be tightened up a bit, but a nice approach 15:50:12 urgh, that gist hasn't rendered at all well 15:50:25 +1 15:50:33 very much WIP ideas at the moment, feel free to ping stuff on there 15:50:36 really like that addition 15:51:56 very cool 15:52:57 #agreed add developing_modules_best_practices.html to bullet point list and `s/Other Checklists/Checklists` 15:52:58 Thanks 15:53:07 awesome 15:54:06 anything else to discuss? we've got two long-running topics - the version-changer and the Scenario Guides consolidation PR 15:54:36 I haven't made much progress on the Scenario Guides thing - I should have a revised version to present before next week 15:54:40 I would like to talk about ansible-lint running against doc examples in rst 15:54:49 #topic ansible-lint and docs examples 15:54:57 samccann: the floor is yours! 15:55:26 so the idea acozine and I talked about the other day was moving playbook snippets out of the rst and into a common (or set of common) directories so we could run ansible-lint against them 15:55:44 +1 15:55:45 the idea being we could eventually include ansible-lint in the automated docs testing? 15:56:09 mattclay: FYI this (running ansible-lint (or at least yamllint) against examples in docs may be of interest to you 15:56:23 this will set us up for using molecule too, if we include more than just snippets in the docs 15:56:38 what does molecule do? I've lost the plot on that one 15:56:52 Molecule tests roles, and the plan is for it to test playbooks as well 15:57:02 so if we had full playbooks in our docs, we could test them 15:57:06 in theory, at lest 15:57:11 s/lest/least 15:57:17 kewl. Yes, I think that would be a great long term goal 15:57:25 Starting off with yamllint (or ansible-lint) would be good 15:57:39 much more achievable in the short term, for sure 15:57:44 so that would add to this discussion - what can we do today with ansible-lint... and can that solution be useful longer term for molecule 15:58:12 aka if we move all the playbook snippets into a directory so ansible-lint can run against them... will that also work in the future for molecule against real playbooks 15:58:17 also remember, ansible-lint's defaults are not currently what we might want 15:58:29 i.e playbooks are not allowed to have tasks, only roles: 15:58:38 bcoca: oh interesting 15:58:47 mmm... I ran ansible-lint against playbooks the other day and they came out clean 15:58:54 and even yamllint is opinionated on things that really are not a problem 15:59:15 samccann: they might have fixed that ...i had some strong words about it , so did others 15:59:22 but it is still a work in progress 15:59:30 could we create a "docs standard" configuration for ansible-lint and document it so everyone knows what we use? 15:59:32 but if we set up automated testing with ansible-lint, could we also set it up for what we want? 15:59:41 yeah she said it better :-) 15:59:43 so +1 to linting, but you might want to do close review on which rules are followed 15:59:53 Would be interested to run yamllint/ansible-lint across a few bits of the docs to see how it looks 16:00:19 I'm assuming we need the snippets in their own yaml files for it to work, right? 16:00:26 also consider, not all doc 'ansible code' is meant to be complete, a lot are single tasks or partial tasks, which are not 'valid' roles/playbooks 16:00:38 so be ready to create a lot of exceptions 16:00:39 I am up for trying this on the andvanced network guide as it only has about 10 snippets 16:00:42 bcoca: we can lint tasks, though, right? 16:01:14 yeah I think I did ansible-lint some tasks as well and they came clean. but I can experiement cuz most of what adv. network guide has is tiny snippets of tasks 16:01:14 acozine: yamllint, yes, ansible-lint, unsure .. it had soo many false positives i never started using it 16:01:35 bcoca I think it's gotten better :-) 16:01:47 Progress! 16:02:06 probably, it has a nice system to use 'custom linting rules' but no clear way to do it adhoc, which is what i would recommend for doc linting 16:02:09 oh wait... false positive meaning it comes out clean but really isn't? 16:02:25 samccann: no, that is false negative 16:02:32 oh haha ok 16:02:45 that it complained a lot about things that were not issues, but it also did have false negatives, just not as noticable 16:03:01 Any thoughts on structure for this? My first thought is we try adding a `YAML snippets` directory for each main section of the docs (Dev Guide, Networking, etc.) 16:03:14 ansible-lint is more focused on 'style' than 'correctness' 16:03:33 for the docs, we're interested in both style and correctness 16:03:48 ansible --syntax-check might be a better reflection of 'correctness' but it requires a plabook (currently) 16:04:12 ah, so it checks for things like hosts, etc? 16:04:31 no, it does not check hosts, just that hosts: is correctly defined 16:04:41 heh, that's what I meant 16:04:49 it basically 'compiles' the playbook and returns any parsing errors 16:04:56 it checks that you have a `hosts` entry, which most of our snippets don't 16:05:09 which does not address 'dynamic' parts of playbooks, like include_X ,but we probably dont need that for docs 16:05:24 okay so we could use ansible-lint against task snippets (assuming it works well today) and ansible --syntax-check against playbooks in the docs? or would it be better to use molecule against full playbooks in the docs? 16:05:47 hmm, ansible -m include_tasks task_from_docs.yml --syntax-check localhost <= no need for playbook 16:06:00 ^ missing -a 16:06:37 samccann: i dont think its an either/or .. as much as 'incrementally add all of the above' 16:06:40 samccann: molecule doesn't currently work against playbooks, only against roles 16:06:58 #info ansible -m -a include_tasks task_from_docs.yml --syntax-check localhost doesn't reauire a playbook and may give a better 'correctness' result than just ansible-lint 16:07:07 but yeah, let's try both ansible-lint and ansible --syntax-check and see what works 16:07:15 sounds like a plan stan 16:07:28 also consider, that many examples use 'assumed vars' that will fail on check as they are not defined 16:07:47 so you probably need an 'exclude undefined errors' exception 16:08:36 #info 12:07 PM <@bcoca> also consider, that many examples use 'assumed vars' that will fail on check as they are not defined - may need an 'exclude undefined errors' exception 16:09:18 we will be the vanguard on making this work . . . or the canary in the coalmine, depending on how it turns out 16:10:18 #action samccann to experiment with ansible-lint and ansible --syntax-check on adv networking guide task/playbook snippets 16:10:28 awsome! 16:10:34 topic #open floor 16:10:38 grrrr 16:10:43 #topic openfloor 16:10:55 #open sesame 16:11:01 lol 16:11:30 * acozine is not an IRC native 16:11:31 since we have a couple of other folks here - do we want to bring up the version selection topic for a bit? 16:11:41 sure 16:12:07 last I remember we were going to investigate grabbing that functionality from the Sphinx theme 16:12:10 I don't have the PR handy, but there were two issues - one we need to fix the link so it stays on the same page 16:12:48 two - that sphinx theme extension adds the version selection to the bottom of the left-hand navigation. How important is it to try to move that to the top? 16:13:01 current draft PR is https://github.com/ansible/ansible/pull/53317 16:13:28 and it would look and work something like the selection at the bottom of this readthedocs website - https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html 16:13:36 I would be okay with it floating at the bottom, as long as it's eye-catching 16:13:41 that's how it works 'natively' if we grab that code 16:14:08 not sure what kind of control we have on the 'eye catching' aspect since it's all new to me 16:14:28 we could try changing the colors so the brighter color was the background 16:14:38 that *should* be a simple CSS change 16:15:31 worth a try 16:16:41 gundalow: do you happen to know why we chose to copy the sphinx theme into the ansible docs source code instead of using it as a package (aka instead of pip install sphinx-rst-theme or whatever it's called) 16:16:52 and I think the page thing should work with this logic: redirect to /path/to/.html; if that returns a 404, redirect to index.html 16:17:00 basically we have a copy of that from a while ago so it's quite old 16:17:21 #info 12:16 PM <@acozine> and I think the page thing should work with this logic: redirect to /path/to/.html; if that returns a 404, redirect to index.html 16:17:25 samccann: Not sure, before my time. Maybe so we could modify it, make so it's easier for people to build locally and get the same results 16:17:36 ok. thanks 16:18:51 I'd hesitate to build our theme "live" with current changes from Sphinx - we might get changes we didn't like, and not notice for a while 16:19:10 could we set up a quarterly update schedule, maybe? 16:19:18 I'm not sure if we have local modifications in files that RTD ships. If they can be moved to an `overrides` directory (if such a thing exists), it may make it easier to update 16:19:25 well it's a particular installed version. so perhaps if we don't upgrade until we've tested the latest we'd be okay? 16:19:55 that sounds reasonable samccann 16:20:24 we also want to check for any local changes we've made to the theme 16:20:41 making a note somewhere of pages to test would be good (pages with various local changes, nested option tables in module options/returns) etc 16:20:52 good idea 16:21:06 * gundalow needs to drop off now 16:21:13 * acozine waves to gundalow 16:21:28 thanks gundalow! 16:24:09 #info check whether we can place local modification to the Sphinx RTD theme in a persistent `overrides` directory to preserve them when we update the theme 16:25:20 #info develop list of pages that might be affected by RTD theme upgrades so we can check those with each upgrade 16:25:42 hrm, those should probably be action items 16:26:08 okay, we've got five minutes left . . . any other topics? 16:26:13 #topic openfloor 16:27:29 hearing none . . . 16:27:37 thanks everybody for joining in! 16:28:07 as a reminder, anyone can add agenda items by adding a comment to https://github.com/ansible/community/issues/389 16:28:19 talk to folks next week! 16:28:30 #endmeeting