19:00:07 <gundalow> #startmeeting Ansible Molecule Working Group
19:00:07 <zodbot> Meeting started Wed Feb 13 19:00:07 2019 UTC.
19:00:07 <zodbot> This meeting is logged and archived in a public location.
19:00:07 <zodbot> The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot.
19:00:07 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
19:00:07 <zodbot> The meeting name has been set to 'ansible_molecule_working_group'
19:00:32 <fabianvf> woo
19:00:39 * alongchamps waves
19:01:52 <gundalow> #chair zbr themroc fabianvf alongchamps
19:01:52 <zodbot> Current chairs: alongchamps fabianvf gundalow themroc zbr
19:02:57 <zbr> hi everyone! :)
19:03:10 <acozine> 0/
19:03:19 <gundalow> #chair acozine
19:03:19 <zodbot> Current chairs: acozine alongchamps fabianvf gundalow themroc zbr
19:03:47 <themroc> should we start by 2.20 release date (vs. broken functional tests)?
19:04:15 <gundalow> #info Agenda https://github.com/ansible/community/labels/molecule
19:04:30 <gundalow> #topic v2.2.0 release
19:04:43 <gundalow> themroc: sounds good
19:05:04 <gundalow> #info There hasn't been a Molecule release since Red Hat became the maintainer
19:05:42 <gundalow> #info Though we are fairly close https://github.com/ansible/molecule/milestone/1
19:06:05 <zbr> cannot make a release with CI broken, adding a tag would fail on travis, so no release would be produced unless we do it manually.
19:06:26 <gundalow> #info Getting CI green is the last required issue, which is https://github.com/ansible/molecule/issues/1727 and $issue_needs_creating_for_current_ci_issue
19:06:27 <themroc> #info new CI has been put in place but hasn't stabilized yet
19:06:30 <gundalow> zodbot: exactly
19:06:37 <acozine> what is the soonest proposed release date?
19:06:56 <gundalow> acozine: days to a week?
19:07:02 <gundalow> oh, changelog will need doing
19:07:32 <acozine> so Friday Feb. 15 at the earliest and Friday, Feb. 22 at the latest?
19:07:49 <zbr> how about tagging a pre-release today?
19:08:42 <gundalow> Does tagging something that doesn't pass CI give us much, no pip package for example
19:08:44 <zbr> add a tag 2.20b1 and publish it to pypi. it would be installed only by those using --pre or that do mention full version in their reqs.
19:08:56 <gundalow> acozine: oh, sorry, I meant once CI was green
19:09:21 <themroc> zbr: sounds good
19:10:14 <zbr> themroc: using prereleases allows early-addopters to test them, and lower the risks of having to take a release back (unpublish).
19:10:16 <gundalow> #info Original Molecule Release Procedure https://molecule.readthedocs.io/en/latest/development.html#release-engineering FYI hasn't been updated since Red Hat became maintainer
19:11:02 <gundalow> So agreed that we want a pre-release, publicise, get feedback, wait $period_of_time, then do v2.2.0?
19:11:17 <themroc> +1
19:12:41 <acozine> +1
19:12:56 <themroc> NB: the dockerfile is not ready to produce a relevant docker image in that scenario, as it is using pip install without versioning (and without --pre)
19:13:12 <gundalow> #agreed pre-release, publicise, get feedback, wait $period_of_time, then do v2.2.0? Need to ensure this includes the Docker image
19:13:15 <gundalow> themroc: nice spot, thanks
19:14:31 <gundalow> #info Docker image is published to quay.io and seems to be being built OK https://quay.io/repository/ansible/molecule?tab=tags
19:14:40 <gundalow> OK, so I guess that brings us to
19:14:43 <gundalow> 1) Green CI
19:15:01 <gundalow> 2) What else should block the release https://github.com/ansible/molecule/milestone/1
19:15:27 <gundalow> #topic Getting CI green
19:15:47 <gundalow> #info yapf fixes have been merged
19:16:05 <gundalow> #info Cron should be ignoring `devel` (work around for https://github.com/ansible/molecule/issues/1727)
19:16:21 <gundalow> #info Current issue shown here https://travis-ci.com/ansible/molecule/
19:17:00 <gundalow> Which I'll be honest, I'm not sure what the issue is
19:18:22 <themroc> https://travis-ci.com/ansible/molecule <=  Ansible Lint (4.1.0) L475-494
19:19:22 <themroc> as we have now open dependencies, ansible-lint>=4.0.1,<5, travis is using the latest stable version of ansible-lint
19:19:33 <themroc> new version => new rules => new fails
19:20:01 <themroc> on https://travis-ci.com/ansible/molecule/jobs/177459353
19:20:30 <zbr> themroc: a genuine question, do we want to link molecule to a specific ansible-lint version. i personally do not.
19:21:14 <zbr> i currently use molecule with lint disabled everywhere, not because i do not lint, but because i lint outside molecule.
19:21:26 <themroc> that was the case until 2.19, and it was not a problem, let's say, because molecule had a monthly release: version was fixed for 1 month
19:21:57 <zbr> i also hate that pip install molecule is messing my ansible-lint package
19:21:58 <themroc> for a slower release cycle, it gets problematic
19:22:32 <themroc> meanwhile, ansible-lint release cycle has quite speedup lately ...
19:22:49 <themroc> with new rules, having impacts on tests
19:22:54 <zbr> themroc: cannot we make ansible-lint optional? like an extras?
19:23:34 <themroc> i would not recommend that, enforcing ansible-lint is one of the strength of molecule
19:23:57 <gundalow> Could someone explains what the CI failure are?
19:24:07 <shaps> hi
19:24:29 * shaps is just lurking
19:24:46 <themroc> gundalow, i just explained the first one, i am looking at the next one
19:24:49 <gundalow> https://travis-ci.com/ansible/molecule/jobs/177459353 I see `test_command_init_role[docker]`, `test_command_init_scenario[docker]` and `test_command_init_role_inspec` failing
19:25:30 <dachary> \o
19:25:46 <gundalow> #chair shaps dachary
19:25:46 <zodbot> Current chairs: acozine alongchamps dachary fabianvf gundalow shaps themroc zbr
19:25:47 <gundalow> Hi :)
19:25:55 <zbr> themroc: if user defines "lint: enabled: false" linting is not performed, so I would argue that ansible-lint should not be listed as a hard-dependency of molecule pip package.
19:25:56 <dachary> +1 on So agreed that we want a pre-release, publicise, get feedback, wait $period_of_time, then do v2.2.0?
19:26:08 <gundalow> dachary: Ace
19:26:31 <themroc> gundalow, lines 475-494
19:27:06 <zbr> dachary: +1 tag and push the pip prerelease and give us time to send feedback. we can have as many pre-releases as needed before shipping 2.20
19:27:16 <gundalow> Yup
19:27:28 <dachary> yep
19:27:28 <themroc> so for this one 2 solutions: get back to a fixed version af ansible-lint for 2.20, and adapt later
19:28:01 <themroc> or fix the stuff to be compatible with ansible-lint 4.1.0 rules
19:28:03 <zbr> see if latest ansible-lint does not sort issues,
19:28:36 <zbr> 4.1.0 did sort problems introduced by 4.0.x releases., most of them.
19:29:13 <dachary> although decentral1se is absent right now, I propose he is granted merge rights. IMHO he is qualified and it would help the molecule move forward
19:29:26 <themroc> zbr, 4.1.0 introduced the issue, https://travis-ci.com/ansible/molecule/jobs/177459353 ran with that version
19:30:46 <zbr> themroc: ok, in this case limit max version until we have time to investigate bumping it.
19:30:56 <gundalow> dachary: decayofmind and themroc already have merge rights, though I've asked them to hold off merging till we get CI green. They have been doing a great job triaging (adding labels, milestones, etc)
19:31:16 <gundalow> And we need ansible-lint 4.1.0 for another fix
19:31:46 <themroc> for https://travis-ci.com/ansible/molecule/jobs/177459354 and https://travis-ci.com/ansible/molecule/jobs/177459355 it is something else, apparently yamllint related
19:31:48 <gundalow> So does that mean we go for updating to be ansible-lint compatible/
19:31:57 <dachary> gundalow: is that a -1 then?
19:32:02 <zbr> gundalow: i +1 for decentral1se to become core, he knows his stuff.
19:32:02 <themroc> ok
19:32:40 <gundalow> Once CI is green I'm we can give the merge (subject to me just getting nod form someone else in Red Hat), should be good
19:33:51 <themroc> [701] Role info should contain platforms,         [703] Should change default metadata: author,         [703] Should change default metadata: description,         [703] Should change default metadata: company,         [703] Should change default metadata: license
19:34:09 <themroc> that should not been too difficult
19:34:30 <dachary> gundalow: great :-)
19:35:28 <dachary> motion to grant decentral1se merge rights once a) the CI is green, b)  another person from Red Hat agrees in addition to gundalow. What say you?
19:35:32 <dachary> +1
19:35:55 <gundalow> dachary: it will be sorted :) Priority is getting CI green
19:36:30 <gundalow> themroc: Do you think you can fix all the issues?
19:36:46 <gundalow> Or would you like to break it down into smaller parts so others can help?
19:36:54 <themroc> 2nd option
19:37:26 <themroc> i have little time for molecule in the day lately (and sadly)
19:37:36 <gundalow> Sure, that's why I wanted to check :)
19:37:50 <gundalow> Anyone able to help with this?
19:37:51 <gundalow> #chair
19:37:51 <zodbot> Current chairs: acozine alongchamps dachary fabianvf gundalow shaps themroc zbr
19:38:03 <zbr> gundalow: i can try but i am busy to so I cannot promise.
19:38:43 <smyers> I can probably help fix the lints, the meta errors seem straightforward and I'm currently hacking on some other stuff in molecule. Also hi, I'm seandst on github.
19:39:02 <gundalow> #chair smyers
19:39:02 <zodbot> Current chairs: acozine alongchamps dachary fabianvf gundalow shaps smyers themroc zbr
19:39:04 <gundalow> Hi welcome :)
19:39:06 <smyers> o/
19:39:19 <gundalow> smyers: If you could take lint & meta data that would be brilliant
19:39:25 <gundalow> themroc: How's that sound?
19:39:30 <themroc> thank you smyers
19:39:37 <dachary> I would be willing to help but I've seen long delays in reviews and nitpicking even when the proposed fix is trivial. I would feel more motivated if there was more people able to merge and less people willing to squabble over details.
19:40:14 <shaps> I'm available to help if/when/where required
19:40:19 <smyers> sure thing, and I recognize the time-sensitive nature given that 1) pinning ansible-lint in CI is not-very-desireable, and 2) green CI blocks release
19:40:27 <zbr> dachary: that is why i proposed adding some kind of bot to help with reviews (assign reviewers, approve...)
19:41:06 <themroc> for https://travis-ci.com/ansible/molecule/jobs/177459354 i see test is using https://github.com/retr0h/cookiecutter-molecule.git that will be probably get problematic some day
19:41:55 <gundalow> smyers: zbr Once we've got Molecule v2.2.0 out we can revisit our development process and see how we can make it easier (and safer) for all
19:42:13 <zbr> indeed, if we are to use a cookiecutter template, it should stored inside molecule codebase, for obvious reasons.
19:42:23 * gundalow raises and issue for https://github.com/retr0h/cookiecutter-molecule.git
19:43:43 <gundalow> Tracked as https://github.com/ansible/molecule/issues/1747
19:43:50 <themroc> thanks
19:44:08 <gundalow> themroc: So you OK with the remaining bits of CI as smyers has kindly offered to take lint & meta?
19:44:52 <themroc> lint and meta is what is breaking functional tests shard 1
19:45:16 <gundalow> ah, that's a clean split :)
19:45:52 <themroc> shard2 there is this cookiecutter thingy, but the error is a pure python error, it's maybe beyond my competence
19:46:16 <gundalow> themroc: sure, shout out here
19:46:43 <themroc> so please, i am happy to get some help for it
19:48:08 <gundalow> cool
19:48:11 <gundalow> #topic Open Floor
19:48:16 <gundalow> Anything else?
19:48:18 <gundalow> #chair
19:48:18 <zodbot> Current chairs: acozine alongchamps dachary fabianvf gundalow shaps smyers themroc zbr
19:48:42 <zbr> i wanted to open the subject of multi-role repos
19:49:20 <zbr> https://github.com/ansible/molecule/issues/1744
19:49:21 <gundalow> #topic Multi-role repos
19:49:36 <gundalow> #info [investigate]: use of molecule with multi-role repositories #1744
19:49:43 <gundalow> #info https://github.com/ansible/molecule/issues/1744
19:49:47 <gundalow> zbr: Sure, floor is yours
19:50:25 <zbr> mainly all use-cases of molecule in openstack repos involve the need to test more than single role per repo.
19:51:03 <zbr> and we want to be able to easily test all or only somespecific roles, and reuse as much as possible between them (to avoid copy paste code)
19:51:50 <zbr> while that issue is important-change it should be possible to slowly implement enablement changes that allow use to go into this direction
19:52:26 <zbr> i already proposed two minor changes this morning: one about scenario default name and the other one about custom molecule glob pattern.
19:52:48 * themroc searching in the doc where he saw something going in that direction
19:53:02 <zbr> both of them should be considered low risk
19:55:48 <themroc> --base-config ?
19:56:09 <zbr> but sooner or later we will find changes that will need more work, for example: same scenario name defined in two config files. that's is a normal use-case, but now is not possible.
19:56:43 <zbr> themroc: yep, base config helps here but i sense that it will not be enough by itself.
19:57:48 <themroc> it is quite new as far as I remember, and poorly documented :( but the intention behind was to support your use case
19:58:03 <zbr> if we do everything right, we should be able to do "molecule list" in repo root and list all scenarios in all roles (recurisvely), or if we go in a subdirectory and run the same command to see a subset of them.
19:58:45 <smyers> so to help my userstanding, for multi-role repos you'd have e.g. role1/molecule/default and role2/molecule/default in a single repo, both scenarios named 'default', so you'd need update the glob to be like */molecule/*/molecule.yml, and handle multiple 'default' scenarios?
19:59:08 <zbr> smyers: you are right.
19:59:55 <smyers> I don't have much to add, just wanted to make sure I wasn't off on some different line of thinking. Thanks.
19:59:58 <zbr> smyers: to be more precise the parrent i seen is /roles/.../molecule and /playbooks/.../molecule -- as we need to also test someplaybooks.
20:00:44 <themroc> is the feature related to the future galaxy collections ?
20:01:32 <zbr> some people may just want to put everyting under a single /molecule/... even if they keep roles in /roles/ --- usable even now with a bit of include tunning.
20:02:11 <zbr> but once we allow custom glob pattern[s] we are good to got for next round.
20:02:32 <zbr> themroc: nope.i do not know about galaxy as it is officially deprecated.
20:03:16 <themroc> in fact at work we escaped the issue like that: we reference the roles in tox.ini, and then we each role is tested as a different tox environment
20:03:33 <zbr> i started to use gilt and find it really useful , but this is something else. this would sort the issue of dependencies on roles from other repos.
20:04:00 <themroc> advantage is when one molecule test fail, we have only output about this role in the ci logz
20:04:34 <themroc> but really, we did that because this multi-role support was missing :)
20:04:43 <zbr> themroc: i do not want to put molecule config in tox.ini in order to allow them to use molecule in and outside tox too, based on theirpreference.
20:05:25 <zbr> themroc: once we will have a config file in the root of repository this will be fixed. same config for tox and non-tox mode.
20:05:54 <themroc> so i believe it's a good idea, and it is certainly a good idea to ping some people preparing the galaxy collections to get in the same direction
20:06:15 <themroc> they will need that feature badly :)
20:07:00 <zbr> themroc: isn't the future called mazer?
20:07:19 <smyers> would be nice to be working with multi-role reposs when it's actually released :)
20:08:27 <smyers> mazer is the cli tool, aiui galaxy 3 is what brings in multi-role repos. No idea how accurate or up to date these docs are: https://galaxy.ansible.com/docs/contributing/creating_multi.html
20:09:09 <smyers> I'm entirely a galaxy user, and have no knowledge of the backend though
20:09:53 <gundalow> #info #ansible-galaxy has the Galaxy and Mazer developers in
20:11:30 <gundalow> Guess that's a good point to end
20:12:06 <gundalow> themroc: smyers Thanks again for offering to take a look at CI. Please ping me here once you have PRs (I don't keep up with GitHub email)
20:12:18 <gundalow> Thank you everybody for taking the time to join
20:12:29 <smyers> gundalow, will do
20:12:36 <gundalow> import by URL https://raw.githubusercontent.com/ansible/community/master/meetings/ical/molecule.ics
20:12:55 <gundalow> Feel free to add yourself to https://github.com/ansible/community/wiki/Molecule
20:12:58 <gundalow> #endmeeting