13:00:23 <sgallagh> #startmeeting rolekit (2015-08-25)
13:00:23 <zodbot> Meeting started Tue Aug 25 13:00:23 2015 UTC.  The chair is sgallagh. Information about MeetBot at http://wiki.debian.org/MeetBot.
13:00:23 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
13:00:23 <sgallagh> #meetingname rolekitweekly
13:00:23 <sgallagh> #chair sgallagh twoerner nilsph
13:00:23 <sgallagh> #topic init process
13:00:23 <zodbot> The meeting name has been set to 'rolekitweekly'
13:00:23 <zodbot> Current chairs: nilsph sgallagh twoerner
13:00:40 <sgallagh> Hello, folks. Who do we have today?
13:00:59 <nilsph> hi
13:01:06 <twoerner> hi
13:01:52 <sgallagh> OK, the good news is that we have no new issues to triage this week.
13:02:05 <sgallagh> So I think we can just do a status update on current tasks.
13:02:27 <sgallagh> #topic gdbus porting efforts
13:02:43 <sgallagh> twoerner: Mind providing an update here? I know you were working on this yesterday at least.
13:03:52 <twoerner> ok.. I have a daemon using gdbus and I am experimenting with decorators to generate introspetion data easily
13:04:55 <nilsph> twoerner: is that code public somewhere?
13:05:24 <twoerner> but Gio doe snot provide an API to do this directly - it seems I have to create XML and to import this with Gio.DBusNodeInfo.new_for_xml
13:05:34 <nilsph> I mean, it touched "making gdbus palatable to people coming from dbus-python" and I'd like to see how you (want to) use it
13:05:38 <twoerner> nilsph: no.. this is not public.. only here on my machine so far
13:05:41 <nilsph> ok
13:06:14 <sgallagh> You have to create the XML manually?
13:06:22 <sgallagh> That doesn't sound right to me...
13:06:41 <twoerner> yes.. that is ugly
13:06:45 <nilsph> that sounds like dbus to me :)
13:06:57 <nilsph> but yeah, ultimately this isn't something the developer should have to do
13:07:20 <sgallagh> Right, so if you can do the hard work in a decorator, that will make life much easier on the developers.
13:08:48 <sgallagh> s/developers/consumers/
13:08:48 <nilsph> probs in the metaclass but yeah
13:09:00 <sgallagh> nilsph: Sorry, can't parse that.
13:09:05 <sgallagh> "Probs in the metaclass"
13:09:08 <nilsph> heh
13:09:09 <nilsph> sorry
13:09:29 <nilsph> "probably do the hard work in the metaclass rather than the decorator"
13:09:39 * nilsph ← lazy
13:10:10 <twoerner> sgallagh: yes, the goal is to be able to define properties in a simply way also in roles
13:10:16 <nilsph> but it doesn't really matter where the hard work is done as long as it's not repeated everytime you write something for dbus
13:10:28 <sgallagh> Right
13:11:22 <twoerner> this is possible with using get_property and set_property
13:11:32 <twoerner> so there is only the need to have a nice decorator for it
13:11:46 <twoerner> and also the ability to check values in a simple way..
13:11:53 <nilsph> you mean like analogous to @property?
13:12:03 <twoerner> yes
13:12:15 <sgallagh> twoerner: Would traitlets be of use here?
13:12:58 <nilsph> what is a traitlet?
13:13:41 <twoerner> sgallagh: yes, might be, but I have to have a closer look
13:13:46 <sgallagh> http://traitlets.readthedocs.org/en/latest/
13:14:35 <nilsph> what benefits do traitlets have over mere properties?
13:14:58 <sgallagh> nilsph: The onChange callbacks could be used to trigger DBUS signals fairly easily
13:15:04 <nilsph> I mean, we don't have type checking beyond what dbus does in normal methods
13:15:29 <nilsph> mmh
13:15:49 <nilsph> you mean if there's server-side code that changes such an attribute?
13:16:05 <sgallagh> It's just a thought. I don't know much about them; zbsyszek mentioned them during the hackfest and I've been looking into them
13:16:22 <sgallagh> nilsph: For example, yes.
13:16:36 <sgallagh> Like a redeploy() might change a theoretical backup set.
13:16:59 <nilsph> from a first glance, I don't like the syntax of their "dynamic defaults" :)
13:17:22 <sgallagh> We don't have to use them :)
13:17:26 <twoerner> this might be good, as the server has to emit signals manually
13:17:43 <sgallagh> Though it wouldn't be a terrible thing; since we do have dynamic defaults in the Domain Controller Role
13:17:49 <sgallagh> (Detecting the hostname, etc.)
13:19:07 <nilsph> but the rest of it looks a lot like how e.g. SQLAlchemy handles DB columns
13:20:18 <nilsph> I'd like a syntax of `something = Unicode(default=<callable>)` more than having specially-named methods
13:22:51 <sgallagh> OK, so we don't need to design it in this meeting (though we can come back to it after the meeting is over).
13:23:09 <sgallagh> #info twoerner is making progress on gdbus.
13:23:25 <sgallagh> #info We need to write decorators/metaclasses to handle introspection data
13:23:44 <sgallagh> #info Also investigate traitlets as an option for managing properties on DBUS objects
13:23:54 <sgallagh> nilsph: What have you been working on this week?
13:24:53 <nilsph> nothing spectacular :)
13:25:27 <nilsph> changed (most) URLs over to github (issue #34, review #191)
13:25:48 <sgallagh> nilsph: You haven't published that review
13:25:53 <nilsph> haven't I
13:25:57 <nilsph> mmmh
13:25:59 <sgallagh> It's not visible on RB
13:26:00 <nilsph> disappoint
13:26:13 <nilsph> righto
13:26:17 <nilsph> now it's public
13:26:30 <nilsph> don't know what I was thinking, probably not much
13:26:43 <nilsph> some review interactions
13:26:44 <sgallagh> No worries. Happens to the best of us. Also me.
13:27:03 <nilsph> some python-slip stuff and other work not related to rolekit
13:27:13 <sgallagh> ok
13:28:33 <sgallagh> #topic nilsph update
13:28:54 <sgallagh> #info nilsph sent a few minor cleanup patches to Review Board
13:29:06 <sgallagh> #topic sgallagh update
13:29:21 <sgallagh> #info Updated the kickstart patch with review comments; awaiting review
13:29:42 <nilsph> sgallagh: is that the config parser thing?
13:29:50 <sgallagh> #info Working on nulecule app
13:30:08 <sgallagh> nilsph: The config parser is a prerequisite for the kickstart patch
13:30:14 <nilsph> sgallagh: ahh
13:30:17 <twoerner> sgallagh: btw.. rb179 is not applying cleanly for me
13:30:29 <twoerner> patching file src/rolekit/server/io/rolesettings.py
13:30:29 <twoerner> Hunk #1 FAILED at 27.
13:30:29 <twoerner> Hunk #2 FAILED at 80.
13:30:29 <twoerner> 2 out of 2 hunks FAILED -- saving rejects to file src/rolekit/server/io/rolesettings.py.rej
13:30:36 <sgallagh> twoerner: 178->191->179
13:30:41 <sgallagh> Whoops
13:30:44 <sgallagh> twoerner: 178->193->179
13:30:58 <twoerner> ohh...
13:31:04 <twoerner> reading helps :-=
13:31:06 <twoerner> :-)=
13:31:08 <sgallagh> :)
13:31:50 <nilsph> sgallagh: not sure how to review the config parser thing tbh, it "looks okay" to me but ideally I would test it differently than you did
13:32:31 <sgallagh> nilsph: I'd start by diffing it against the RawConfigParser implementation of those functions
13:32:35 <sgallagh> It really doesn't add much code.
13:32:40 <nilsph> okay
13:32:43 <sgallagh> I can't display that diff in RB though
13:32:55 <nilsph> pity it can't be done as a subclass rather than replacing the code wholesale
13:33:07 <sgallagh> It's not a perfect implementation; systemd supports multi-line statements with a backslash at the EOL
13:33:10 <nilsph> not enough hooks for it I suppose
13:33:43 <sgallagh> nilsph: Well, zbzsyzek wrote another implementation with different hooks, but it has different flaws
13:34:01 <sgallagh> This implementation is fine for our purposes, but isn't good enough to go upstream yet, which is why we're carrying it
13:34:47 <nilsph> okie
13:35:23 <nilsph> sgallagh: good if I ACK this now (after reviewing the diff to RawConfigParser) and we deal with problems as they arise?
13:36:30 <sgallagh> Works for me.
13:36:48 <sgallagh> As I said, the plan is for this to eventually go upstream to python-systemd anyway.
13:36:52 <sgallagh> So we'll be the guinea pigs
13:40:13 <sgallagh> Other than that, I'm working on some nulecule-related stuff, mostly targeted at F24 at this point.
13:40:24 <sgallagh> It's not realistic to shove it into F23 Beta at this point.
13:40:44 <sgallagh> So I'll move the milestone. It was F23 Beta/nice-to-have, so I'll make it F24 Alpha
13:42:31 <sgallagh> nilsph: I submitted a patch to just remove 'make archive' to "solve" #37
13:42:52 <sgallagh> If you want to take over adding a real automatic release process, please do
13:42:59 <nilsph> okay
13:43:01 <sgallagh> (I know you mentioned you had something similar for another project)
13:43:15 <nilsph> yeah
13:43:22 <nilsph> but as for the removal, ship it
13:43:27 <sgallagh> Thanks
13:43:35 <sgallagh> OK, that's all I have for updates
13:43:57 <sgallagh> #info deferring nulecule-related work to deliver in Fedora 24 Alpha. Won't be stable in time for F23 Beta.
13:44:01 <sgallagh> #topic Open Floor
13:44:14 <sgallagh> Anything for open floor?
13:45:09 <sgallagh> Going once
13:46:14 <sgallagh> twoerner: Will you be able to get to #33 by next week?
13:47:04 <twoerner> I want to do it as soon as I am finished with the reviews
13:47:43 <sgallagh> OK, great. Thanks.
13:49:58 <twoerner> sgallagh: shouldn't there be a way to clean up a pendingrole?
13:50:25 <sgallagh> twoerner: What do you mean?
13:51:12 <twoerner> with every deploy --next-boot call there will be a new pendingrole - but here is no way to remove one of them
13:51:50 <twoerner> but then we would also need to be able to list them..
13:52:04 <twoerner> ok.. maybe this is too much
13:52:32 <sgallagh> twoerner: They're auto-removed once they run.
13:53:00 <sgallagh> But yeah, we should probably have a way to remove them if they fail to deploy, though
13:53:54 <sgallagh> OK, let's take this outside the meeting.
13:54:00 <sgallagh> #endmeeting