15:30:35 #startmeeting Docs Working Group 15:30:35 Meeting started Tue Apr 9 15:30:35 2019 UTC. 15:30:35 This meeting is logged and archived in a public location. 15:30:35 The chair is acozine. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:30:35 Useful Commands: #action #agreed #halp #info #idea #link #topic. 15:30:35 The meeting name has been set to 'docs_working_group' 15:30:42 who's around? 15:31:11 hi 15:31:12 o7 15:31:25 #chair felixfontein samccann 15:31:25 Current chairs: acozine felixfontein samccann 15:31:59 alongchamps decentral1se Xaroth you folks running with the DaWGs today? 15:32:04 isn't it April 9 today? 15:32:17 yes, is that significant? 15:32:27 I'm here 15:32:27 https://github.com/ansible/community/issues/389#issuecomment-480994377 says yesterday :) 15:32:37 heh, my mistake 15:32:42 #chair alongchamps 15:32:42 Current chairs: acozine alongchamps felixfontein samccann 15:32:43 no problem, I only noticed now ;) 15:32:54 I'll fix it, give me a sec 15:33:30 gundalow: are you around? 15:34:28 * gundalow waves 15:34:36 #chair gundalow 15:34:36 Current chairs: acozine alongchamps felixfontein gundalow samccann 15:35:21 to anyone who is watching the chat and feeling shy - I hope you will participate 15:35:28 no 15:35:33 ;-p 15:35:40 and IM me if you have questions you'd like to ask privately 15:35:57 bcoca: heh, no chair for you, then 15:36:08 .chair 15:36:08 bcoca: (chair ) -- Alias for "echo $1 is seated in a chair with a nice view of a placid lake, unsuspecting that another chair is about to be slammed into them.". 15:36:08 okay, our first topic today is https://github.com/ansible/ansible/pull/54448 15:36:37 wow, zodbot is a little paranoid 15:37:15 acozine: I've not tested it, though PR looks good 15:37:16 ^ we had avoided doing this previouslly to 'discourage' aliases, ansible-doc resolves alias and presents actual module 15:37:30 bcoca: problem is we have broken docs links 15:37:42 especially due to renames 15:37:43 well, deprecated were supposed to (but never got) a redirect 15:37:57 is latest/foo_module.html may have worked when latest=2.6, though breaks when latest=2.7 15:37:58 which is a special case of aliases 15:38:35 bcoca: do you think the policy worked to discourage aliases? 15:38:36 a redirect is fine for me too, but it seems that a stub page is easier to implement 15:38:38 so i would treat alias != deprecated 15:38:55 redirects area paint to do, they live in a separate repo 15:38:58 acozine: mostly, since there are almost no aliases that did not come from deprecation/rename in repo 15:39:31 what happens if a module changes its "main name" (so the old name becomes an alias, the old alias the new name) from one version to the next? some kind of redirect / stub page would help to avoid broken links then 15:39:36 bcoca: okay, that's good, but the deprecation/rename ones are leaving users hanging 15:40:03 (I don't even know of any module alias which is not deprecation) 15:40:13 im not saying we dont add a way for them to connect, just that we might want to make a clear distinction between 'normal alias' and 'rename temp alias' 15:40:35 felixfontein: there used to be a couple, but i think we removed all ... agian 'discouraged' 15:40:43 bcoca: gotcha, so enforce "only deprecated modules are allowed to get aliases" 15:40:45 but its still possible for users to have em 15:41:03 i.e. modules outside of ansible/ansible? 15:41:05 acozine: not really, i would make sure 'deprecated' get a page, but 'alias' get symlink to orig? 15:41:24 ^ users also use docsite to build with their own custom modules internally, we have no control on 'alias policy' there 15:42:19 is there a way to create redirects out of sphinx? 15:42:30 15:42:35 or just symlink 15:42:40 bcoca: ah, good point about local modules - so what would you change about the PR we're considering? 15:43:08 samccann: where's that link about Sphinx redirects/aliases you found the other day? 15:43:11 use current template for 'deprecated/renamed' which we can detect, and make 'non deprecated alias' a redirect w/o anything to display 15:43:28 bcoca: can you add elements from .rst files? 15:43:49 bcoca: and does sphinx convert symlinked .rst files to symlinked .html files? 15:44:10 felixfontein: er .. its a symlink, do to html not rst 15:44:17 rst files dont make it into site 15:44:38 acozine: https://tech.signavio.com/2017/managing-sphinx-redirects 15:44:41 bcoca: but that would require major change of how the site is built. currently modules/plugins/... are only processed once to generate .rst files 15:45:01 so if it's possible to do this with the .rst files, that's way simpler :) 15:45:07 you are modifying WHAT generates rst files ... 15:45:25 i disagree, but since its your patch, fine if you do via rst 15:45:45 i jsut find it simpler to create symlink to module_.html 15:45:48 bcoca: I'm just wondering whether it is possible to do this without having to modify later parts of the build process 15:46:11 these files would be ignored by the build, but not by the transfer/webserver 15:46:47 ah, you mean putting the .html files directly into the output directory? 15:46:58 but again, do what you think is simpler for you, i was just thinking 'bypass all and use symlink' as simplest solution 15:47:13 no, putting symlink to html , html will be result of build process 15:47:25 you just KNOW what name it will have at that point 15:47:33 that's what I meant 15:47:50 but if you dont think that is simpler, anythign that gets us there works4me 15:48:17 if it can be done by the same script which creates the .rst files, I'm for it 15:48:34 I don't have much experience with Sphinx 15:48:50 dont need sphinx to do anything, just need to create symlink in right location 15:49:03 sphinx is out of the loop at that point 15:49:03 so do we want redirects only for aliases, or for both aliases and deprecation (i.e. no stub page at all)? 15:49:13 i would use stub for deprecation 15:49:28 or make it a 302 (temp redirect) 15:49:31 bcoca: I'm curious, why? 15:49:45 to allow users to know there was a specific rename and why 15:49:54 but i consider that 'optional' 15:50:04 ah, so they see the old page and have to click to get to the new page? 15:50:06 that makes sense 15:50:18 synlink works in both cases, perm and temp redirects 301/302 might be more 'correct' but that is really nitpicking 15:50:24 a little education along with the redirection 15:50:48 in the end, user ends up in 'correct doc page' , having stub helps with 'confusion for mymodule anding up in newmodulename' 15:51:35 felixfontein: do you have what you need to take the next steps on the PR? 15:51:43 but any of those workflows should be ok, my only point is that 'aliases' are possible in 'non deprecation' cases 15:51:50 and we might want to treat those diff 15:52:36 so stub for deprecation, symlink (which hopefully translates to redirect, depending on webserver I guess?) for aliases 15:52:59 webserver wont redirect, will just load target info under 'symlink name' 15:53:08 symlink == 'file alias' 15:53:21 but then it's not a redirect? 15:53:25 nope 15:53:28 bcoca: do we have a current example? 15:53:45 now I'm really confused. I thought we wanted redirects for aliases. 15:54:26 i presented several options 15:54:29 or is the same page as for the original name fine? 15:54:32 though symlnk for alias is simplest 15:55:10 felixfontein: yes, webserver just reads 'file x' if that file 'x' is symlink to 'y', contents of 'y' are presented 15:55:26 (that's what I would expect from a webserver) 15:55:33 its a 'filesystem redirec't, not a http one 15:55:59 which i think is fine for aliases, but we might want stub file instead for deprecation 15:56:44 -1 to symlinks. That will confuse Google (etc) about what the primary page is 15:56:46 if symlinks don't work we could also simply copy the .rst file. or does this screw up index generation? (I've never looked at how index generation works) 15:57:11 taht would create doulbe entries, you are better off with redirect or stub 15:57:26 bcoca: are you suggesting that for aliases without deprecation, we do what we did for the osx_say to say change? https://github.com/ansible/ansible/commit/d8a2d64ec1b17e177f763c56287604d8661924f6 15:57:50 basically 15:57:55 https://github.com/ansible/ansible/blob/d8a2d64ec1b17e177f763c56287604d8661924f6/lib/ansible/plugins/callback/osx_say.py 15:58:11 gundalow: consider that is probably ^ only case we have of actual 'alias' in our repo 15:58:29 * acozine looks at docsite to see how that functions 15:58:45 that probably generated 2 full pages with same content 15:59:17 https://docs.ansible.com/ansible/devel/modules/osx_say_module.html is 404, https://docs.ansible.com/ansible/devel/modules/say_module.html works 15:59:30 hmmmmmm, that's not doing what i thought it would do: https://docs.ansible.com/ansible/devel/plugins/callback/osx_say.html 15:59:30 i get content with both 15:59:47 felixfontein: callback plugins 15:59:53 lol, sorry 16:00:13 acozine: cause rst is generated using 'file name' as plugin name 16:00:18 both have content, but none mentions that the other is an alias 16:00:24 so it creates 2 diff pages with 'mostly same content' 16:00:29 yep, that is wrong 16:00:43 (except in the notes) 16:00:45 ^ why aliases shoudl be handled as special case 16:01:14 lord, it's worse than I thought 16:01:14 also, note ponints at module, not at callback plugin ... that is wrong 16:01:23 yep, what bcoca said 16:01:26 why i cautioned about alias != deprecation 16:02:13 at least we now have example to go on 16:03:06 yeah, it's nice to have a pair of use cases 16:03:17 99% will be deprecation though 16:03:30 its always the 1%'s fault! 16:04:23 so what should we do with aliases? 16:05:46 my instinct says, let's fix deprecations 16:06:12 if we can't fix aliases at the same time, we can make that a separate issue 16:06:18 they are already broken 16:06:37 also, aliases have very little impact currently (all of 1) so seems good call imho 16:07:05 ok. so create stub pages for deprecations, and a new issue for aliases? 16:07:07 +1 for fixing deprecations 16:07:19 +1 for felixfontein's plan 16:07:42 I think the PR only handles deprecations at the moment anyway, because aliases aren't put into the aliases list 16:07:56 (otherwise the osx_say / say callback plugin should have had them listed somehwere) 16:08:14 ah, so maybe it's ready to go then 16:09:02 I'll run a test on it, using the `github_hooks` and `digital_ocean` modules as examples 16:09:03 I'll streamline it a bit so it won't start creating stubs for aliases if that's ever fixed 16:09:36 felixfontein: sounds good, let me know when you're ready for a final test 16:09:44 aliases list should have all symlinks, unless someone added _prefix filter? 16:09:46 see also https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.8.html#deprecated for where I got the deprecated modules to test 16:11:23 bcoca: can you add those details to the issue about aliases, once we have one? 16:11:37 added to list 16:11:42 thanks! 16:13:10 acozine: I pushed the change, but local testing still takes some time... 16:13:16 (sphinx is slow...) 16:13:45 felixfontein: heh, yep - I'll keep an eye on the PR and run a non-local test when it's ready 16:13:54 thanks for the work on this PR! 16:14:06 sorry for piling on can of worms ... 16:14:27 bcoca: it's good to have someone who watches those corner cases 16:14:40 but sometimes we can only put carpeting in the middle of the room 16:14:44 today's one of those days, I think 16:14:47 i am a corner case (stats folk always find me in 'outlier' group) 16:14:50 heh 16:14:58 #topic custom 404 https://github.com/ansible/ansible/issues/51439 16:15:19 I'd like to put some requirements on this issue, in the hopes that someone will pick it up 16:15:24 right now it's a little sparse 16:16:20 this sounds like it needs a lot of knowledge on how the different versions are actually stored on the webserver, especially if this is supposed to be a dynamic script and not a bunch of pregenerated HTML pages 16:16:47 yeah, I think it might be too complicated as it stands 16:17:33 a first-round fix might be a page with links to the index pages of all the currently-supported versions 16:17:49 normaly you want to udpate webserver config to point to specific http error response pages 16:18:30 at the moment we don't have any error response pages, as far as I know 16:19:27 indeed: https://docs.ansible.com/ansible/devel/modules/module/asdf.html 16:19:41 felixfontein: exactly 16:20:07 the least we can do is provide the left-nav and a pane that says "we couldn't find the page you were looking for" 16:20:20 but give the user some way to move on from there 16:20:31 it's a terrible user experience right now 16:20:57 even if we do nothing about versions, we can do better than we're doing now 16:21:09 pages generated by sphinx seem to use relative URLs by default, so using that to create a simple page for 404 doesn't really work (at least not without finding out how to tell sphinx to not make it use relative links) 16:21:10 +1 on making it more useful - perhaps presenting the user with a search box 16:21:59 404 are handled by webserver, so not really something you can redirect/point at 16:22:11 its normally webserver config that points to 'for 404 use this page' 16:22:13 bcoca: you could create a page and tell webserver to serve that one on 404 16:22:27 bcoca: but can't we point the webserver at a page like docs.ansible.com/ansible/404.html? 16:22:28 felixfontein: didnt i just text taht? 16:22:30 yeah, I'm thinking a generic "we can't find what you're looking for" with a search for all versions 16:22:31 but for that you need a page which looks good no matter under which URL it is shown 16:22:36 I mean, if we had one? 16:22:37 i.e. no relative URLs 16:22:55 bcoca: I was typing while you wrote 16:23:00 2 problems are 'custom header/footer' and 'breadcrumbs' 16:23:22 so error pages are normally devoid of both, use generic that works across versions/etc 16:23:37 that's why generating the page with sphinx would be good. but only if we can force sphinx to generate absolute URLs in it 16:23:54 https://pypi.org/project/sphinx-notfound-page/ 16:24:16 acozine: looks good! 16:24:46 I'm surprised that sphinx can't do this out of the box, I would expect that this is a very commonly wanted feature 16:25:09 me too 16:25:52 meh. sphinx is still building. 16:26:37 * acozine hums the jeopardy theme song 16:27:19 I guess when switching git branches, all files get touched and so it just wants to regenerate *everything* 16:27:49 sphinx cannot force web server, just build stuff and put in specifi location 16:28:06 i woudl NOT want sphinx to update webserver config ... 16:28:17 bcoca: but it can prepare a page which can be used for 404 page 16:28:29 that's usually the hard part, once you got that you only have to adjust webserver config once 16:28:45 so, for the custom 404 thing, can we do this as a first round? add the sphinx-notfound-page extension, build a 404 page for `devel`, and test that we can reach it via the URL? 16:28:58 once we have that, we can address the apache config side of things 16:29:12 along with the other versions side of things 16:29:26 felixfontein: we keep saying same things in diff way 16:29:47 yeah 16:29:57 whee, sphinx finished! 16:30:03 it only took 17 minutes 16:30:06 heh 16:30:14 okay, I have to run for my next meeting 16:30:28 https://docs.ansible.com/asldfkj <= do we want /ansible 404 or full site one? 16:30:41 https://docs.ansible.com/ansible/asldfkj <= ansible specific 16:30:47 bcoca: ansible-specific 16:31:01 so it needs to be a webserver config for /ansible subdir 16:31:04 acozine: the link to the real module seems to be broken 16:31:07 we can coordinate that 16:31:48 felixfontein: ugh 16:31:56 acozine: I'm investigating 16:32:40 I'll update the custom-404 issue with a list of requirements 16:32:47 (the ones we know so far) 16:32:52 #1 must be cowsay based 16:33:02 nope nope nope nope nope 16:33:03 404 MUST be cowsay and 16:33:12 s/ and// 16:33:17 ______________________________________ 16:33:19 / this is not the page you are looking \ 16:33:20 \ for / 16:33:22 -------------------------------------- 16:33:23 \ ^__^ 16:33:25 \ (oo)\_______ 16:33:26 (__)\ )\/\ 16:33:28 ||----w | 16:33:29 || || 16:33:30 🐮 16:33:31 ^ and added jedi mind trick! 16:33:49 * acozine gives in to the enthusiasm for cows 16:33:59 okay, we're over time for today 16:34:03 isnt' our 500 page also cowsay based? 16:34:05 this is udderly rediculous 16:34:13 oh, now this has to stop 16:34:18 samccann: let it go, its a mooooo point 16:34:27 mooooooo 16:34:52 * bcoca cannot close pandora's box at this point, sorry acozine 16:34:59 my vote is `neigh` 16:35:40 bcoca: you didn't start it - I think cowsay was part of Ansible even before your time 16:36:01 thanks everybody for a productive DaWGs meeting! 16:36:11 he, barely .. i probably worked the most on that 'feature' 16:36:14 I'll update the 404 issue 16:36:28 bcoca: oh, you DID start it, did you? 16:36:30 acozine: PR is fixed, at least it works locally ;) 16:36:34 MPD did introduce it .. then was really suprised by how far i took it 16:36:40 felixfontein: excellent! 16:36:53 acozine: run ansible with COW_SELECTION=random 16:37:01 ANSIBLE_COW_SELECTION 16:37:05 okay, we're six minutes over, the official meeting part should end 16:37:12 #endmeeting