15:01:22 #startmeeting Documentation Working Group aka DaWGs 15:01:22 Meeting started Tue Aug 24 15:01:22 2021 UTC. 15:01:22 This meeting is logged and archived in a public location. 15:01:22 The chair is acozine. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:01:22 Useful Commands: #action #agreed #halp #info #idea #link #topic. 15:01:22 The meeting name has been set to 'documentation_working_group_aka_dawgs' 15:01:27 o/ 15:01:29 #topic opening chatter 15:01:32 morning 15:01:37 #chair briantist abadger1999 15:01:37 Current chairs: abadger1999 acozine briantist 15:01:42 morning/afternoon/evening 15:01:55 I see felix is getting some healthy outdoor exercise 15:01:57 * gundalow waves 15:01:59 who else is around? 15:02:02 #chair gundalow 15:02:02 Current chairs: abadger1999 acozine briantist gundalow 15:02:08 * samccann waves late 15:02:21 two whole minutes late! 15:02:23 I'm lurking today 15:02:31 what is the world coming to? 15:02:39 lmodemal[m]: do you want to be furniture? 15:02:41 #chair samccann 15:02:42 Current chairs: abadger1999 acozine briantist gundalow samccann 15:02:43 ooo ur on matrix lmodemal[m] ? you'll have to teach me later 15:03:01 No furniture today :/ 15:03:11 sounds good lmodemal[m] 15:03:29 Yup, it was a simple setup samccann 15:03:39 Thanks acozine 15:03:57 * dericcrago waves 15:04:00 dmsimard: dericcrago cyberpear mrproper[m] tadeboro Xaroth you folks chatting docs today? 15:04:04 #chair dericcrago 15:04:04 Current chairs: abadger1999 acozine briantist dericcrago gundalow samccann 15:05:18 official agenda begins with https://github.com/ansible/community/issues/579#issuecomment-900480779 15:05:34 I am in read-only mode today because dadops. 15:06:02 tadeboro: sounds good, thanks for reading 15:06:46 heh 15:06:54 one question about this topic, it mentions "plugins" but it looks to me like it only applies to actions/tasks/modules, is that right? 15:07:13 we are having thunderstorms here, and our network monitor is purple all over, so apologies if I start dropping packets, slowing down, etc. 15:07:53 briantist: are you talking about the attributes stuff? 15:08:09 yeah 15:08:23 cool, let's start there today 15:08:36 #topic module/plugin attributes 15:09:02 background: started with https://github.com/ansible/ansible/pull/73707 15:09:05 felix may not be here, nor abadger... should we wait a bit before covering that? 15:09:28 oh wait, abadger is here... nvm ;-) 15:09:30 briantist: I am not certain but for the schema felix is adding it to a point where all plugins can use it. My guess is that all plugins could use it but so far, only modules/action plugins do. 15:09:47 expanded with https://github.com/ansible/ansible/pull/74331 15:10:11 #info background: started with https://github.com/ansible/ansible/pull/73707 15:10:23 #info expanded with https://github.com/ansible/ansible/pull/74331 15:10:50 ok, I saw that PR too, but I'm mostly asking because I have a hard time seeing how most (maybe all) of those attribs would apply to a non-action plugin 15:11:01 which is potentially fine, just looking to understand it 15:11:25 briantist: My guess there would be that there will be an entirely different set of attributes for other kinds of plugins. 15:11:32 I see 15:11:44 But i am not on the core team so I am not certain. 15:11:54 (It's just my sense of how it could be used) 15:12:46 yeah, I suspect it's mostly modules now, but it feels like the kind of functionality that could be expanded and elaborated upon in other contexts 15:12:57 I got the feeling that attributes are some additional semi-standardized pieces of metadata that is most useful on modules right now. 15:13:19 I can already hear a voice in my head saying, "Hey, could we use `attributes` for that?" 15:13:31 heh 15:14:47 output is currently broken, see https://github.com/ansible/ansible/issues/75164 15:14:47 "Mark which lookup plugins can be used in with_* vs ones which just return a single value from external sources" "Replace the exising marking for stdout callback plugins with an attribute" 15:15:49 # docs output for modules that include these attributes is currently broken - https://github.com/ansible/ansible/issues/75164 15:16:07 attributes could provide a lot of useful information 15:16:11 I think that felixfontein's schema PR is pretty close. But we do need to figure out how to add this information to the module pages too. 15:16:18 yep, exactly 15:16:25 list vs table? 15:16:50 #info felixfontein has a schema PR to help with this but we need to decide how we want to add this info to the module pages too. 15:17:06 have the description on each module page or just the name and have that link to a page with a description of all attributes? 15:17:22 #info Schema PR: https://github.com/ansible-community/antsibull/pull/301 15:17:29 thanks! 15:17:55 so would the 'average' ansible user need a description? or would they understand 'check_mode' etc? 15:18:03 o/ 15:18:06 if we look at https://docs.ansible.com/ansible/latest/collections/ansible/builtin/import_playbook_module.html#ansible-collections-ansible-builtin-import-playbook-module 15:18:10 hey felixfontein 15:18:13 #chair felixfontein 15:18:13 Current chairs: abadger1999 acozine briantist dericcrago felixfontein gundalow samccann 15:18:18 sorry for being late 15:18:20 how was your bike ride? 15:18:34 no problem, welcome! 15:18:40 good :) I had to wait a bit longer at the end though, otherwise I would have already been online for 10 minutes ;) 15:18:56 cool fun! 15:19:41 abadger1999: regarding the PR, probably the default status should be 'unknown' and not 'none' 15:20:02 (if we have a default value for ''standardized attributes) 15:20:55 I sometimes like to think that I am an advanced ansible user and I would still like to see at least a short description. Without it, things like turbo mean almost nothing. 15:21:15 felixfontein - so if a module includes say two attributes, then the rest would be listed as unknown? I'm assuming modules that don't include any attributes don't list anything at all? 15:21:21 agreed about making the default status `unknown` - `none` can mean so many things 15:21:25 felixfontein: Hmmm... 15:21:42 samccann: it depends on whether a docs fragment the module uses already defines values or not 15:21:45 * acozine hears distant cat howl of distress, BRB 15:21:52 felixfontein: Okay, why do you think that? 15:21:53 heh woopsie on the cat 15:22:01 the docs fragment bcoca added has default values for all attributes, and if someone extends it, they explicitly say which things they support 15:22:17 but if they don't extend that fragment, setting everything not specified to 'none' is not a good idea 15:22:28 ok based on tadeboro's comment, then I think the attribute, setting, and description are what we want. 15:22:48 because then every plugin which doesn't extend that doc fragment (which is basically everything except a handful) supports no check mode, no diff mode, ... according to the generated docs 15:22:53 which is wrong in many cases :) 15:23:25 * acozine is back at keyboard 15:23:34 ah. 15:23:48 I wonder whether we should only show the standardized attributes that have been explicitly specified, and show them with our own description (to make sure there's always the same description, and that nobody changes it to some other random text) 15:24:28 for example, right now someone could abuse the diff_mode attribute to mean something completely different 15:24:57 +1 for same description in the docs 15:25:04 also for all collections that support ansible-core < 2.12, they cannot use that docs fragment, so they have to have their own descriptions everywhere, which will result in a large amount of different texts for the same attributes 15:25:23 and I'd also not want these showing up unless they are set. A long list of uknown/none could get annoying 15:25:29 felixfontein: One thought about check_mode.... if check_mode is unknown... would we want to link to have the module documentation show check_mode? 15:26:00 felixfontein: can we generate an error that would at least make the publication pipeline break noisily? 15:26:31 abadger1999: I'm not sure. not showing check mode will confuse some users; showing it as 'unknown' will confuse others (and make the docs of all plugins confusing that don't use attributes yet) 15:26:50 We could think of it as opt-in-to-new-feature (ie, check_mode would have to be documented inside the description until they added the attribute) but in that case, we might as well default to none? 15:26:56 acozine: that would mean that if someone fixes a typo in the standard docs fragment, or something like that, that suddenly 1000s of plugins report errors 15:27:04 just tossin it out there - could we backport just the docs fragment all the way to say 2.9 so solve that specific collection problem? 15:27:52 samccann: that would definitely help (it would have to be `options: {}` for all older versions to not raise an error), but it would ensure that the plugins only work with versions of these that include this docs fragment 15:28:20 felixfontein: true, I was thinking of the scenario where we only allow standard attributes - what happens when someone adds a new one? would we wait for a user to report the docs breakage (which is what happened before)? 15:28:31 which would mean that c.g suddenly needs ansible >=2.9.25,<2.10, or >=2.10.15,<2.11, or >=2.11.9 15:28:35 (picked some random numbers :) ) 15:28:37 felixfontein: Could another collection provide that doc_fragment? 15:28:57 something new and small like ansible.compat212 15:29:11 abadger1999: that could be done, but adding a dependency is a breaking change, so it requires new major versions. and it is a dependency, and most collections try to avoid these :) 15:29:39 and the ansible package could carry it until ansible-core-2.12 is the oldest version of core that is still supported. 15:29:42 15:30:27 #info all collections that support ansible-core < 2.12 cannot use the common atrributes docs fragment, so they have to have their own descriptions everywhere, which will result in a large amount of different texts for the same attributes. Not easy to solve this. 15:30:38 abadger1999: it would have to carry it a lot longer, namely until all collections in it dropped that dependency 15:31:35 (I guess it will have gotten new compatibility stuff that everyone uses by that point, so it will never get dropped :) ) 15:31:57 ok so if we backport the fragment, then a whole bunch of collections then have to specify very specific versions of 2.9, 2.10, etc that they are compatible with. If we add a tiny collection, then a whole bunch of collections have a new dependency they don't like. 15:32:18 felixfontein: -ish.... We could tell people to switch away from it by X release or their collection will be dropped from the ansible package. 15:32:19 yes... 15:32:35 #info if we backport the fragment, then a whole bunch of collections then have to specify very specific versions of 2.9, 2.10, etc that they are compatible with. If we add a tiny collection, then a whole bunch of collections have a new dependency they don't like. 15:32:58 felixfontein: I was thinking the collection would only have compat things that showed up in 2.12. If other things show up in ansible-core-2.15, then that would be a different collection 15:33:08 ok so for this mini collection, it's only needed by collections that opt in to use the attributes? or does everyone need it? 15:33:24 only those that opt in to use the attributes. 15:33:28 abadger1999: some collections might not want to drop 2.9 compatibility for a looong time 15:33:39 This is true. 15:33:45 there are still people who don't want to put their stuff into a collection because they want to support 2.7 or something like that 15:34:17 ok but there is always going to be a cost for staying compatible with 2.9.. and one of those costs could be either don't use the new fancy stuff (attributes) or add a compat collection dependency 15:35:10 which probably means that attributes will be even less adopted :) 15:36:02 couldn't it work the other way? instead of "our collection requires >=2.9.15" could they do "Ansible 2.9 required my.collection <2.0, >=1.23"? 15:36:40 felixfontein: It shouldn't be uch work to maintain an ansible.compat212 collection so it's probably mostly a question of whether we want to push people off of 2.12 and earlier at some point. (So maybe steering committee would vote on when to drop that collection from the ansible tarball and force collections to port or be removed) 15:36:45 if there would be a possibility to declare all standard attributes which doesn't use docs fragments, that would probably be the best solution 15:36:47 not that this adds anything to the discussion but it is quite annoying that 2.9 is an "LTS" release that for many reasons is hard to drop support for (because so many people still need it), but it doesn't get backports of important things /rant 15:38:08 https://www.irccloud.com/pastebin/w5SvVDOx/ 15:38:16 briantist: are you thinking of specific things that haven't been backported to 2.9? 15:38:21 heh that's what I get for being longwinded 15:38:47 felixfontein: how would #4 work above? 15:38:51 brb canging train 15:39:16 bicycles AND trains, my goodness 15:39:23 I think 4 would probably need code adjustments inside of ansible-core 15:39:25 cyb-clock-clone sez we are 40 min into the meeting and the current topic 15:40:00 acozine: it's probably best not to derail further, sorry 😅 15:40:08 briantist: heh, gotcha 15:47:57 heheh 15:56:40 Congratulations acozine ! 15:56:40 mmm, cake! 15:56:40 abadger1999: having a ansible.compatibility collection (that can be used for other compatibility things as well) might also be a good idea, it could also provide some more features that right now are only available in newer Ansible versions - it might create new challenges with versioning though 15:56:40 felixfontein: 15:56:40 ok I'm at my destination very soon, so I'll be off for a couple of hours 15:56:41 we're nearing the end of the hour 15:56:41 (and my connectivity sucks right now anyway ;) ) 15:56:41 heh 15:56:41 thanks everyone and until later! 15:56:41 felixfontein: it's probably better than mine right now 15:56:41 bye felixfontein 15:56:41 and thanks! 15:56:41 #action samccann add deciding how the attributes should look like in the docs to next week's agenda 15:56:41 heh 15:56:41 acozine: I'm sometimes losing connection for 10-20 seconds inbetween, and mosh is showing a lot of underscores the whole time 15:56:41 by felixfontein !! 15:56:41 #topic open floor 15:56:41 Congrats, acozine! 15:56:41 thanks! 15:56:41 bye felixfontein ! 15:56:41 I have one small thing/request for the open floor, but will wait to see of others have something first 15:56:41 I'll throw out another call for any collection maintainers who are interested in having an automated docs build on PRs to let me know, so we can work together directly 15:56:41 it'll help pull out which elements of what I'm doing can be shared more widely, be added to the collection template, etc. 15:57:00 someone in the dim and distant past apparently set the search engine to prioritize "all text" instead of "page titles" 15:57:04 * gwmngilfen-work arrives v.late 15:57:09 Yay! 15:57:19 which is kind of like saying "no prioritization at all" 15:57:24 yep 15:59:17 "If everything is urgent, nothings is" kind of deal ;) 15:59:32 exactly 16:00:10 we've also done some work on improving the titles since the dim and distant past; with luck the two changes will reinforce each other 16:01:17 yeah that's why I figure we may need some specific examples of what's not working to see if it's the search engine, or how we have to docs structured etc 16:01:55 samccann: do you want a social media blitz? 16:02:04 I bet gundalow could make that happen 16:02:12 well hoping folks here could start playing first 16:02:15 heh 16:02:18 sounds good 16:02:23 woopsie, two minutes over 16:02:29 I can always post in reddit etc, but figure let's get some friendly feedback first ;-) 16:02:47 Happy to help 16:03:01 heh 16:03:12 acozine: Carol Chen is your person for such a blitz :P 16:04:04 I take samccann's point about maybe letting friendly viewpoints help us for a while, before we open ourselves up to the full onslaught 16:04:25 all right, keep your eyes on this space for more about `attributes` 16:04:31 chat welcome any time 16:04:44 thanks abadger1999 briantist dericcrago felixfontein gundalow gwmngilfen-work samccann tadeboro 16:04:49 see you next week! 16:04:53 thanks! 16:04:59 #endmeeting