13:59:40 #startmeeting AnsibleFest Austin: Contributors Summit - Core update 13:59:40 Meeting started Mon Oct 1 13:59:40 2018 UTC. 13:59:40 This meeting is logged and archived in a public location. 13:59:40 The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:59:40 Useful Commands: #action #agreed #halp #info #idea #link #topic. 13:59:40 The meeting name has been set to 'ansiblefest_austin:_contributors_summit_-_core_update' 13:59:43 +r should help, I hope 14:00:11 #chair bcoca abadger1999 jtanner nitzmahone 14:00:11 Current chairs: abadger1999 bcoca gundalow jtanner nitzmahone 14:00:17 #info https://etherpad.openstack.org/p/ansible-summit-october-2018 14:00:39 im really on a bench 14:00:42 #info https://bluejeans.com/7480904391 14:01:37 Can people here me? 14:01:42 yes 14:01:45 hi 14:01:51 hello! 14:01:53 we can HEAR you 14:02:04 I HEAR you :) 14:03:23 o/ 14:03:32 matt is happy about the microphones ... 14:03:41 what's the password again? 14:03:48 no password 14:03:54 for wireless 14:04:06 for mine 'no password' 14:04:07 a few people here missed that slide 14:04:10 haha 14:04:27 ansiblefest wifi is AutomatesAustin (or AutomateAustin) 14:04:28 where can I see the slides? the slide view vanished some minutes ago 14:05:15 dmsimard: thanks 14:06:25 felixfontein image it'll come back when there are slides to see. 14:06:50 is there a fest / contributor summit channel? 14:06:56 sdoran: thanks! 14:07:08 bearrito: This is it. 14:07:10 bearrito: this one, normall #ansible-devel is where most contributors hang out 14:07:14 sdoran: good to see your face, ableit in small square on a projector! 14:07:19 but for fest, we all here 14:07:49 defionscode: Hey dude! I'm bummed I didn't get to come since you're there. 14:08:02 * misc think the camera is looking a bit too much at the ceiling and not enough at people 14:08:06 ¯\_(ツ)_/¯ 14:08:18 a very nice ceiling 14:08:34 (from gundalow session) 14:09:12 misc: Tell us when to stop 14:09:36 So now we see the floor _and_ the ceiling, great :) 14:09:43 sorry. 14:09:45 the door header is nice ... 14:09:47 we misunderstood. 14:09:48 nice tiling! 14:09:52 :) 14:09:53 o/ 14:09:56 can we blame jlk for the camera angle yet? 14:10:03 just bring camera down 10degrees 14:10:11 You can try... 14:10:12 that way we can stare at nitzmahone and abadger1999 14:10:52 stop ! 14:10:55 much better, thanks robyn :) 14:11:01 now you've gone down too much 14:11:07 there, good 14:11:31 please zoom the overhead screen. The text is tiny for those of us in the back. 14:11:41 also the front 14:12:01 share screen? 14:12:09 there's also a slight amount of mic feedback ringing 14:12:17 am I the only one who cannot see the screen/slides/...? 14:12:22 nope 14:12:25 felixfontein: nope, I can't either 14:12:40 https://github.com/ansible/ansible/projects/30 14:12:56 ^ That's what's currently on the screen 14:13:01 #info Ansible 2.8 project board https://github.com/ansible/ansible/projects/30 14:13:06 thanks! 14:13:28 ah! slides! 14:13:28 screen back up 14:15:10 who's talking now ? 14:15:15 james tanner 14:15:16 dag: jtanner 14:16:24 "Through communications and meetings we can make it work" 14:16:25 jlk: Is the text readable? 14:16:49 gundalow: not to me, I have bad eyes though. 14:17:03 gundalow: it's tough to read even being closer to the front 14:17:05 its shown in the bluejeans session 14:17:11 also YAAAY GitHub Project boards! 14:17:14 On screen is: https://github.com/ansible/ansible/projects/ 14:17:36 jlk: someone actually _uses_ GitHub Projects 14:17:43 haha. I use them... 14:17:49 jlk: it worked mostly well in previous releases but we abandoned it, since that didnt work well, we are retrying them with a more structured apporach 14:18:11 #info Project board gives us better viability of what is being done. Ensure we don't get to the end of the release cycle then ask "what's left" 14:18:22 #info testing & review IS contribution 14:18:26 There's been some improvements to boards as well, with better automation, ability to interact with an issue directly from the board, etc. 14:18:27 by 'us' that includes the community 14:19:01 also i think we need a 'stalled' collumn 14:19:03 #chair abadger1999 alikins bcoca jtanner mattclay maxamillion mordred nitzmahone Qalthos sdoran shepdelacreme sivel thaumos trishnag 14:19:03 Current chairs: Qalthos abadger1999 alikins bcoca gundalow jtanner mattclay maxamillion mordred nitzmahone sdoran shepdelacreme sivel thaumos trishnag 14:19:04 or 'blocked' 14:19:06 bcoca: Please do loop me in on any frustrations. Project boards didn't get much attention until lately 14:19:29 jlk: we'll know more once we start using them again, i was big fan of them first time 14:19:31 #action bcoca to add ideas for staled/blocked to Etherpad 14:19:48 i have more gripes about issue forms (lack of customized fields being the biggest) 14:19:53 #action gundalow to ensure we keep jlk in the loop regarding how we find GitHuub project boards 14:20:03 I'm a big fan of them if everyone actually uses them—a lot of people don't think to put card in 'in progress' when it's in progress... that could cause some confusion 14:20:12 just need a good process, and someone to remind people to use it 14:20:13 ++ 14:20:30 gundalow: where? we dont seem to have 'project board' anywhere 14:21:02 bcoca: project board = https://github.com/ansible/ansible/projects/30 14:21:16 bcoca: notes/ideas to go in https://etherpad.openstack.org/p/ansible-summit-october-2018-Core-update 14:21:24 geerlingguy: indeed. Bots can help with ensuring issues get on boards, but that could also wind up being noisy. Boards aren't magic, still need people to buy in. 14:21:54 #info We can use "Cards" to link to proposals on the Project Board 14:21:56 We probably should clean up some of the existing projects, there's still a "2.4 blockers" project and a "2.5" and "2.5 blockers project 14:22:23 gundalow: is there a template for a proposal? 14:22:24 jlk: One thing I wanted was a way to specify dependencies. For instance, https://github.com/ansible/ansible/projects/30#card-13296928 <=== I'd like to break that up into separate cards but since they all depend on the first task being performed, I wanted to make sure they were linked together more. 14:22:33 #action gundalow clean up existing project boards (ensure they are closed) 14:22:36 dag: Thanks 14:22:59 abadger1999: I don't think there's any way to formally do that in GH yet :/ 14:23:01 #info template for proposal https://github.com/ansible/proposals/issues/new 14:23:01 o/ 14:23:24 abadger1999: yeah, deps are not handled well. Often we end up doing a tracking issue that links to the sub issues. We only keep the tracking issue on the board as to not clutter it up with the small details. 14:23:29 geerlingguy: yeah, I think jlk was taking feedback on what other features would be nice to have. 14:23:30 for very small things you can just open a 'feature' issue in ansible/asnbile 14:23:37 In Drupal community we have similar issue, and solution (hacky but works mostly) is to have tag in title like [PP-2], where it means [Postponed-2 issues blocking] 14:23:47 and the description has a list of blocker 14:24:01 I'd like to see the "argument_spec used for documentation" PR in that v2.8 roadmap 14:24:31 but maybe that slows it down, rather than speed it up ;-) 14:24:52 dag: What's the PR link? nitzmahone, sdoran, and I talked about a plan for moving arg_spec forward... but documentation merged into arg_spec was several releases away in our thoughts. 14:25:04 abadger1999: I have a working PR 14:25:14 https://github.com/ansible/ansible/pull/45805 14:25:22 #info Proposal Process needs some love - Gundalow to do this 14:25:37 dag: The idea is to first implement controller side argument spec, then work on the documentation issue. 14:25:37 #info Ansible 3.0 will be "at some point", no idea what year that will be 14:25:41 abadger1999: it's up for discussion in the documentation WG 14:25:56 dag: Mainly because there is debate over should the arg spec drive the docs, or the docs drive the arg spec? 14:26:02 Oh, this is different 14:26:05 Ah 14:26:16 Argspec vs DOCUMENTATION is for Docs WG which is Thursday 14:26:22 Tangentially related. 14:26:40 idc which direction but keeping x2 accounting is always bad, moving to 'single source of truth' +10k imho 14:27:18 dag, sdoran: Sorry.. I misunderstood what this was about. This could make it.... will need to line up reviews. 14:27:30 14:27:49 +1 14:28:28 #info Question: What is reasonable for deprecation and "breaking" changes 14:28:32 Loops is a good example 14:28:34 you can take with_* from my cold dead hands 14:28:34 oh yes 14:28:37 hah 14:28:43 https://github.com/ansible/proposals/issues/140 14:28:43 geerlingguy: :D 14:28:51 I couldn't find a way to use "loop" and fileglobs 14:29:04 i really like loop for looping. i can never remember how to use it for with_first_found. 14:29:06 how so? i have several examples 14:29:13 loop still confuses the heck out of me as an end user for almost any use case besides really simple "with_items" loops 14:29:18 corvus: with_first_found is not a loop 14:29:23 there is also do we want to bundle all breaking change at once ? 14:29:46 bcoca: exactly, which is why trying to figure out how to with_first_found in a loop is :( 14:30:03 #info `with_firstfound` vs 7 lines of `loop` version is painful. Though pain is pushed to the end user, rather than Ansible Internals 14:30:11 loop: '{{ lookup("first_found", *listvar) }}' 14:30:13 vars: 14:30:15 listvar: 14:30:20 People on BlueJeans is the Audio OK? 14:30:20 - file1 ... 14:30:24 gundalow: yup 14:30:38 (at least for me) 14:30:50 Cool, thanks misc 14:31:24 loop will be better, but IMO it needs more/better docs, probably even an Ansible Blog post giving examples of how to transition 14:31:35 The loop UI definitely needs more work. 14:31:44 ^^ 14:31:48 geerlingguy: we do have a blog post .. just not showing good examples 14:31:58 yeah, atm the UX of loop is rough for Ansible newcomers, cpl orgs I work with it has presented a challege for enough folks 14:31:59 which is why it is going to be a long time before we deprecate anything. 14:32:05 a tool to help migrating tool syntax would be awesome 14:32:05 bcoca: :D 14:32:10 ^ see proposal https://github.com/ansible/proposals/issues/140 <= this was intended vision 14:32:15 geerlingguy: we also have https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#migrating-from-with-x-to-loop 14:32:21 have we thought about creating a file that can give at least a 1 year warning prior to deprication 14:32:32 #info Consider when doing deprecations that we keep the old docs around 14:32:34 A lot of Ansible Users do not read the output from ansible runs unless they fail 14:32:48 so they would not see a warning from the execution 14:32:51 ericsysmin: we have decided to not deprecate something in the same release it's replacement was added 14:32:54 Porting guides are part of that @ericsysmin 14:33:02 but we do have a 4 release deprecation cycle 14:33:03 ericsysmin: current depcrecation cycle is 4 versions .. which is 1+ year 14:33:06 ok 14:33:10 sivel: hmm... I hadn't seen that before, but good to know it's there. Does need with_first_found (bcoca example above) 14:33:18 and that is 4 yrs from the point of the message being applied 14:33:25 but if we dont warn on execution, people dont pay attention and then complain when it goes away 14:33:26 Deprecation with_ is a good way to clean up Galaxy :-P 14:33:28 I just never see that something is being deprecated until I just so happen to look at the docs 14:33:54 ericsysmin: they are always in changelog and docs also 14:33:55 +1 on tool to migrate ansible content loop syntax 14:33:56 geerlingguy: yes, although I suppose that with_first_found should typically not be transitioned to loop. You should supply `lookup('first_found', ...)` directly to the arg that needs that value 14:33:58 yes, definitely warn on exec, just saying a lot of people don't read those 14:34:07 not sure where else to put if you dont look at the existing 3 sources 14:34:33 changelog, docs and runtime 14:34:36 sivel++ looks good, would be good to put that note in that doc then, since it is one of the with_s 14:34:39 ah got it 14:34:45 I'll look at changelog 14:34:45 part of the problems with with_X is that they are powered by lookups, and lookups aren't necessarily meant for looping 14:34:59 not all lookups 14:35:12 and with_items is very confusing to people with the implied |flatten(1) 14:35:42 #info Question: How from a documentation point of view can we get the balance of showing poeple the new way & still documenting the old way 14:36:00 geerlingguy: but I will note that the with_first_found syntax is more simple at this point 14:36:08 ^^^ Would welcome ideas from IRC on that question 14:36:14 migrating tool syntax +1 14:36:25 sivel, geerlingguy: the include syntaxes fail if they don't find anything, so a case where one wants to include files if one exists, but not fail if they don't doesn't work with include+lookup 14:36:26 gundalow: porting guide? 14:37:09 jtanner: yup, I think that's part of it 14:37:19 corvus: default to a 'noop.yml' with meta: noop task 14:37:31 eg: http://git.openstack.org/cgit/openstack-infra/system-config/tree/playbooks/roles/unbound/tasks/main.yaml#n1 14:37:31 ^ as workaround 14:39:13 ideally, loop will become so awesome and prevalent that deprecating it won't be a big deal. :) 14:39:24 Re this loop discussion: https://twitter.com/seldo/status/1046470918573182976?s=20 14:40:13 jlk: Yup, totally 14:40:20 bcoca now speaking :) 14:40:26 gundalow - not sure what we do today w/ deprecated features etc, but I feel the 'new' stuff should be documented at the top of a chapter/article. Then we could move any older docs content to a 'deprecated' section in that same article. So it's still there, but it's obvious the user should move way. Then we could perhaps link to the appropriate porting guide for the 'how to' info on moving from old to new 14:40:46 can you re-share the link for that proposal, bcoca? 14:40:52 https://github.com/ansible/proposals/issues/140 14:41:01 A migration/translation tool would also help ease the transition to loop. 14:41:18 @dag there soon are going to be other means of cleaning up galaxy. ;) 14:41:26 thanks 14:41:29 im with nitzmahone, not fan of automated tool, but also not against it existing, specially with 'dry run' 14:41:35 sdoran: seems the objection to that from nitzmahone is that it would have to be maintained for a long time 14:41:51 tima: perfect ;-) 14:42:00 Yeah... 14:42:11 i don't think it would be _that_ hard to make POC of said tool #famouslastwords 14:42:12 #info Need to "sell" the new way, Inventory Plugins are a good example of new good thing. Docs, blog posts. Real examples 14:42:21 migration tools are also very hard to get right for our purposes 14:42:24 i think a tool could be version specific... from 2.x to 2.x+1 only 14:42:27 inventory plugins are indeed awesome ;) 14:42:31 yeah, docs trailed 'feature' by 1 release 14:42:49 bcoca tima sdoran - so for a lot of lint tools, they have automated fix suggestion built in... maybe a feature for ansible-lint? 14:42:56 (thinking specifically of phpcs) 14:43:08 #info Question: When we say "Ansible 3.0" what do you imagination in there? 14:43:25 gundalow: perfect content to share in that Newsletter ! 14:43:28 when you run it, and it shows a warn/error, it asks at end of run "would you like phpcs to attempt to automatically fix these issues?" 14:43:42 That's interesting. 14:43:44 i wrote a rule for lint flagging the use of with_* but i don't think it will role out right away. 14:43:53 @geerlingguy ^^^ 14:44:25 tima: yeah, lint should definitely wait until it's officially deprecated 14:45:03 Audiance participation time: https://etherpad.openstack.org/p/ansible-summit-october-2018-Core-update line 93. Please add your thoughts on what you see in Ansible 3.0 14:45:04 parallel play execution? 14:45:38 what's etherpad link? 14:45:45 resmo: just thinking about the callback ... not something i would attempt, specially since there are plenty of parallelization products you can use on top of ansible 14:45:50 https://etherpad.openstack.org/p/ansible-summit-october-2018-Core-update 14:45:52 fwiw, there's nothing you can do in asyncio you can't do with threads 14:45:52 samccann I like that idea - let's talk about ways to do better about documenting deprecations; giving users an easy path to upgrade their playbooks, giving users a "pull" rather than a "push" for upgrading, and integrating documentation more closely in the dev cycle will help too 14:45:53 thanks 14:46:04 #chair acozine 14:46:04 Current chairs: Qalthos abadger1999 acozine alikins bcoca gundalow jtanner mattclay maxamillion mordred nitzmahone sdoran shepdelacreme sivel thaumos trishnag 14:46:19 acozine: FYI if you do `#action acozine something` you can leave actions for yourself 14:46:20 @geerlingguy right -- to your point we need to really work on having docs to help user migrate their content and not just aggressively flag deprecated stuff. 14:47:00 I think ansible lint could be the best avenue for that stuff, especially as it (hopefully) becomes extremely standard fare for anyone using ansible 14:47:21 'tech preview' 14:48:13 geerlingguy: we have been slow to deprecate/remove some things, i.e include/with_/sudo/su that we knew were 'big impact' 14:48:34 can barely hear greg 14:48:38 #info Can we use `ansible-lint` as a way to help guide migrations 14:48:38 * geerlingguy appreciates that, since every new deprecation means a few hours scripting the replacement in all my roles :P 14:48:46 bcoca: greg's mic was muted 14:48:55 that would explain it 14:49:02 Greg said: Lots of people use `devel`, we need to treat is as production 14:49:11 it is possible to publish smth like `.dev0` --> requiring `pip install --pre` 14:49:19 we kind of do, devel is mostly usable 14:49:21 let's call it "master" :-P 14:49:33 I don't think people should treat devel as dev branch 14:49:36 maybe a stage? 14:49:42 no, cause i think we should still be able to 'revert features' if they prove problematic 14:49:43 `really-devel` 14:49:46 I treat devel as development; only use it when testing things 14:49:47 lol 14:49:52 yep 14:49:53 maybe master could be 'production'? 14:50:11 i.e stable-2.x? 14:50:14 yea 14:50:15 that microphone works 14:50:16 Since `devel` is really our `master` 14:50:22 ish 14:50:36 I still get so rankled about that 14:50:38 or even a RC cycle 14:50:40 (we don't call it stable, so I suppose it's not _really_ a true "master") 14:50:41 +1 to have ansible-nightly 14:51:02 our devel isn't really the same as what most people consider master. Whereas master is typically considered to be production stable 14:51:05 https://releases.ansible.com/ansible/rpm/nightly/devel/ 14:51:08 master != stable 14:51:34 dev semantics, I suppose 14:51:37 too many people assume that, which is why we specifically use 'devel' 14:51:47 There are many definitions per team. Team semantics vary highly. 14:51:54 jtanner: oh nice! 14:52:17 #action gundalow to include all questions in follow up email to people/blog post 14:52:24 sivel: I don't think that's a universal thing. A lot of projects I interact with treat master as "we've merged it, but it's not in a tagged release yet". So features that pass tests and review get merged, but it may not all work together in production. Releases get made from branches taken from master at various points. 14:52:52 what about just open PRs with 'experimental' tags? it's not hard to checkout PRs 14:52:59 I always treated master as pre-release or staged 14:53:12 * resmo wonders what happened to stable-2.6 in https://releases.ansible.com/ansible/rpm/nightly/ 14:53:13 then devel/dev as likely broken but might work 14:53:22 defionscode: not for most devs, but a lot of users are not comfortable with git checkouts 14:53:50 bcoca++ ^^ 14:54:06 jlk: I suppose a very common branching model is described by https://nvie.com/posts/a-successful-git-branching-model/ 14:54:07 They want a `pip install` or a `docker run` command to run 14:54:15 jlk: "gitflow" for example 14:54:17 yep, git checkout isn't expected my many people 14:54:26 the nightly rpm is one good thing, we could add a 'nightly' pip target 14:54:36 so I know pip allows you to publish newer releases but keep one marked as the default 14:54:39 but does user 'ux' _really_ matter when we're talking 'super duper experimental' stuff? 14:54:48 #info Once something is merged into `devel` it's really hard to "unmerge it" 14:55:00 so it would be possible to publish "devel" builds to pypi without them being teh default version, which would allow people to test things easily via pip install 14:55:06 i mean...it's simpler than add/remove from devel imo 14:55:37 alikins: say again? 14:55:53 * resmo sees devel branch as unstable which can break things 14:56:14 it is supposed to, its not for all production 14:56:14 i personally think devel is "stable as best we can get it" 14:56:21 but it is stable enough for those that like the 'cutting edge' 14:56:25 its not normally broken 14:56:36 seems reasonable 14:56:39 "it passes tests" 14:56:44 it compile 14:56:49 our testing of devel at release time is not really any different from testing of devel at any given time 14:57:03 jtanner: indeed 14:57:10 as in it passes all the automated tests preventing merging. But it doesn't necessarily stand up to the quality of a release. 14:57:36 e.g the docs may not be complete, haven't had RCs done to get outside feedback, things COULD be reverted 14:58:30 hoping that that angle of "quality" is going to be assured by the "needs review" column on the project board 14:58:57 in terms of raw functionality though, i don't really such a delta between devel vs. a release 14:58:59 jtanner: but if devel is always considered "release quality" then why is it necessary to have release candidates and feature freezes and such? 14:59:05 why couldn't you just tag and release at any time? 14:59:05 `experimental` branch? 14:59:18 jlk: i think we could theoretically do continuous release 14:59:26 we just don't 14:59:27 thinking that, ansible-tech_preview_threads 15:00:33 jlk: it asssumes new commits provide tests 15:01:24 Pilou: right, it requires a fundamental design of that branch, which would dictate what is necessary to MERGE to that branch. 15:02:25 I would argue Ansible is getting closer to "must get it right the first time" as it is used more and more to manage critical infrastructure. 15:03:03 sdoran: lest the current status quo remain at various orgs where they stay at $version b/c they dont trust the stability of new releases 15:03:34 about what abadger1999 said, isn't "preview" related to that ? 15:04:30 https://gist.github.com/alikins/373bcce9e283bb37bb5e78ce665e519c is kind of my running list of 3.0-ish ideas/proposals 15:04:41 We don't have good street cred when it comes to Ansible updates not breaking things, despite our best efforts to maintain compatibility and not break things. 15:04:56 sdoran: Very true 15:05:11 alikins: the ssh error stuff can be 2.x imo 15:05:12 preach 15:05:21 Will move onto Contributor Experience shortly 15:05:28 Anyone got any last things for Core? 15:05:49 @sdoran i agree. 15:05:50 There will be another Core session on Thursday afternoon 15:06:28 trigger word 15:07:25 @gundalow Now that we have more projects in Ansible land, we should look at unifying branch name/semantics. Branch names are quite inconsistent across projects today. 15:07:38 sdoran: How so? 15:07:52 thanks to Pilou for pushing some of that stuff forward 15:08:19 Hurd! 15:08:21 Yup :) 15:08:42 related pull requests listed there: https://github.com/ansible/ansible/issues/45839#issuecomment-425942560 15:08:53 @gundalow The default branch varies between projects, e.g., `devel` in Ansible/AWX, and `develop` Ansible Galaxy. I bet with ansible-lint and molecule, we'll have some more different default branch names. 15:09:04 sdoran: oh, good spot 15:09:47 #action Review and update `ansible-lint` & `molecule` branch names. Also check AWX/Galaxy `devel` vs `develop` 15:09:50 https://github.com/dw/mitogen/blob/master/docs/shame.rst 15:10:43 * misc do have a hurd VM and tried to port ansible on it 15:10:52 :-) 15:10:55 @sdoran galaxy uses `devel` 15:11:16 tima: Oops. I meant ansible-container. 15:11:23 #endmeeting