19:00:17 #startmeeting Ansible Community Meeting 19:00:17 Meeting started Wed Nov 9 19:00:17 2022 UTC. 19:00:17 This meeting is logged and archived in a public location. 19:00:17 The chair is gotmax. Information about MeetBot at https://fedoraproject.org/wiki/Zodbot#Meeting_Functions. 19:00:17 Useful Commands: #action #agreed #halp #info #idea #link #topic. 19:00:17 The meeting name has been set to 'ansible_community_meeting' 19:00:25 acozine andersson007_ baptistemm bcoca briantist cyberpear cybette dericcrago dmsimard felixfontein geerlingguy gundalow gwmngilfen ikhan_ jillr jtanner lmodemal misc nitzmahone resmo samccann tadeboro cidrblock thaumos zbr: ping! 19:00:35 #topic Intro and Info 19:00:42 .hello gotmax23 19:00:44 o/ 19:00:44 gotmax: gotmax23 'Maxwell G' 19:00:49 o/ 19:00:49 hi 19:00:51 Hey hey 19:00:55 #info Agenda: https://github.com/ansible/community/issues/645 / Topics: https://github.com/ansible-community/community-topics 19:01:07 #chair felixfontein briantist jtanner anwesha 19:01:07 Current chairs: anwesha briantist felixfontein gotmax jtanner 19:01:11 gotmax: changed https://github.com/ansible/community/pull/673 thanks 19:01:13 o/ 19:01:22 o/ 19:01:36 .hello2 19:01:36 #chair andersson007__ acozine 19:01:36 Current chairs: acozine andersson007__ anwesha briantist felixfontein gotmax jtanner 19:01:36 maxamillion: maxamillion 'Adam Miller' 19:01:42 o/ 19:01:42 Hi y'all 19:01:47 hello everyone 19:01:48 howdy folks 19:01:52 aloha 19:01:55 andersson007__: thanks! can you also change the channel's topic (once the meeting is over)? :) 19:01:57 We have a full house today! 19:01:57 o/ 19:02:01 indeed! 19:02:11 #chair samccann1 maxamillion DonNaro[m] 19:02:11 Current chairs: DonNaro[m] acozine andersson007__ anwesha briantist felixfontein gotmax jtanner maxamillion samccann1 19:02:33 Yeah to the full house :) 19:02:39 #info The weekly community meeting has moved from Wednesdays at 18:00 UTC to Wednesdays at 19:00 UTC so it stays at 2:00 p.m. EST / 8:00 p.m. CET now that DST / summer time is ending. The meeting location – #ansible-community on IRC and #community:ansible.com on Matrix – remains the same. As always, all interested community members are welcome! 19:02:56 The people here already know this, but announcing it again can't hurt :) 19:03:27 felixfontein: where? 19:03:38 andersson007__: on IRC :) 19:03:47 #chair gotmax[m] 19:03:47 Current chairs: DonNaro[m] acozine andersson007__ anwesha briantist felixfontein gotmax gotmax[m] jtanner maxamillion samccann1 19:04:14 #info Ansible 7.0.0b1 was released this week: https://groups.google.com/g/ansible-devel/c/vmnxxW7gCco 19:04:17 felixfontein: let's discuss it tomorrow morning, feeling a bit dumb now:) 19:04:24 andersson007__: sure :) 19:04:33 #info Ansible 6.6.0 was released this week: https://groups.google.com/g/ansible-devel/c/Kr7YjUN33pM 19:04:48 hooray releases! 19:05:09 #info ansible-core 2.14.0 was released this week: https://groups.google.com/g/ansible-devel/c/G5TB9zNKNDk 19:05:22 #info ansible-core 2.13.6 was relased this week: https://groups.google.com/g/ansible-devel/c/uDceTGqyXeE 19:05:27 19:05:29 #info Ansible 7.0.0rc1 will happen next week, and depending on the feedback Ansible 7.0.0 will either be released one or two week afterwards, with a potential rc2 inbetween 19:05:30 🎉 19:05:30 🎉 19:06:01 * gotmax[m] has been doing a lot of ansible packaging in Fedora this week :) 19:06:14 Does anyone have anything they want to discuss first? 19:06:24 🎉 19:06:42 ha! the element client does a thing and it's fun :P 19:07:40 * felixfontein has a proposal for private plugins/modules/roles in collections: https://github.com/ansible-community/community-topics/issues/154 19:08:20 #info We've merged the removal_from_ansible policy [change](https://github.com/ansible-collections/overview/commit/4d5ab3277fc537f4fae084362b15e2422b2f8818). Collections with unresolved Collection Requirements violations are now subject to removal from the Ansible package. 19:08:46 thanks everyone involved! 19:08:46 #topic How to mark private plugins in a collection #154 19:08:50 #link https://github.com/ansible-community/community-topics/issues/154 19:09:50 * gotmax[m] hands the talking spoon to felixfontein 19:09:55 The bridge is lagging :( 19:10:05 the proposal is to declare that plugins/roles/modules whose name starts with _ are declared as private, and that tooling such as ansible-doc, antsibull-docs, antsibull-changelog, etc. treat it as such by not showing them in the list of roles/plugins/modules by default 19:10:50 * andersson007__ heard that it's matrix.org servers lagging 19:10:59 felixfontein: that's seems reasonable 19:10:59 What is the use case for private modules? 19:11:12 right now a leading _ is used for deprecation in ansible-core, and there is some lingering code in the ansible-test validate-modules sanity test which interprets it that way, but these seem to be mostly vestiges as deprecation in collections is done in other ways 19:11:18 Has there been any involvement/input from the core team on this? 19:11:29 acozine: mostly modules that are used by roles in the collection 19:12:07 I don't object, but I'm not sure I understand why this is desirable, other than "that's a widespread convention across software languages and projects." 19:12:07 some helper that does something that doesn't really fit well to the collection's public face, but is needed in roles in the collection 19:12:14 ah, okay 19:12:21 or stuff you don't want to depend on other collections for 19:12:32 so it's not "stuff we want to hide" it's just "stuff most people really don't care about" 19:12:34 I definitely agree on the usefulness of private content 19:12:41 or shouldn't care 19:12:42 FTR, this was inspired by https://github.com/ansible-collections/community.sops/pull/98. felixfontein wanted to add a filter plugin that was only meant to be used by one of the collection's roles. 19:13:29 you could also have a module that's overly specific and has a bad API, but that you still need to fulfil a very specific task in a role, and that you don't want to make public 19:14:23 basically this is for stuff that roles so far could hide by adding modules/plugins in the role itself 19:14:34 that's no longer allowed for roles in collections :) 19:14:53 (so roles/xxx/library or roles/xxx/filter_plugins etc.) 19:14:54 if I use one of these collection roles in a playbook and run it with -vvvv (aka full troubleshooting mode) would that output hide or show anything about these private modules? 19:14:55 I +1'd in the ticket, I like the proposal and the implementation. Thank you felixfontein :) 19:15:01 @cybette:ansible.im cyb-clock chimes every 15 minutes during the community meeting 19:15:19 I know some folks over in #linux-system-roles would be interested in this as well 19:15:41 Even without this change, couldn't you still name it _latest_version and add a conspicuous warning to the description? 19:15:50 samccann1: these things are not private in a sense that you can't see them. they are just hidden from the most obvious glance, i.e. when listing plugins/modules/roles with `ansible-doc -l` or in antsibull-doc's generated plugin index 19:16:03 ok thanks 19:16:22 if you ask `ansible-doc foo.bar._private` directly you still get docs, or if you run `ansible-doc -l -v` (extra verbosity) 19:16:23 I believe this topic is on the meeting agenda for the next core meeting. 19:16:32 mattclay: it is! 19:16:43 I'm mainly trying to get some more community opinions on this :) 19:16:49 (and some more eyes on the proposal) 19:16:57 I'm a fan :) 19:17:08 I know there has been some discussion on it already by the core team. I believe we were leaning towards using metadata, rather than adding additional meaning to the filename. 19:17:13 for whatever that's worth 19:17:36 maxamillion: Ha, I was about to say that. rhel-system-roles bundles modules from c.g, ansible.posix, and containers.podman. 19:17:44 mattclay: I'd be happy about that too, though it seems that's a lot harder to implement (if the speed improvements for `ansible-doc -l` should stay) 19:17:45 gotmax (He/Him): +1 19:17:58 yeah, I would find the metadata more painful 19:18:06 or at least inconvenient 19:18:11 They have a script to edit module docstrings and change the names to make it clear that those modules are unsupported 19:18:11 but it's largely a minor thing 19:18:20 I was just working with them on this package yesterday 19:18:23 Anyways... 19:18:23 mattclay: glad to hear that, love the idea of private content, not too keen on the underscore method 19:18:40 (but I do somewhat understand the c compromises here) 19:18:40 seems like maxamillion and briantist disagree on this ;) 19:19:58 anyway, I see that there are others who like to have a way to mark plugins/roles/modules as private, it's mainly the 'how' that needs more discussion 19:20:19 or does someone disagree that there should be private modules/plugins/roles in collections? 19:20:20 using undercores feels clearer to me personally 19:20:46 it's probably my pythonista showing, but underscores having meaning is kind of a way of life so I have affinity towards that idea :) 19:20:53 i'm not sure i understand the desire for "private" content 19:21:17 mattclay: do you know when the next core meeting happens? is it actually tomorrow? 19:21:58 jtanner: I don't really want to have a filer for picking a largest version from a list of versions in a collection on encrypting variables, for example 19:22:09 jtanner: it becomes much more important/clear in a collection with roles 19:22:20 jtanner: including such a filter plugin would be confusing (why is it there? how is this related to the collection?) 19:22:46 the alternative to including that filter plugin is adding a dependency on community.general, which is ... not exactly desirable :) 19:23:02 it also has uses in integration targets, but you do have the option in that case of having role-based plugins so that need is not entirely unmet 19:23:03 (c.g is rather huge to include just because you need one tiny filter plugin from it) 19:23:09 I pointed out that this module would be a good fit for ansible.utils, but I know that we try to avoid dependencies on other collections. 19:23:18 felixfontein: Agreed 19:23:19 i've seen it previously requested for rhel system roles. i just don't see how it's useful when the "private"ness of the thing isn't really and just a visual cue 19:24:02 felixfontein: Yes, it's tomorrow. 19:24:05 We want to communicate to users that this is internal to the collection and it shouldn't be used/relied upon to be stable 19:24:19 jtanner: because if it's not private, then it's public, "advertised" in the collection and its docs, and so seems to be avialable for use (should not be), seems to fit semver of the collection (does not have to), and can also be seen as clutter 19:24:31 jtanner: it's more than visual, you can't see it in the standard lists (indexes on docsite, `ansible-doc -l`) 19:24:51 but you'll still rely on galaxy/linters to hide those things 19:25:06 o/ 19:25:10 mattclay: will the discussion also happen when I'm not around? since I definitely won't be there at that time (which isn't specific to the date, more to the day of week and time) 19:25:13 #chair mariolenz[m] 19:25:13 Current chairs: DonNaro[m] acozine andersson007__ anwesha briantist felixfontein gotmax gotmax[m] jtanner mariolenz[m] maxamillion samccann1 19:25:41 what i'm seeing is that you all want a convention that implies something rather than a feature that adds real scoping to ansible 19:26:09 jtanner: I think it's about discover-ability ... don't advertise this thing exists in the ansible-doc, in galaxy, in automation hub, etc 19:26:20 felixfontein: Both the Tuesday and Thursday times don't work for you? 19:26:28 jtanner: I don't mind a feature for real scoping, but I don't expect that this will happen anytime soon. whereas a convention (with some code support) is something that's easy to achieve and has a lot better chances of happening 19:28:10 mattclay: oh, for some reason I thought it's only on Thursday 19:28:59 felixfontein: The Tuesday and Thursday meetings alternate, and are at different times also: https://github.com/ansible/community/blob/main/meetings/README.md 19:29:02 i dunno ... is it less "easy" to add scoping to core or is it less "easy" to spend half a decade trying to deprecate a convention that scoping would eventually supersede 19:29:16 jtanner: define "real scoping" .... python does it with underscores and seems reasonably successful at it 19:29:39 maxamillion: callers can still access those properties/methods 19:29:47 jtanner: yes 19:30:01 @cybette:ansible.im cyb-clock chimes every 15 minutes during the community meeting 19:30:02 jtanner: which is 1) the desired behavior as I understand it ... and 2) also true in python 19:30:12 mattclay: is the next Tuesday meeting on November 23rd? somehow it doesn't show up in my calendar after importing the ICS file 19:30:16 jtanner: does #2 matter? ... no idea, but it's an observation 19:30:19 *shrug* 19:31:36 part of the reason no one's asking for "real" scoping I think is that it doesn't offer any advantages for the use cases we have in mind 19:33:10 How's this for a summary for the minutes? There's some agreement that there should be a way to mark content in a collection as private. The next steps are to decide whether to use the `_` prefix approach or a metadata based approach, discuss this with core, and get the changes into ansible-core and antsibull-docs. 19:33:18 well, if the convention is the path forward, i'd like to see that it's enforced and no collection -ever- tries to use "private" things from another collection, even if it's a dependency. Like aws.foo can't use aws.common._notouching 19:33:30 #link https://github.com/ansible/ansible/pull/79218 19:33:41 #link https://github.com/ansible-community/antsibull-docs/pull/56 19:33:58 jtanner: shouldn't be too hard to add such a rule to ansible-lint 19:33:58 jtanner: ahhhh ok, that's a fair point ... I follow 19:34:52 personally, I think that kind of hard blockage will end up being a negative. We don't really have examples where that kind of thing is helpful, and if I had to bet on it, I'd say someone will find a use case where they do want/need to use it cross-collection, and blocking it will have been a major impediment 19:35:12 my jaded experience says that we'll get lots of proliferation of cross-collection private consumption with "well, we wrote it so we can do what we want" excuses 19:35:31 felixfontein: It looks like the schedule readme is out-of-date. The ical is correct, and the meeting is only once a month now. 19:35:34 and if we can't enforce it, what's the point? 19:35:37 aws is an interesting example, with there being a pair of tightly coupled collections already; it's a great example where cross-usage could be valid 19:36:01 mattclay: so it's once per month, and always on Thursday? 19:36:29 briantist: that erodes the spirit of "private" imo 19:36:30 jtanner: we do already have a convention for private module utils in collections and that has no enforcement either. The point is about intention, and stating those intentions. Enforcement is not the important bit imo 19:36:54 basically private means that you don't have to care about semantic versioning, so if some other collection uses it and a change in it breaks the other collection, it's their own problem 19:37:09 felixfontein: Yes 19:37:17 felixfontein: sgtm 19:37:20 mattclay: thanks for clarifying! 19:37:23 felixfontein: +1 19:37:25 sorry, i've just been around long enough to believe that if it's not enforced, it's not going to happen 19:37:27 I do agree that example erodes the spirit of private, but that's also a decision to be made by the maintainers of those collections, not something for us to enforce onto them I think 19:37:46 like using git tags ... 19:37:47 Agreed 19:37:59 jtanner: again it's not about ensuring it doesn't happen, it's about stating intentions clearly 19:38:52 about private module_utils, we can always extend the sanity tests to flag these so that folks have to acknowledge that they know something isn't right by adding ignore.txt entries 19:38:57 #link https://github.com/ansible-collections/community.sops/pull/98 19:40:14 I'm curious to see what the core team thinks about this :) 19:40:22 #info There's some agreement that there should be a standardized way to mark content in a collection as private. If we proceed, the next steps are to decide whether to use the `_` prefix approach or a metadata based approach, discuss this with core, and get the changes into ansible-core and antsibull-docs to hide private plugins from `ansible-doc -l` and the docsite. 19:40:45 + galaxy 19:40:47 thanks for the nice summary, gotmax[m]! 19:40:59 jtanner: indeed, that would be great as well, since it also lists content 19:42:24 I think it might be worth to have a way convey the message that a plugin / module / module_util is meant for internal use only. So people know they can use it, but it's not necessarily stable. 19:42:54 is there something else folks want to discuss today? 19:43:08 #topic Open Floor 19:44:03 i've been working on the standalone roles views for galaxy_ng 19:44:04 regarding long running issues, there's still https://github.com/ansible-community/community-topics/issues/88 (Environment variables prefix with ANSIBLE_, and AWX), but I don't think it makes much sense to discuss this without someone from awx... 19:44:14 jtanner: sounds great :) 19:44:19 I reported issues against the collection that don't tag releases two weeks ago. None of them have been fixed... 19:44:24 example https://galaxy-ng-beta.tannerjc.net/ui/legacy/roles/13rentgen/grafana_annotations_bot 19:44:38 gotmax[m]: thanks a lot! and none fixed isn't good news :/ 19:45:09 @cybette:ansible.im cyb-clock chimes every 15 minutes during the community meeting 19:45:13 There was acknowledgement from the fortinet maintainers, but no actual action 19:45:47 felixfontein: should we ping awx folks in the issue about env vars? 19:45:54 gotmax[m]: didn't the fortinet maintainers said that the tags were in another repo? or was that someone else? 19:46:03 Those collections also still haven't resolved the sanity test errors 19:46:12 andersson007__: probably a good idea! do you know anyone from awx? (I don't really know who works on awx...) 19:46:13 felixfontein: That was https://github.com/F5Networks/f5-ansible/issues/2266 19:46:16 https://github.com/ansible-community/community-topics/issues/150#issuecomment-1307843899 19:46:21 ah right, it was F5... 19:46:23 felixfontein: i know gundalow :) 19:46:33 fortinet, f5, ... sounds all the same to me ;) 19:46:36 i'll mention him in the issue 19:46:46 I have no idea why there's two repositories... 19:46:50 andersson007__: ah right, he is doing something with awx now 19:47:01 gotmax[m]: THAT is another interesting question... 19:47:01 If gotmax (He/Him) didn't add those comments already, maybe we could agree on the wording? 19:47:52 mariolenz: You mean the wording for the comments I wanted to leave on those collections that they would be subject to removal? 19:48:08 https://github.com/ansible-community/community-topics/issues/150#issuecomment-1307843899 19:48:21 * gotmax[m] nods 19:48:23 andersson007__: cool, thanks! 19:48:28 Yep. 19:48:44 jtanner: looks good! 19:49:13 jtanner: what are 'legacy namespaces'? 19:49:17 I'd still like to add a data file to ansible-build-data with all of the collection repository URLs. 19:49:31 I worry about the 4 weeks only because I think of people going on Parental Leave or similar which is often longer than 4 weeks at most companies ... if in that time, they don't check in and their stuff gets removed, then what? 19:50:01 gotmax[m]: It would be purely informational to start with, but then we could implement tooling around it 19:50:35 maxamillion: after 4 weeks the stuff isn't removed, but we'll start voting on whether to remove it, and even if we decide to remove it, if they come back and fix it in a reasonable amount of time we can talk about not removing them 19:50:43 felixfontein: "namespaces" in galaxy/galaxy_ng have gotten a bit too "restrictive", such that they won't allow many of the current github usernames that have roles. So there has to be a LegacyNamespace model for standalone roles to accomodate that 19:51:08 gotmax[m]: it's a great idea, I would have already done it but, quoting some core team member, the cloning vats aren't ready... 19:51:31 jtanner: ah, that makes sense 19:52:00 felixfontein: ahhhh ok 19:52:05 felixfontein: I misunderstood 19:52:11 jtanner: for UX reasons it might be better to name them differently in the UI, 'legacy' sounds like they are no longer allowed 19:52:18 felixfontein: :). I guess this should be a separate file? 19:52:50 gotmax[m]: why not collection-meta.yaml ? 19:53:15 Yeah, that would work. 19:53:43 I mean we can also add another file for it, but collection-meta.yaml sounds generic enough to also have that IMO :) 19:54:59 I would want to add one field for the repository url and another optional field for the directory where the collection is stored (some collections are not stored in the repository root). 19:55:00 maxamillion: the 4 weeks are also there so that we don't have to wait forever to remove something if they actively ignore us 19:55:31 gotmax[m]: yes, that sounds great! 19:55:51 Would it be okay if I submitted a PR to mass add every collection's repository URL to that file? 19:56:04 gotmax[m]: fine for me! 19:56:08 They can be retrieved from the Galaxy API 19:56:21 there's also `legacy` modules in core that might mean something else 19:57:04 samccann1: they're something else :) 19:57:30 (or they are sooo legacy that I don't know what they are ;) ) 19:57:30 Would adding new fields to that file mess up the antsibulll's processing of that file in some way? 19:57:54 lol legacy for old school! 19:58:04 I remember there were issues when we added the Python version data. 19:58:37 Would https://github.com/ansible-collections/overview/pull/217 be worth a mention in https://github.com/ansible-collections/news-for-maintainers or not? Something like "we're being a bit more strict on collections following the requirements" or similar? 19:58:42 felixfontein: we had to have a naming convention to get it coded. the display name can be changed to something else, but with politics i've seen so far around, it's going to require a lengthy vote and not everyone is going to be happy 19:58:56 gotmax[m]: nope, it's loaded with a regular YAML parser and not written, so there should be no problem 19:59:24 jtanner: that's what I would have expected ;-) 19:59:34 legacy has a perfect meaning though "denoting or relating to software or hardware that has been superseded but is difficult to replace because of its wide use." 19:59:42 mariolenz: Sure! 19:59:59 mariolenz[m]: I guess that the maintainers who look at https://github.com/ansible-collections/news-for-maintainers are probably the ones that also react to issues we create in their collection repos :) 20:01:14 #action gotmax23 to submit an ansible-build-data PR add each collection's repository URL to collection-meta.yaml 20:01:29 jtanner: I'm sure we asked you that before, but would it be possible with galaxy_ng to have a role and collection with the same name? with legacy galaxy it is not since both would use the same URL in the UI (and maybe there are some more internal reasons) 20:02:20 felixfontein: they're independent entities between api/v1 and api/v3, so yes it's possible 20:02:49 jtanner: I think some folks will be very happy about that (thinking of jeff...) 20:02:59 It could cause user confusion, but as geerlingguy mentioned at Fest, it would make migrating legacy roles to collections less painful 20:03:08 Yup 20:03:10 gotmax[m]: precisely 20:03:37 I guess it's time to come to an end :) 20:04:20 Yeah, I was going to give it a two more minutes and then end the meeting 20:04:36 Any last words ;)? 20:05:07 I'm looking forward to 7.0.0 :D 20:05:21 Me too! 20:05:31 from the docs side, it's a huge improvement, just because of filter/test docs 20:06:16 The Fedora Engineering Steering Committee approved my updates policy exception to get ansible 7 in the upcoming Fedora 37 release. 20:06:22 oh, cool! 20:07:13 "mariolenz: I guess that the..." <- True, but it would be something we could link to when opening an issue in a collection saying we consider removing it from the community package. 20:07:58 Yeah, at the very least it can't hurt. 20:08:28 Okay, I guess we should actually end the meeting now :) 20:08:34 #endmeeting