ansible_community_meeting
LOGS
18:00:30 <felixfontein> #startmeeting Ansible Community Meeting
18:00:30 <zodbot> Meeting started Wed Apr 27 18:00:30 2022 UTC.
18:00:30 <zodbot> This meeting is logged and archived in a public location.
18:00:30 <zodbot> The chair is felixfontein. Information about MeetBot at https://fedoraproject.org/wiki/Zodbot#Meeting_Functions.
18:00:30 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
18:00:30 <zodbot> The meeting name has been set to 'ansible_community_meeting'
18:00:30 <felixfontein> #topic Agenda https://github.com/ansible/community/issues/645
18:00:30 <felixfontein> 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!
18:00:34 <felixfontein> #info Agenda: https://github.com/ansible/community/issues/645 / Topics: https://github.com/ansible-community/community-topics
18:00:37 <felixfontein> #topic Updates
18:00:41 <andersson007_> o/
18:01:00 <felixfontein> #chair andersson007_
18:01:00 <zodbot> Current chairs: andersson007_ felixfontein
18:01:02 <samccann> \o
18:01:04 <acozine> o/
18:01:14 <felixfontein> #chair samccann acozine
18:01:14 <zodbot> Current chairs: acozine andersson007_ felixfontein samccann
18:01:30 <gundalow> o/
18:01:57 <felixfontein> #chair gundalow
18:01:57 <zodbot> Current chairs: acozine andersson007_ felixfontein gundalow samccann
18:03:56 <dmsimard> o/
18:04:05 <felixfontein> #chair dmsimard
18:04:05 <zodbot> Current chairs: acozine andersson007_ dmsimard felixfontein gundalow samccann
18:05:23 <felixfontein> Today one vote is ending: https://github.com/ansible-community/community-topics/issues/90 if you stlil want to vote, please do so quickly!
18:06:04 <andersson007_> #info We are happy to announce that Alexei Znamensky [russoz](https://github.com/russoz) has recently joined the [Ansible Community Steering Committee](https://docs.ansible.com/ansible/devel/community/steering/community_steering_committee.html). Welcome, Alexei! Thank you for joining us and your great long-term contribution!
18:06:33 <acozine> welcome russoz !
18:06:46 <samccann> Welcome russoz !!
18:06:54 <felixfontein> welcome russoz[m] indeed :)
18:07:13 <andersson007_> there's ~6 am in russoz[m]: 's area now:) So he'll read our congratulations later
18:07:28 <acozine> oh, goodness
18:07:28 <gundalow> Brilliant stuff
18:07:31 <andersson007_> great path!
18:08:01 <gundalow> I think it's great that we are getting folks from different TZ, helps the asynchronous topics honest
18:08:09 <andersson007_> yep
18:08:17 <felixfontein> definitely!
18:08:54 <felixfontein> #info Ansible 4.7.0 has been released
18:09:24 <dmsimard> 5.7.0*
18:09:27 <dmsimard> #undo
18:09:27 <zodbot> Removing item from minutes: INFO by felixfontein at 18:08:54 : Ansible 4.7.0 has been released
18:09:30 <briantist> sorry will miss today's meeting, forgot to mention (am just here for a moment)
18:09:36 <dmsimard> #info Ansible 5.7.0 has been released
18:09:48 <acozine> we'll mess you briantist
18:09:53 <felixfontein> oops! thanks, dmsimard :)
18:10:01 <felixfontein> the 4 comes from community.general ;)
18:10:13 <samccann> heh sounds like a threat acozine ;-)
18:10:19 <felixfontein> acozine: I hope you mean 'miss' ;)
18:10:26 <acozine> heh
18:10:33 <acozine> yes, I did mean 'miss'
18:10:44 <acozine> five days away from the computer and I can't type
18:11:20 <felixfontein> #info Please don't forget to vote on https://github.com/ansible-community/community-topics/issues/92 (community.kubevirt removal from Ansible 7) and https://github.com/ansible-community/community-topics/issues/93 (community.kubernetes removal from Ansible 7)
18:11:47 <andersson007_> familiar feeling
18:11:54 <andersson007_> after PTO usually
18:11:56 <felixfontein> I added a vote count to https://github.com/ansible-community/community-topics/issues/90, would be great if someone can confirm the numbers
18:12:05 <andersson007_> looking
18:12:12 * felixfontein hasn't had a PTO without computer for a loooong time
18:13:38 <andersson007_> felixfontein: done
18:13:39 <felixfontein> #info Please also take a look at the following two discussions related to collection removal and Ansible package maintenance: https://github.com/ansible-community/community-topics/issues/94 https://github.com/ansible-community/community-topics/issues/96
18:14:00 <andersson007_> felixfontein: 5 days for example is a long time?:)
18:14:12 <gundalow> Could I please get #chair so I can do some updates?
18:14:12 <andersson007_> i guess yes:)
18:14:27 <acozine> #chair gundalow
18:14:27 <zodbot> Current chairs: acozine andersson007_ dmsimard felixfontein gundalow samccann
18:15:00 <remindbot[m]> @cybette:ansible.im cyb-clock chimes every 15 minutes during the community meeting
18:15:21 <felixfontein> gundalow: I #chair'ed you 14 minutes ago :)
18:15:30 <dmsimard> There is an item about jillr stepping down from the steering committee, not sure whether we want to put it in an update but I did want to extend my heartful thanks to jillr for being around
18:15:53 <andersson007_> +1
18:16:03 <gundalow> felixfontein: oh, before I was here, very efficient :)
18:16:03 <andersson007_> the last day will be 30 April
18:16:09 <gundalow> #info Pinakes is the upstream community project for Red Hat's Automation Services Catalog product. You can join the discussion in #pinakes:ansible.im  (`#ansible-pinakes` on Libera.chat)
18:16:18 <jillr> hey! sorry I can't be here live this week, I'm in another meeting (thus the recognition of the demands on my time, and stepping down)
18:16:30 <felixfontein> gundalow: right after you wrote "o/" :)
18:17:04 <felixfontein> jillr: thanks for all your work in the committee! and I'm really glad you're still around in general :)
18:17:15 <andersson007_> +100
18:19:42 <felixfontein> btw, today bcoca's sidecar yaml docs PR got merged, so in devel branch it's now possible to document filter and test plugins! I'm currently looking at supporting that in antsibull-docs as well
18:19:53 <briantist> thanks jillr !! 👏
18:19:53 <acozine> wow
18:20:27 <acozine> jillr: we will miss you, not just today, but long into the future
18:20:41 <jillr> <3  I'll be around!
18:20:56 <acozine> re: the sidecar PR . . . I did not think I would live to see the day
18:21:11 <samccann> yay for side car docs!
18:21:24 <samccann> and support coming in antsibull-docs so we can see 'em on the docsite!
18:22:59 <andersson007_> 👍
18:28:09 <felixfontein> I would be interested to hear what folks think about the discussion topics of https://github.com/ansible-community/community-topics/issues/94 and https://github.com/ansible-community/community-topics/issues/96
18:28:35 <felixfontein> the first topic is "What to do on Ansible collection dependency violations?", the second "Generic sanity check for all collections"
18:29:02 <samccann> in general I like the idea of a generic sanity test for all collections. Not sure how deep it could go
18:29:16 <felixfontein> both are about problems the current Ansible package has: 1) community.okd is not compatible with kubernetes.core, and 2) fortinet.fortios is partially totally broken (some modules have syntax errors)
18:30:00 <remindbot[m]> @cybette:ansible.im cyb-clock chimes every 15 minutes during the community meeting
18:30:04 <felixfontein> the first makes it impossible to create an Execution Environment for Ansible, and the second makes it impossible to package Ansible for Debian (and thus also Ubuntu) without the user getting errors when installing the package
18:30:07 <samccann> the dependency one feels more difficult. I see what you are saying about not being able to build an EE from it, but how important is that vs having 'batteries included'?
18:30:20 <acozine> +1 for adding a nightly (or weekly) check
18:30:50 <felixfontein> samccann: not being able to build an EE shows that we include an invalid version combination; whether the collections are actually incompatible is another question
18:30:54 <samccann> or is this more like a user of kubernetes.core might be the same user for community.okd (aka somewhat related collections) and they can't use both with the current problems?
18:30:58 <acozine> it would be nice to have a way to say "this collection has a problem, you can see the problem here"
18:31:12 <acozine> instead of learning that a collection is broken from user complaints
18:31:19 <felixfontein> samccann: if someone just uses kubernetes.core they are ine. but community.okd depends on kubernetes.core, so users of it might be impacted
18:32:25 <felixfontein> we don't have time to fully investigate (i.e. review) every collection, but having some sanity checks (like running `ansible-test sanity --docker -v`) is definitely a good thing IMO
18:32:33 <gundalow> Agree we need some sort of nightly test driven by `ansible.in`, I think dmsimard has thought about this in the past
18:32:46 <felixfontein> also making sure that the collection's dependencies don't contradict is important IMO
18:33:24 <felixfontein> gundalow: yes, I remember that, but I didn't find anything in a (very) quick search
18:33:26 <dmsimard> gundalow: yes, ideally we should also be able to run that suite of tests on the results of an ansible package build
18:33:44 <samccann> these two feel like related collections. What happens when say collection.foo has a dependency of version 1.2 of 'bar'... but collection.squiggle (totally unrelated) depends on version 2.0 of 'bar'?
18:34:10 <felixfontein> samccann: that would be a similar problem, and something we should strive to avoid
18:34:22 <samccann> so foo is for say security folks,  squiggle is for daisy-farmers... They may never overlap
18:34:30 <felixfontein> samccann: if there is an earlier set of versions for these three collections that fits together, we can stick to that one until the problem is fixed
18:35:07 <felixfontein> if all of them want to be in ansible, they still have to fit together. otherwise we'll have to kick (at least) one out - IMO
18:35:17 <samccann> ok but we'd need a 'fallback' plan. If the offending collection doesn't react to update their dependencies, we don't want to leave the more frequently maintained collection stuck at some ancient version
18:35:28 <andersson007_> you know, the situation with dependencies feels like it's becoming a nightmare. can the dependencies between collections be forbidden?
18:35:34 <andersson007_> brainstorming
18:36:07 <andersson007_> it would probably imply code duplication but anyway
18:36:11 <felixfontein> samccann: that's kind of a problem indeed. basically a unmaintained version can force a maintained collection to be stuck at an old version - except if we forcefully remove the unmaintained one. but that's a breaking change, and we want to conform to semver.
18:36:15 <acozine> how many dependencies between collections do we have?
18:36:16 <samccann> either limit the dependencies, or hold any collection with said dependencies to a 'higher standard' to update their dependencies or get removed at some point
18:36:42 <felixfontein> andersson007_: then we have to remove all network collections (they all depend on ansible.utils and ansible.netcommon) and community.aws
18:36:48 <acozine> my sense is that many of the cloud collections are sub-divided, so they have dependencies
18:36:55 <andersson007_> felixfontein: oh..
18:37:05 <acozine> and yeah, the network ones all depend on netcommong
18:37:07 <acozine> s/netcommong/netcommon/
18:37:13 <felixfontein> netcommon depends on utils I think
18:37:19 <acozine> are there other "sets" of collections?
18:37:31 <andersson007_> a chain of dependencies..
18:37:43 <andersson007_> or dependency hell
18:37:47 <acozine> but overall my sense is that collection dependencies are the exception, is that not true?
18:37:59 <felixfontein> there's kubernetes.core, community.okd and community.kubevirt; the latter has its own problems (because it will depends on community.kubernetes < 2.0.0 but doesn't declare that)
18:38:12 <felixfontein> acozine: most collections try to avoid it, luckily :)
18:38:17 <samccann> the network collections are all afaik owned by the same 'team' so to speak.
18:38:31 <samccann> but okd and kuberneetes.core are not
18:38:32 <felixfontein> we successfully removed all dependencies community.general and community.network had (except the ansible.netcommon dependency of community.network)
18:38:45 <acozine> yeah, I don't think we need to worry about the network ones getting out of sync
18:38:51 <andersson007_> thanks felixfontein for that!
18:39:00 <felixfontein> samccann: except community.network, which is now owned by the community team since nobody else wants it...
18:39:20 <felixfontein> or let me say "owned" :)
18:39:30 <gundalow> Officially ignored by :)
18:39:35 <samccann> heh
18:39:44 <andersson007_> can we duplicate the code and forbid dependencies in not network collections?
18:39:44 <samccann> that's a valid point that breaks the 'one team' paradigm for sure
18:39:46 <gundalow> (for those that don't know, that's my team I'm talking about)
18:41:03 <felixfontein> it's probably a good idea to limit dependencies to very specific cases; like if someone wants to depend on something owned by another team they have to promise to update their dependencies ASAP, or they will get kicked out super-fast
18:41:16 <gundalow> Do we think it's possible to walk over all the collection dependencies listed in all the collections in `ansible` and ensure the name/versions don't conflict/are missing?
18:41:24 <felixfontein> I'm not sure whether we want to violate semver for that though
18:41:40 <felixfontein> gundalow: there's now code for that in antsibull :)
18:41:58 <felixfontein> so far the only problem is community.okd, which depends on an older verison of kubernetes.core
18:42:12 <samccann> a question on that fast kicking out - how does the end user know this could happen?
18:42:13 <felixfontein> (and community.kubevirt which doesn't declare its dependency correctly... but that's probably removed soon)
18:42:39 <samccann> like I use community.okd and have no idea it's violating a dependency rule.
18:42:43 <felixfontein> samccann: assuming they don't read the changelog, porting guide and release announcement, they notice that their playbook(s) stop working
18:42:49 <samccann> and could get the boot mid-cycle
18:42:58 <samccann> ooch
18:43:13 <felixfontein> that's why I really would like to avoid kicking something out in the middle of a cycle
18:43:34 <felixfontein> unfortunately this means that anther collection might be stuck to an older version for up to 6 months
18:43:37 <samccann> a cycle is 6 months long, roughly, right?
18:43:43 <felixfontein> yes
18:44:21 <felixfontein> ah, there's also community.routeros that depends on ansible.netcommon that's not handled by the same team
18:44:31 <felixfontein> (disclaimer: I'm one of its co-maintainers)
18:44:39 <samccann> heh
18:45:00 <remindbot[m]> @cybette:ansible.im cyb-clock chimes every 15 minutes during the community meeting
18:45:03 <samccann> ok trying a mental walkthrough here
18:45:13 <samccann> i use okd. It gets the boot
18:45:21 <samccann> I can just download it from galaxy, right?
18:45:35 <samccann> assuming I am not also using kubernetes.core
18:45:45 <felixfontein> yes
18:45:47 <samccann> and if I am, then I have to download the older kubernetes.core, right? and it all works?
18:46:25 <felixfontein> hmm, good question, I'm not sure what `ansible-galaxy collection install` does when you try to install something that needs an older version of a collection that you have currently installed
18:46:35 <samccann> so maybe a mid-cycle boot isn't as bad as I'm thinking, so long as we announce that it could happen in the porting guide/annoucements etc
18:46:37 <felixfontein> maybe force-install works, maybe it does not
18:47:04 <samccann> yeah we probably need docs on how to recover if you use a collection that's been removed from Ansible
18:47:55 <samccann> we'll probbly still get flack for not having deprecation warnings. I think folks really depend/expect them and this is an area where we can't do that
18:48:22 <felixfontein> so we need to a) determine whether we really want to kick something out mid-cycle, and b) how long we wait (by keeping the version it depends on back) before kicking it out if we do
18:48:25 <samccann> I don't suppose there's a clever way to add a deprecation warning feature into ansible the package to pick up on this?
18:48:42 <felixfontein> there isn't
18:48:48 <felixfontein> unfortunately
18:50:19 <andersson007_> ansible.netcommon is a great point of failure, should get untouchable
18:50:22 <samccann> I could foresee a case where we struggle on 'who to blame' so to speak
18:50:29 <samccann> yeah thinking of that one
18:50:40 <jtanner> blame me, that's usually accepted
18:50:44 <felixfontein> :)
18:50:51 <andersson007_> :D
18:50:57 <samccann> if netcommon makes drastic changes, who's responsible for the dependent collections? I mean if it's specifically designed to be COMMON
18:51:06 <felixfontein> I'd always blame the collection which didn't manage to update their dependencies :)
18:51:28 <felixfontein> samccann: drastic changes usually mean a new major version, which only gets included for the next release cycle
18:51:36 <samccann> yeah but say 20 outside collections (not part of that team) start depending on these common tools.
18:51:50 <felixfontein> samccann: and if we drop something out for a new major version, it's not a violation of semver ;)
18:52:19 <felixfontein> if you depend on that collection, then you should set up CI so it runs against the latest released version of that collection as well
18:52:33 <acozine> if they are active maintainers they will be in regular contact with the rest of the community, including the folks who develop the common collection, right?
18:52:38 <felixfontein> even if it is non-voting, but you should monitor it and adjust your collection ASAP
18:52:49 <felixfontein> (even better: test against ansible.netcommon's main branch)
18:53:02 <andersson007_> monitoring is hard
18:53:15 <felixfontein> also GHA is making GHA monitoring hard
18:53:38 <samccann> yeah.. just feels there's a corner case here. if your collection really is a set of common tools, breaking those tools for everyone else is like breaking an API.
18:54:14 <samccann> but agreed, setting up CI to detect this is definitely someting dependent collection owners should (possibly MUST) do
18:54:18 <felixfontein> samccann: theoretically they can only break when doing a new major release due to semver, but of course in real life... :)
18:54:36 <andersson007_> real life is hard
18:54:49 <andersson007_> at least in collections
18:54:52 <felixfontein> we probably should extend the requirements so that collections with dependencies do more testing against newer versions of their dependencies
18:55:13 <samccann> +1
18:55:14 <andersson007_> hard to control, i think
18:55:28 <resmo> o/
18:55:29 <andersson007_> but we could mention it of course
18:55:37 <felixfontein> andersson007_: it's definitely hard to control, but if they screw up it's *realy* their fault and nobody can complain to us ;)
18:55:40 <felixfontein> #chair resmo
18:55:40 <zodbot> Current chairs: acozine andersson007_ dmsimard felixfontein gundalow resmo samccann
18:55:48 <andersson007_> felixfontein: true:)
18:55:55 <felixfontein> most of our requirements are hard to control, but we still have them :)
18:56:17 <andersson007_> agreed
18:58:08 <felixfontein> ok, time's almost up
18:58:22 <felixfontein> please also comment in https://github.com/ansible-community/community-topics/issues/94 and https://github.com/ansible-community/community-topics/issues/96 :)
18:59:43 <felixfontein> any last words for this meeting?
19:00:48 <felixfontein> thanks everyone!
19:00:49 <felixfontein> #endmeeting