15:00:03 #startmeeting Core Team Meeting 15:00:03 Meeting started Thu Jan 26 15:00:03 2017 UTC. The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:00:03 Useful Commands: #action #agreed #halp #info #idea #link #topic. 15:00:03 The meeting name has been set to 'core_team_meeting' 15:00:14 * jtyr is here ;o) 15:00:29 #chair abadger1999 allanice001 bcoca jimi|ansible jtyr mattclay nitzmahone Qalthos rcarrillocruz 15:00:29 Current chairs: Qalthos abadger1999 allanice001 bcoca gundalow jimi|ansible jtyr mattclay nitzmahone rcarrillocruz 15:00:33 jtyr: Hello 15:00:42 oh, did we have something on the agenda for you 15:00:45 * gundalow looks 15:00:55 yeah, ... the hosts module 15:01:05 nicely PEP8 compliant ... ;o) 15:01:18 bloop 15:01:24 Sounds like a good place to start 15:01:27 morning alikins 15:01:35 #topic Adding etc_hosts module #19283 15:01:40 * nitzmahone lurks 15:01:41 https://github.com/ansible/ansible/pull/19283 15:02:10 nitzmahone: good very early morning to you :) 15:02:14 * allanice001 waves 15:02:44 :) 15:03:55 jtyr: I couldn't see mentioned is why this module v template or lineinfile? 15:04:51 gundalow: it's the same like yum_repository module ... everything could be done by templates or inline ... 15:06:41 yeah ... wish i could remove that module 15:08:04 if you want some arguments, here they are: it unifies formatting, it assures the columns contain the right values (common mistake of users to swap alias and domain) ... 15:08:43 a hosts_file role would ensure same things 15:09:17 yumrepo role would do the same as yum_repository module ... 15:09:22 that's not an argument ... 15:09:36 you can not force users to use primitives all the time ... 15:09:52 this is why modules are out there ... they make user's life easier ... 15:10:22 instead of having 1000 roles doing the same, you have one module doing it for everybody in the same way ... 15:10:29 jtyr: Nor do we want to force everyone to do everything with just a dozzen modules, though we want to ensure that we aren't adding in modules for the sake of it 15:10:50 You've made a very good point there 15:11:24 jtyr: yes it is, i have the same issues with yum_repo 15:11:26 jtyr: I assume it works fine with IPv6 addresses, might be worth just adding an example in for that 15:12:00 in this case IP4 is the same like IP6 ... 15:12:15 people who use IPv6 know that ... no need to add such example ... 15:12:17 it does not verify that they are valid IP? 15:12:39 bcoca: I can add that ... 15:12:59 using some python library which does that ... 15:13:07 do you know about some? 15:13:19 or ... you can use existing ip filters in a role ... 15:13:44 ;o) 15:13:52 jtyr, python validate does have it 15:14:31 Is that it built in module? 15:15:10 gundalow, i doubt it 15:15:18 I'd like to see a etc hosts module that took a list/tuple of entries. I'd lean towards making that a separate module though just to keep the args and state logic sane. 15:15:32 allanice001: I was more thinking about something like this: import ipaddress; ipaddress.ip_address('999.1.1.1') 15:15:42 seems to be standard part of Py 15:16:48 ah ... 2.7+ ... ;o( 15:17:17 For the purpose of keeping this meeting moving I'm going to move onto another topic in 10 minutes 15:17:43 jtyr, here is what i use - https://validators.readthedocs.io/en/latest/ 15:17:58 but, it is a seperate requirement 15:18:10 exactly ... ;o( 15:18:31 it would be nice if it wouldn't build another dependency ... 15:18:56 agree 15:21:16 sorry, i've been on different screens and didn't even realize this was going on 15:21:45 -1 to adding extra dependencies 15:22:13 we had a hosts module in the past, but it caused a lot of issues due to the numerous types of schemas have in the file https://github.com/ansible/ansible/issues/5748 15:22:20 a role can do it w/o the extra deps ... 15:22:31 therefore dehaan removed the module. 15:27:13 jtanner: that module was for setting hostname not manipulating /etc/hosts 15:27:24 and the hostname module still exists 15:27:38 bcoca: let's remove all modules from Ansible and replace them by roles ... ;o) 15:27:59 bcoca: we already had the discussion that roles are not that convenient like modules .... 15:28:12 role != task ... 15:28:14 alikins: true, but that's just an example of how people have different views about the content of /etc/hosts 15:28:19 not all, but many 15:28:33 jtyr: that was before include_role 15:29:47 bcoca: ugly ... 15:30:27 pushes the maintenance burden outside the repo, makes customization easy for non programmers 15:30:36 imo 15:31:12 bcoca: but that doesn't reduce the fragmentation ... IMHO the biggest problem the Ansible community has ... 15:31:35 bcoca: like 1000 roles for nginx configuration in Galaxy ... 15:32:00 and as soon as we merge all modules prposed, we have the same issue but in anisble/ansible 15:32:15 which is why i want to push 'non core modules' to galaxy 15:32:22 but that is diff discussion 15:32:45 we can't keep up with the modules we already have, so i'm never going to default to "more modules == good" 15:33:20 modules that do stuff we dont already cover ... yes i can see the point of accepting those 15:33:23 http://jctanner.mynetgear.com:5000/modulestats 15:33:29 bcoca: I got one nginx role which is possible to use for any purpose (https://github.com/jtyr/ansible-nginx) ... using the config_encoder_config filters ... do you remember? ... the thing you don't want to have in Ansible ... ;o) 15:33:31 modules that have overlap ... im inclined to say no 15:34:06 jtyr: for the same reasons as i dont want modules that overlap, i dont want filters that do same 15:34:14 ^ s/modules/any plugin/ 15:35:08 bcoca: modules in roles in Galaxy ... sounds good ... this is what I'm currently doing with the config_encoder_filters .... https://github.com/jtyr/ansible-config_encoder_filters 15:35:31 bcoca: distributing it as a role dependency ... that works ... 15:35:39 .............................................. 15:35:39 .............................................. 15:35:40 .............................................. 15:35:41 OK 15:35:42 and i'm fine with that, that is what sharing is for 15:35:45 I'm moving us on now 15:35:45 bcoca: I can imagine to do the same for any other module ... 15:35:57 (I gave 10 minutes notice 20 minutes ago_ 15:36:00 ) 15:36:03 i just dont want to be overwhelemd more in ansible/ansible as most expect us to then maintain and deal with the issues of this code 15:36:12 * jtyr shuts his mouth up ;o) 15:36:25 jtyr: and galaxy is not currently best place to share, i agree 15:36:33 jtyr: Lets fall back to the standard process here, which is get two shipits and we can discuss again 15:36:35 ^ better tools are needed to share/install plugins 15:36:38 whats the next topic? 15:36:59 #topic module_utils/basic.py: Support logical or condition in required_if #20220 15:37:04 https://github.com/ansible/ansible/pull/20220 15:37:57 I think this would be really useful. Since mentioning it on #ansible-devel yesterday, someone else said "that would be good for my modules as well" 15:38:32 i like the idea, have not looked at code 15:41:09 code looks fairly simple. I'll document it as part of developing_modules refactoring 15:41:52 It's a change to basic.py, so I'd like someone apart from me to look at it 15:42:56 * gundalow assumes the quietness is people looking at the code :) 15:44:11 ANy offers for review? 15:44:17 please add yourself, thanks 15:44:31 #topic 15:44:31 Edit 15:44:31 Refurbish developing modules content - stage 1 #20673 15:44:41 #topic Refurbish developing modules content - stage 1 #20673 15:44:50 https://github.com/ansible/ansible/pull/20673 15:45:07 This is the initial stage of a refurbishment of the module development documentation that Scott and I have been working on 15:45:48 basically dev_guide/developing_modules.html is now chopped into multiple pieces, so it's easier to update 15:45:59 * abadger1999 waves good morning 15:46:01 I'll be updating module checklist first (separate PR) 15:46:06 hey abadger1999 15:46:32 allanice001: ^ first cut of improving docs 15:46:39 no functional change, just moves the sections around 15:47:02 will look at it 15:47:25 allanice001: Thanks 15:47:32 would a module init script help with some of what that guide attempts to do? 15:47:43 ansible-module-init 15:47:54 makes a libarary dir with a stub module in it 15:48:00 jtyr: You mean something that generates a boiler plate, I like that idea 15:48:01 hey. just read a little and might be worth directing readers to windows module writing section as its rather different from python modules (no zip, separate .py documentation etc) 15:48:38 jhawkesworth: Do you know where that is, I saw an into_windows, though that seemed to be user facingm rather than module developer facing 15:49:24 jhawkesworth: The windows stuff is here at the moment https://github.com/ansible/ansible/pull/20673/files#diff-284ac9a0338a9f568dab8b2269818418R135 15:49:25 gundalow: I'll take a look iirc there's not much more than a windows module checklist 15:50:09 jtanner: I like that idea, lets ponder it a bit more 15:50:25 gundalow: another aspect of boilerplate generator is that we can evolve it into a tui that asks questions and fills in the blanks 15:50:49 we/community 15:50:56 jhawkesworth: I was considering having a separate developing_modules_windows page with the how to & specific checklist, how does that sounds 15:51:02 jtanner: +1 15:51:21 maybe have it create a role dir though instead of library, then we can use it to encourage include_role + galaxy 15:51:41 there will be repeats , i would have 'common' and then specific rules for each 15:51:43 gundalow: sounds like a good idea to have separate windows page 15:51:50 the common are mostly interface/naming/scope related 15:52:46 So my current plan is 15:52:59 Into (which is there) Should this be a module 15:53:04 PAGE: General developing 15:53:13 PAGE: Developing AWS modules 15:53:18 PAGE: Developing Network modules 15:53:23 PAGE: Developing Windows modules 15:53:43 PAGE: Checklist (& coding guidelines) 15:53:51 PAGE: Python 3 15:53:59 PAGE: How to debug a module (not just for module authors) 15:54:16 PAGE: How to add and extends tests 15:55:18 So if you were developing a WIndows module you've read "General" + "Developing Windows modules" + "Checklist" + "How to add and extends tests" 15:55:40 sounds good although windows module debugging probably different from python modules 15:56:02 ... to do no ansibalz and powershell ISE 15:56:13 ah, good point 15:57:13 also recent discussion maybe some adv topic for windows such as sensible way to call external programs (if you must), calling .net code and embedding c# code. 15:57:27 but probably fit all that on windows modules page 15:57:28 * gundalow adds that to his notes 15:58:31 gundalow: created https://github.com/ansible/proposals/issues/49 15:58:32 jhawkesworth: Thanks 15:58:49 jtanner: Ace :) 15:59:03 For a first cut are people happy with https://github.com/ansible/ansible/pull/20673 15:59:29 In particular the new developing_modules.html page https://github.com/dharmabumstead/ansible/blob/fba6bfc2ea21ee47e9090ea900d386c1b35073e0/docs/docsite/rst/dev_guide/developing_modules.rst 16:01:27 gundalow: also some chat about a 'model' module for windows devs demonstrating module param processing here https://github.com/ansible/ansible/issues/20505. 16:01:27 gundalow: will read, have not had time until now, can we reschedule for next meeting before approving? 16:02:18 i'm guessing no meetings next week due to ansible installs paris ? 16:02:22 bcoca: It's the same content, just moved round a little bit, Most is going to get rewritten 16:02:36 allanice001: only myself jimi|ansible and rcarrillocruz will be in Paris from the Core Team 16:02:37 gundalow: developing_modules_general.rst isn't really... general. 16:02:44 It's more tutorial, 16:02:50 abadger1999: it's SHIT 16:02:56 heh :-) 16:02:57 and that's why it's going to be rewritten 16:03:23 All the above PR does it chop stuff into pieces so it's easier to improve 16:04:03 apart from correcting spelling mistakes I don't believe their are many actual changes in the PR, apart from moving stuff around and the intro page 16:04:09 It's not a bad page to me but it's for a different audience. 16:04:42 https://github.com/ansible/proposals/issues/49 would reduce the reliance on that doc, imo. 16:05:32 I'd probably move the content back into the main docs when you rewrite general. 16:05:50 Until we split out a "tutorial" type introp to ansible from more referencey docs. 16:05:59 *intro to 16:06:05 abadger1999: yup, I want to get a much clearer separation between user facing and dev_guide 16:06:38 did we want a different directory for docs for people with commit access 16:06:53 copntributor rather than committer. 16:07:11 I think it will end up being distinct... but I'm not sure if there's consensus. 16:07:44 For instance, the module checklist is for contributors rather than for people writing their own custom modules. 16:08:07 * gundalow views the checklist as been good for everyone 16:08:12 We could split it later after we see what it's like. 16:08:16 (that writes modules) 16:08:20 also, what prevents a galaxy like solution for distributing custom modules 16:08:26 +1 to making it a problem for the future 16:08:40 allanice001: You can currently use galaxy for distributing modules. 16:08:54 We should write a section about that and stick it in the main guide. 16:09:22 having module-init does not mean docs should not exist either 16:09:34 docs need to exist, then module-init can use them as rules to make life easier 16:09:44 (Looked for it the other day and found the individual pieces but had to stitch it together from reading a cou0ple different pieces of the docs) 16:11:57 yeah, module-init should follow the documented standards rather than the other way around. 16:13:13 I hope to get a first cut of new checklist done by the end of next week 16:13:59 Then realistically, the rest will have to wait till post 2.3 16:14:57 Anythine else 16:15:02 Anyone else got anything? 16:16:07 at last got back to pr#19421 16:16:12 and added your feedback 16:16:16 gundalow, ^ 16:17:38 Thanks 16:17:41 #endmeeting