15:48:44 #startmeeting Ansible Core 2019-08-08 15:48:44 Meeting started Thu Aug 8 15:48:44 2019 UTC. 15:48:44 This meeting is logged and archived in a public location. 15:48:44 The chair is maxamillion. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:48:44 Useful Commands: #action #agreed #halp #info #idea #link #topic. 15:48:44 The meeting name has been set to 'ansible_core_2019-08-08' 15:49:09 #link Agenda: https://github.com/ansible/community/issues/482 15:49:35 #topic felixfontein implemented "option b" as a follow up to last meeting 15:49:37 I have to leave soon, so some quick comments on my questions: 15:49:56 #info "option b" == https://github.com/ansible/ansible/pull/60178 in respect to https://meetbot.fedoraproject.org/ansible-meeting/2019-08-06/ansible_core_public_irc_meeting.2019-08-06-19.02.html 15:50:09 Aa) I've recreated a follow-up PR for option b), plPTAL :) 15:50:34 b) the module validation PR is I think uncontroversial, but I still wanted to ask whether the extra validations in there are OK 15:50:34 We did not have a quorum for that vote. Does anyone else have an opinion? Jill and I both preferred b. 15:51:08 (and sorry for my typing, was just traveling through a almost-no-internet area :) ) 15:52:11 felixfontein: I think it looks good but I'd consider this a major change in the changelog fragment and not a minor one, I could see this potentially breaking playbooks 15:52:41 maxamillion: fine for me; so far I thought that major_changes are reserved for core (non-module) changes 15:52:42 do we usually make major changes for deprecation? 15:52:45 major_change is for changes to Ansible itself, not usually modules. 15:52:48 felixfontein: oh ok 15:52:55 shertel: not that I know of 15:53:04 maxamillion: but I was just assuming that, no idea whether it's true 15:53:05 abadger1999: ping - mind adding a comment/context around that? ^^^^ 15:53:25 shertel: I honestly don't know, it just "feels major" :) 15:53:55 afk, bbl in 10 minutes 15:54:12 https://docs.ansible.com/ansible/latest/community/development_process.html#creating-a-changelog-fragment 15:54:18 Yeah, I could see that. I guess I thought not since it's just modules that will have a deprecation period before people need to worry about playbooks breaking. 15:54:34 sdoran +1 15:54:51 I read that all the time because I forget. :) 15:55:37 I think b is the best transition option, though it is a bit messy under the hood. 15:56:01 Yeah, it's a bit of a hack 15:56:03 But those using the modules will most likely think they are two different modules, so I think the behavior difference based on module name is ok. 15:56:19 And they behave like two different modules, so it's ok. 15:59:24 What's the context of what you need from me? 16:00:26 Clarity on changelog fragment headers. But I think our docs explain it well. 16:00:51 Is there a case where changes to modules would fall under `major_changes`? 16:01:07 In this case, changing the name and behavior of a several modules. 16:01:09 also, as an idle curiosity off to the side ... do we have a document somewhere that defines what qualifies as an `ansible_fact` instead of info? 16:01:31 I think maybe.... but would have to evaluate case-by-case until we can detect a pattern. 16:01:32 (but changing them in such a way that is backwards compatible with a deprecation warning) 16:01:58 (like, oh all the core file related modules have removed dest in favor of path. That would definitely be a major change ;-) 16:02:31 The thing that's changing is whether ansible_facts is returned 16:02:37 What are the modules involved here? 16:03:01 114 of them - https://gist.github.com/felixfontein/a6a1be999698da0ab3bd8868de6f16e1 16:03:26 or 113, he removed one 16:03:34 @maxamillion https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_checklist.html#contributing-to-ansible-objective-requirements <= last bullet point there 16:03:44 sdoran: perfect, thanks 16:05:42 Okay, I think I personally would prefer major_change but would accept either major_change or minor_change. 16:06:09 abadger1999: Awesome. Thank you. 16:06:14 It should also show up in deprecation and removed, right? Which people should be treating as major changes in and of themselves. 16:06:15 abadger1999: do you have an opinion on a) b) or c)? 16:06:47 (a) Deprecate these _facts modules and create a new _info module for each of them 16:06:56 (b) Rename them, and make them programatically return ansible_facts when called as xxx_facts, or not ansible_facts when called as xxx_info, with a deprecation warning when xxx_facts is called 16:06:59 So I'm not too worried if it is a minor_change if it also shows up in deprecate/removed. 16:07:05 (c) Rename them, make them return both ansible_facts and the same results outside ansible_facts, and warn in the documentation that the ansible_facts results will be deprecated and removed in 2.13 (there will be no warning when these facts will be used - that might change in 2.10, though) 16:07:26 re 16:09:01 maxamillion: about breaking playbooks: I hope that before the _facts modules will be removed, we'll have functionality to inform people when they use deprecated facts; so there will be a window where they can find out what to change more easily. 16:09:12 (not the whole 4 version deprecation window, but at least a subset of it) 16:10:08 b is kind of neat techically. I can't see any ways in which it is too smart for its own good off the top of my head (ie: it subtly breaks). However, one of the ways to move people off of deprecated things is to tell them during the deprecated period "This bug won't be fixed in xxx_facts. Use xxx_info instead where the bug is fixed".) So that social engineering aspect gets lost. 16:10:34 felixfontein: fair 16:10:38 Also, when you eventually remove the xxx_facts file altogether, you'll have to create the files at that time with the removal boilerplate. 16:11:08 So you're not gaining much over (c). 16:11:49 except that people can opt in to use the _info name, and then they know whether they're still relying on the facts somewhere because their playbooks will fail if they do 16:12:18 so from usability, I think (b) (and also (a)) is better than (c) 16:12:56 b might possibly affect our present tooling for detecting when a module deprecation has expired and it should be removed but someone would have to test that to see. 16:13:15 good idea 16:14:09 abadger1999: all these renames (113) should expire at the same time, so I'd assume we will notice and won't forget to do that manually :) 16:15:40 @felixfontein internally, I don't think we'd remember unless the tooling catches it. ;-) 16:15:57 does the tooling handles renamed modules (with old name deprecated) correctly anyway? 16:16:30 (We are notoriously bad about remembering to remove deprecated code but our tooling has gotten better at telling us when there's deprecated stuff to deal with) 16:17:02 I guess we'll find out for Ansible 2.10, because at least one renamed module's old name will expire then 16:17:07 (BTW, this is just analysis.... I don't think I see anything that blocks option b in here) 16:17:33 I think we do. I'll have to look at the releng docs to see what tests we enable and then disable to see. 16:18:11 the tooling probably has to consider the git log when the alias was created, otherwise it won't know when to remove the deprecated alias 16:19:06 I think the tooling for this would live in the ansible-deprecated-version pylint plugin (if it exists) 16:20:29 felixfontein: Looks like it finds AnsibleModule.deprecate() calls but not the module renames 16:21:13 ah. at least for the modules I renamed, there's a module.deprecate() call 16:21:25 for the ones I didn't rename and wasn't involved in, IDK 16:22:06 16:23:16 Anyway... I'm fine with (b) ;-) 16:23:25 I can't see anything wrong with it. 16:26:45 ok, so one more +1 for (b)? 16:26:59 I have to leave again, thanks already everyone for looking at this! 16:27:02 sdoran, maxamillion, have a vote for b? 16:27:09 \o 16:27:15 +1 for option B 16:27:22 I reviewed the PR. 16:27:51 Cool. I left a comment with abadger's suggestion about adding the deprecation notice. 16:28:02 thanks sdoran, I'l ltake a look at your review later; I'll also ask acozine on the formulation once everyone else is happy with the technical side :) 16:28:07 shertel: +1 for b 16:28:12 sorry 16:28:13 felixfontein: Just some minor things. 16:28:17 multitasking badly 16:28:39 That's the _only_ way to multitask. 16:29:44 Updated the vote tally 16:30:10 thanks for more input 16:41:39 Is our metting complete @maxamillion ? 16:41:52 I'm good 16:41:58 #topic Open Floor 16:42:09 if nobody has anything in the next 60 seconds, I'm pulling the trigger 16:42:21 * cyberpear want to re-open a docs PR that needs core discussion 16:42:46 https://github.com/ansible/ansible/pull/57318 16:43:30 it's a trivial change that documents an existing option w/ no functionality change, but the docs meeting thought it required core discussion 16:43:43 Yeah, it seems like the other is stagnate 16:44:18 (I can't re-open it myself since it was closed by not-me, and it's been locked, so I can't even comment on it.) 16:44:29 There's a PR I just reviewed to add that. 16:44:30 reopened 16:44:35 Let me dig up the link. 16:45:04 https://github.com/ansible/ansible/pull/60127 16:45:28 I'm in favor of documenting this. 16:45:51 I'm working on an alternative solution to this translation of group characters, but this should be a documented option until I get something working. 16:46:12 (I keep bringing up this closed PR, but everyone gets hung up on the fact that there's another far-reaching PR that also includes this tiny docs change) 16:46:41 I usually try to merge the older of two prs to be more fair. If cyberpear's looks okay I'd merge that rather than the one opened 2 days ago. 16:47:10 The other PR has some valuable stuff 16:47:25 but I don't think we should hold up documenting the ignore option since it isn't moving 16:48:10 We have had enough noise around this that it needs to be documented. 16:48:36 I think we're all in agreement. 16:49:14 And I meant "noise" not to be taken negatively: feedback on the pain/frustrtation around this behavior is much appreciated. 16:50:09 So whichever passes tests first we'll merge. Probably your PR cyberpear since the other has an erroneous code change still. 16:50:22 We need to wrap up. Anything else? 16:53:14 #endmeeting