=== rye` is now known as rye [07:56] morning all [07:56] ralsina: ping [08:27] mandel: pong [08:28] ralsina: got time for a review? [08:28] mandel: sure! [08:28] nessita was having a problem with a slot being called twice? [08:28] on a button click? [08:28] * ralsina is guessing [08:29] ralsina: yes, the issue was with autoconnect, while that works ok in C++ in python is calling the signal without params and with a bool [08:29] mandel: known problem, is in the FAQ and everything. It's even on my tutorial ;-) [08:30] you have to add a decorator to set the signature of the slot [08:30] or check the extra parameter and do nothing if it's None [08:30] ralsina: yes, I told here to ignore the signal with no param [08:30] I did not know there is a decorator [08:30] it's somewhat cleaner with the decorator [08:31] ralsina: yes, it is [08:31] I really should spend some time in ART timezone today [08:33] ralsina: why? [08:34] to help with this kind of thing :-) [08:34] now you know how it is to be the only one working ;) [08:34] ralsina: can you take a look at :https://code.launchpad.net/~mandel/ubuntu-sso-client/fix_signals_emition/+merge/59898 [08:34] sure thing! [08:36] ralsina: we have sd using named pipes :) [08:36] mandel: neat! [08:36] mandel: was it painful? [08:36] ralsina: no, the code now is soooo much nicer [08:36] cool [08:37] there is no crazy COM code around and is a matter of installing the correct reactor, so the choice was good [08:37] I've checked and IOCP is quite nice to use! [08:52] mandel: checked the code in fix_signals_emition and looks ok, does it need fieldtesting? [08:53] ralsina: did I add any test instructions? [08:53] just to run the tests [08:53] You do the if in line 201, kwargs can be {}, right? [08:54] if that's the case, you can still do callback (*fixedargs, **kwargs) [09:05] mandel: ^ (no hurry!) [09:07] ralsina: one sec, I need to fix something with a sd branch that broke and I'll look into it [09:07] cool [09:39] ralsina: ok, so I've got sd running with naed pipes on windows performing all my syncs :) [09:39] niiiiiiiice [09:39] ralsina: including shares, although I have no udfs in my account [09:40] you should create one just in case [09:40] next step is to move everything to json, which aint easy [09:40] ralsina: yes, will do, lets first see if it syncs and get changes from windows and pushes them to the web :) [09:40] mandel: are you using mattia for that, right? [09:41] we have him until next friday ;-) [09:41] ralsina: I can do that, he did the basic protocol stuff, but I'll add it to the projects, he is workin in a C++ implementation so that we can use it in the shell extensions :) [09:41] ok, great [09:42] just don't want him to be unused [09:42] now, got 2' for my review? [09:42] or if you prefer to just get needsfixing and comments, I am happy to do it that way ;-) [09:43] ralsina: yes, what was it, something about {}, right? [09:43] right, line 201 and 202 [09:43] in https://code.launchpad.net/~mandel/ubuntu-sso-client/fix_signals_emition/+merge/59898 [09:43] if kwargs can be something like None, yes that's necessary, but if it is only {} then the if is useless [09:44] ralsina: it could be none [09:44] ok then +1 [09:44] I hate than launchpad doesn't give you a nice way to jump to the source code in context [09:44] ralsina: it was the only reason I added it :) [09:44] haha file a bug ;) [09:45] ralsina: you know canonical, either there is a bug or there is a wiki page [09:45] my bug would be "make it work like googlecode's commit view" ;-) [09:45] I couldn't test it on natty because my VM is broken, and I am reinstalling [09:46] so unless you did it... [11:35] still cant find a bug that I can do :/ [12:20] fagan: this is really not the simplest codebase for small bugs :-( [12:21] fagan: most of the code is pretty hairy [12:22] fagan: is it a holiday in the UK or anything? It's pretty quiet today [12:31] ralsina: well I dont think it is [12:32] fagan: ok [12:32] yeah im seeing that the code is a bit hairy from looking through the bugs [12:32] its a little bit hard to find a task then [12:32] not really a lot of low hanging fruit [12:48] rye: ping [12:49] duanedesign, pong [12:50] good day rye [12:51] fagan: I will ask at standup, maybe one of the developers has something in mind [12:51] rye: i cant find the u1conflict renaming script from the other week [12:52] duanedesign, hmmm [12:53] ralsina: cool [12:54] rye: aha foound it === zyga is now known as zyga-afk [13:05] hola #ubuntuone! [13:05] hola alecu [13:06] * fagan was trying to think of the word dude but was too lazy to open google translate [13:12] hola alecu [13:14] hola fagan, duanedesign! [13:15] ralsina: meeting? [13:17] annd.... I'm back. Meeting [13:18] sorry but had a kid emergency [13:19] this place's connection is way too crappy for mumble :-( [13:19] grmbl, I will try again [13:27] I keep getting dropped off mumble [13:29] sorry guys but I will be back in my usual place for the next call, and then it will work. [13:30] mate time! [13:30] * fagan break [13:32] * ralsina tries to figure out how o order a non-turkish coffee [13:32] It's not worth fighting this connection, will be back when I have decent internet :-( === karni_ is now known as karni [13:54] dobey: when switching u1cp from pylint to u1lint, (how) can I pass it '--ignore ui'? [13:55] just adding that as an argument to u1lint does not work [13:57] in general I think it would be good if it just passed all arguments it does not handle itself to pylint [13:58] alecu: I need to have a common place for GUI strings... I'm planning on having a gui module with the gtk and qt inside [13:58] nessita, +1 [13:58] btw: riverbankcomputing's webservers seem to be hosted in turkey :P [13:59] me [13:59] still 30 seconds to go! :-) [13:59] booo [13:59] mandel: weren't you having lunch with @parents? [13:59] reactor.callLater(.30, me) [14:00] thisfred: it can't [14:00] nessita: yes, but I can do the standup, they are looking at me with a funny face because I have the laptop on the table but is ok [14:00] :) [14:00] me [14:00] me [14:00] me === m_conley_away is now known as m_conley [14:00] ralsina, alecu, dobey, fagan? [14:01] me [14:01] thisfred: and we can't just pass arguments on, because we support using pyflakes as well there; which doesn't take the same arguments as pylint [14:01] me [14:01] only 2 to go! ralsina, fagan? [14:02] dobey: ok, then we need the ignore method, because we can't be checking the generated code since there is no way to fix it [14:02] ok, let's [14:02] DONE: QT windows control panel port, reviews, emails [14:02] TODO: more of the same [14:02] BLOCKED: a little by QT, but it will get better. [14:02] NEXT: mandel [14:02] ignore argument I mean [14:02] DONE: Moved SSO to use txnamedpipe. Started the process to migrate SSO to json. Made SD to work with txnamedpipes. Syc is working ok. [14:02] TODO: Fix ubuntuone-dev merge proposal from dobeys remark. Propose merges for SD and SSO. Continue work for json [14:02] BLOCKED: No [14:02] thisfred, go [14:02] * TODO https://bugs.launchpad.net/bugs/781119 [14:02] * TODO https://bugs.launchpad.net/bugs/781538 [14:02] * INPROGRESS https://bugs.launchpad.net/ubuntuone-control-panel/+bug/781875 [14:02] * INPROGRESS make u1cp use u1lint instead of pylint [14:02] NEXT: alecu [14:02] Launchpad bug 781119 in ubuntuone-couch (Ubuntu) (and 1 other project) "Crashes if not logged into Ubuntu One (affects: 1) (heat: 6)" [Medium,Confirmed] [14:02] Launchpad bug 781538 in ubuntuone-couch (Ubuntu) (and 1 other project) "OAuth support doesn't handle query parameters (affects: 1) (heat: 300)" [Undecided,New] [14:02] Launchpad bug 781875 in ubuntuone-control-panel "ERROR - ReplicationSettingsChangeError: args ( DONE: a branch to put sensible names to the Qt widgets. Started digging into using qt-network as a replacement for libsoup [14:03] TODO: qt-network for today, thankyouverymuch. Meet andrew and lissete in tonight's dinner at the web&mobile sprint [14:03] BLOCKED: riverbankcomputing hosts its webserver in turkey [14:03] NOTE: tomorrow is a nat holiday [14:03] NEXT: dobey [14:03] λ DONE: Some more nightlies work, reviews [14:03] λ TODO: Patch logilab-common on O, Still some more nightlies work [14:03] λ BLCK: logilab-common test suite failing [14:03] me whoops [14:03] fagan: go! [14:03] sec writing it up 2 secs [14:04] as alecu said, tomorrow is National Holiday in ARG. I'll be swapping for next Monday though, but ralsina and alecu are not coming tomorrow [14:04] mandel: tomorrow is only you and me! [14:04] (for windows port) [14:04] DONE [14:04] * Booked flights [14:04] * updated the wiki with travel info [14:04] * Looked for a bug to do [14:04] TODO [14:04] * Find a bug to do [14:05] Blocked [14:05] nessita: cool :) [14:05] * nope [14:05] oh and if anyone has any bug that I can do send it my way [14:05] thisfred, re:" * INPROGRESS make u1cp use u1lint instead of pylint", why are we doing this? [14:06] is tomorrow a turkish holiday too? [14:06] alecu: we might not, if we can't change u1lint [14:06] dobey: nopes, but ralsina is still an argentinian resident [14:06] and can we start using the bytesize tag please [14:06] alecu: the reason for doing it is consistency across projects [14:06] fagan: what's the bytesize tag for? [14:06] what the heck is "bytesize tag"? [14:06] fagan: and bug in which area/project are you looking for? [14:07] fagan: remember we're not in your head, so you need to be a little more explicit here :-) [14:07] the dx team uses it for tasks that arent going to be done by a member of the team and can be done pretty fast [14:07] thisfred, right. But can't we delay it a few weeks? nessita and I are already changing a lot on u1cp, and changing that may make life harder for us right now. [14:07] its mainly done for unity at the moment [14:07] oh, no [14:07] alecu: Sure [14:08] let's not bother with adding tags to bugs that we're not going to use ourselves [14:08] fagan: and when would we use such tag? I mean, can you please give an example? [14:08] nessita: give me a sec ill get the link [14:08] nessita: unity uses it as a means to increase outside contributions [14:08] fagan: don't make me read doc! my time is little and precious! :-P [14:08] dobey: ah\ [14:08] nessita: ie, "these are the easy bugs that anyone can do" [14:09] not sure if we want to go that road then [14:09] fagan: did you discuss this with ralsina? [14:09] yeah i don't think it makes sense for us [14:09] nessita: he said he would mention it here [14:09] ah, I don't think we have those :-D ("easy bugs") [14:09] but he is off because of the interwebs [14:10] ralsina: btw, you need to do 1:1 with everyone on the team this week :) [14:10] nessita: well we *could* have some small things maybe even features that arent a priority [14:10] nessita: https://bugs.launchpad.net/ubuntu/+bugs?field.tag=bitesize [14:11] damn lp did that weird its doing it for all ubuntu projects [14:11] fagan: I see. Thanks for sharing that. From my POV, I think we should spread this in a more uniform manner, meaning that if we decide to do it, it should be shared across the whole team. [14:12] fagan: no it's not. it's doing it for ubuntu. ubuntu is a distribution [14:12] nessita: well I was just thinking it would have been handy for me since I was looking for tasks to startb out on [14:12] dobey: yeah thats what I mean [14:13] distributions don't have projects, but they do have packages; if you want just project bugs then use the project bugs page instead === urbanape_ is now known as urbanape [14:13] nessita: well, there really is no way it can be shared across the whole team [14:13] nessita: only us and mobile can use it really, but i don't think we should [14:13] dobey: and foundations for the client and protocol [14:14] nessita: well, maybe; protocol is used on server too, and normal users can't test whether it will break that or not [14:14] better link https://bugs.launchpad.net/ubuntu/+source/unity/+bugs?field.tag=bitesize [14:14] desktopcouch is sort of similar there, but not as bad [14:15] fagan: https://bugs.launchpad.net/unity/ [14:15] dobey: well, you could run a desktop client pointing to that protocol and confirm, but I see your point [14:15] nessita: right, but that doesn't tell you if the server code breaks :) [14:15] dobey: they dont have the tag in use for those bugs [14:15] anyway, i think it's also a waste of time [14:15] dobey: its against the distro package [14:15] anything that any of us coudl classify as "bitesize" we should be fixing immediately anyway, most likely [14:16] because it will take just as much time to fix it, as it will to add the tag to the bug [14:16] Well I suppose unity has more little bugs that could be left alone [14:16] if it will take longer, it's not bite size :) [14:16] u1 doesnt have many of those [14:16] maybe we should have a fagan tag where bugs that I can do get marked :D [14:17] well, it's a dumb thing to say something is "bite size" because it means you have to take the time to determine that first [14:17] dobey: large parts of desktopcouch don't deal with any client server concerns at all, but other than that, yeah, this may become valuable *when* we have a community that can mark files as such, but I doubt us doing it will grow that community [14:18] thisfred: well, right, which is why i said "desktopcouch also, but it's not as bad" [14:18] thisfred: well most backend stuff dont get many casual contributors in general [14:18] thisfred: however, i don't think wasting time tagging bugs in that manner is useful [14:18] agreed [14:18] fagan: because it's not possible to contribute ;) [14:18] alecu: does this ring any bell? http://pastebin.ubuntu.com/612270/ [14:19] anyway then keep an eye out for smaller bugs for me then and ping me when you see one [14:19] every "small" bug i end up deciding to work on, turns into a snowballing nightmare [14:19] I can sort it out and spread the loads out a bit and learn a bit too [14:21] oh I didnt know the distro package tracks the project bugs now [14:21] thats nice [14:22] huh? [14:22] it doesn't [14:22] one-on-one with everyone on thursday [14:23] dobey: if you look at the unity page under the distro package it says that it tracks the unity project too [14:23] dobey: look just under the top of here https://bugs.launchpad.net/ubuntu/+source/unity/+bugs?field.tag=bitesize [14:23] no? [14:24] oooh misread it [14:24] * fagan really needs to take more breaks [14:25] dobey: pretty much every small bug in u1 so far was a huge bug that's well hidden ;-( [14:25] ralsina: say me! [14:25] me [14:25] ralsina: go [14:25] DONE: teh leads call, reviews, administrivia [14:26] TODO: mgmt call in 5 minutes, more administrivia, schedule 1-on-1s, [14:26] BLOCKED: nope [14:26] ralsina: any idea why accessing Dbus from qt+reactor is raising exceptions.MemoryError? [14:27] nessita: nope [14:27] alecu: ping [14:27] nessita: usually that means you are getting a conflict between two different garbage collectors [14:27] ralsina: can you confirm that from http://pastebin.ubuntu.com/612270/ ? I mean, does that trace give you more info? [14:28] for example, if the Qt object is being deleted by the parent/child relationship while you have a python reference, but that usually gives a more meaningful error. let me see the trace... [14:28] nessita: probably not that [14:28] either I get MemoryError or Segmentation fault [14:29] ah, the joys of integrating reactor, main loops, dbus, etc... [14:29] dobey: "the joys" [14:30] the message in line 4 means you are doing something wrong already, but may not be related to the problem that causes the crash [14:30] dobey: does this ring a bell for you? /usr/lib/pymodules/python2.7/gtk-2.0/gtk/__init__.py:127: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK [14:30] is appearing when importing syncdaemon stuff into the control panel [14:30] not to mention that line 1 means you are still importing gtk ;-) [14:30] ralsina: I'm not [14:30] nessita: yes you are [14:31] ralsina: ... [14:31] /usr/lib/pymodules/python2.7/gtk-2.0/gtk/__init__.py:127 means you are [14:31] ralsina: define "you" [14:31] ok, the code is importing gtk somewhere. [14:31] nessita: no, but i've seen it before; in the build logs for nightlies iirc [14:32] i have no idea what PyOS_InputHook is, either === hito_jp0 is now known as hito_jp [14:35] nessita, pong [14:35] alecu: does this ring any bell? http://pastebin.ubuntu.com/612270/ [14:36] nessita, not at all [14:36] alecu: ok, seems like qt4reactor + dbus + qt mainloops does not get along [14:39] nessita: where is that QThread warning coming from? perhaps that's the problem [14:40] sigh, logilab [14:40] * dobey wonders how this thing even made it into the debian archive [14:42] dobey: I have no idea, I'm not creating nor using any QTHread [14:42] not QThread [14:43] ralsina: any clues where that QThread comes from? [14:43] that warning may mean you are setting up a timer on a thread that was started from python [14:43] or that you are doing it before initializing the QApplication [14:43] but I would worry first about getting a gtk warning... [14:44] ralsina: I'm not, I can confirm that. And I'm not using any explicit timer not thread... [14:44] nessita, what about the first line? "/usr/lib/pymodules/python2.7/gtk-2.0/gtk/__init__.py:127: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK" [14:45] alecu: I have no idea about that. I'm reviewing all the files and I don't find any gtk import of our own [14:46] i don't think the gtk warning is the problem [14:46] * nessita neither [14:47] alecu, ralsina: the gtk warning appears when this code is executed: from ubuntuone.platform.linux.tools import SyncDaemonTool [14:50] nessita: that's importing from dbus_interface too, so maybe the same problem you mentioned yesterday [14:50] dobey: about the reactor? [14:50] hum... [14:51] nessita: right, though not sure where gtk would come from; nothing in syncdaemon should be using gtk anywhere [14:51] right [14:52] nessita: make a local gtk/__init__.py that just does "raise Exception('GTFO')" or something, so you will get a stack trace when it gets imported [14:52] nessita: then you can see what's importing it at least [14:52] ralsina, alecu, dobey: bug #526676 [14:52] Launchpad bug 526676 in pygtk (Ubuntu) "[Lucid] PyOS_InputHook is not available for interactive use of PyGTK set_interactive(1) (affects: 11) (heat: 51)" [Undecided,New] https://launchpad.net/bugs/526676 [14:52] seems like pyinotify is doing something nasty? [14:53] oh, pynotify [14:53] nessita, what are we using SyncDaemonTool for? [14:53] alecu: most of sd_client stuff [14:53] yes, it's pynotify [14:53] alecu: anyways, the warning appears the same when importing anything related to syncdaemon [14:53] well that makes no sense [14:53] ralsina, alecu: anyways, I'm pretty sure that warning is not related to the sg faults [14:53] seg* [14:54] nessita, ok, but the dependencies of syncdaemontool seem to be too convoluted, so we probably should get rid of that. [14:54] nessita: ok, could be [14:54] why would a C module import pygtk? [14:55] and i'm pretty sure nessita's error is due to the threading/timeout issue [14:58] ralsina, alecu, dobey: the warning has nothing to do, confirmed. I'm raising an exception inside /usr/lib/pymodules/python2.7/gtk-2.0/gtk/__init__.py and I'm getting seg fault before that exception is being raised, so is a timing thing [14:58] nessita: ok [14:58] nessita: I am in the mgmt call, I can try to debug it in about 20 minutes, I think [14:58] ralsina: ok [14:59] I'll move on commneting out that code [15:01] nessita: http://www.qtcentre.org/threads/12135-PyQt-QTimer-problem-FIXED [15:01] it's pretty much a generic message that can be triggered by a bunch of internal qt things [15:01] like, loading an image [15:02] ralsina: so you say that it has nothing to do wth the sg fault, right? [15:02] nessita: probably nothing to do, yes [15:03] in fact, I have seen it in the past on programs that worked just fine [15:09] * dobey hopes pylint doesn't still go nuts now [15:10] nessita: done with the call, what branch are you trying? [15:10] YAY [15:10] ralsina: browsing link [15:10] ralsina: https://code.launchpad.net/~nataliabidart/ubuntuone-control-panel/bind-some-more [15:11] nessita: ok, branching [15:11] ralsina: branch and run DEBUG=True PYTHONPATH=. ./bin/ubuntuone-control-panel-qt [15:11] nessita: so you get the crash every time, right? [15:11] then, uncomment qt/controlpanel.py the line that reads [15:11] self.backend.file_sync_status() [15:11] and re-run, and boom [15:12] ralsina: yes, every time for me [15:12] ok, let's try... [15:14] reproduced. [15:14] now, give me a few moments to try and debug it [15:14] ralsina: withy memoryerror or seg fault? [15:14] segfault [15:17] and it doesn't seem to be happening in a deferred, which may make it slightly easier [15:17] * mandel => errants [15:18] nessita: you didn't have this before you started this branch, right? [15:19] ralsina: nopes, and even if you comment the line "self.backend.file_sync_status()" there is no crasg [15:19] carsh [15:19] crash! [15:19] :-) [15:19] cash! ;-) === rodrigo__ is now known as rodrigo_ [15:19] ok cool, let me dig a bit more then [15:19] ralsina: I bet is related to accessing dbus from qt+reactor [15:19] errants [15:20] probabbly [15:20] which sucks! :-) [15:20] is very hard to debug [15:20] yes, it is [15:22] hey, got the memoryerror now [15:22] ralsina: right, is a timing issue [15:22] race condition maybe [15:24] when there is a segfault, there is no QTimer error [15:25] ralsina: but only becasue (I think) the seg fault happened before the stdout buffer was flushed [15:26] I am now seing the control panel :-D [15:27] that was an interesting fluke [15:27] I got the memory error *and* the control panel became visible. Once. [15:28] so it really smells like a race condition [15:44] it is because of calling dbus :-( [15:45] ralsina: yes! any way of fixing it? [15:45] nessita: working on it [15:45] ralsina: awesome [15:46] it *may* get fixed if we keep a reference to something, but not 100% sure [15:48] ok, something *is* starting threads, and the segfault is on a QTimer [15:49] nessita: http://pastebin.ubuntu.com/612302/ [15:50] me looks [15:51] ralsina: I'm not very skilled on this front, but looks like dbus and qt interaction is a no? [15:51] dbus and qt interaction is ok, but here we seem to be having a problem in that the qt mainloop is started in the wrong thread [15:51] which I have no idea how could happen. Specially since I have no idea who is starting a thread [15:52] is the qt reactor starting threads? [15:52] alecu: no idea [15:52] * ralsina looks [15:52] ralsina, no, it doesn't [15:52] just checked. [15:53] here's the interesting part of the C backtrace: http://pastebin.ubuntu.com/612304/ [15:53] ralsina, have you commented the import of sdtool in your branch? [15:54] alecu: didn't know I should :-) [15:54] ralsina, no, I'm trying to guess if some other part is starting the threads. [15:55] ok, I will dig some more [15:57] grr, broken deps [15:59] why are python deps not automatically determined at build time, wtf is ${python:Depends} for [16:00] I have no idea where the threads are coming from [16:01] and the segfault is caused by using a QTimer in the "wrong" thread [16:01] ralsina, alecu, mandel: are we having our meeting? [16:02] sure, let's [16:02] buuuut mandel: ping? [16:02] let's [16:02] I just loose tons of changes to a file due to lack of disk space! [16:02] CRAP [16:02] mandel's last words "errants" [16:03] ralsina: his errant use of english :) [16:03] he may be an errant knight [16:04] here, have 100 pesos. Go buy a terabyte! [16:04] alecu: I know... [16:04] alecu: you said that with old-unix-guy voice, too! [16:04] :-) [16:05] * ralsina really, really, really hates threads [16:05] don't blame threads for python [16:05] and now.... mumble won't connect. [16:05] dobey: you just took the words right out of my mouth [16:06] nope [16:06] * alecu will be right back [16:09] dobey: I hated threads before I started using python ;-) [16:10] ralsina: well threads in C are kinda weird I have to admit, java was so much easier to figure out [16:10] you are one of those "async code with a single thread" people, aren't you [16:10] No, I am the rare "don't share state" people [16:11] you know. real unix people. Those who are not afraid of processes. [16:11] ralsina: can you sms mandel? [16:11] nessita: maybe [16:11] let me skype/sms him [16:11] :-) [16:11] oh, you're a fundamentalist [16:12] I can sms him for like 10c if someone pms me his number [16:12] dobey: history will prove us right ;-) [16:12] sms and twittered him [16:12] ralsina: shouldn't you be at church? :) [16:13] threads are basically the wrong solution for almost anything beyond trivial. And once you start using them right, you may as well be using real parallelism with message passing. [16:14] * alecu believes "threading" to be a great tool for some purposes. [16:15] just not UI nor network code. [16:15] nessita: silly question, but where is the qt main loop being started? [16:16] ralsina: controlpanel.py:main [16:16] ralsina: you mean the QApplication, right? [16:17] ralsina, the qt main loop is being handled by the qt reactor. [16:17] alecu: oooook [16:18] ralsina, so "reactor.run()" would be the time it's started. [16:18] alecu: cool, thx [16:18] ah [16:19] anyone has a link to the page of *this* qt4reactor? [16:20] url is in u1trial [16:20] if you don't have it and use --qt-reactor=ui as an argument to it, it should complain with the url [16:20] neverming, got it [16:21] ralsina, https://github.com/ghtdak/qtreactor [16:22] nessita: are we getting added to that all in one system settings thing in 11.10 [16:22] (the cp I mean) [16:23] * fagan was just playing about with it and wondered [16:23] fagan: at first, no, but is not confirmed. [16:23] nessita: cool just wondered [16:25] i don't think we belong there [16:26] dobey: well im on the fence I can see why we should be in there but I dont think it would be as good as it would by itself [16:26] ha, this segfault hits on so many different things it's almost pretty [16:26] ralsina: what are we doing with the meeting? I would need to have lunch at 1pm ART, if possible [16:27] nessita: I got no response from mandel [16:27] I say we delay again until after your lunch, but then it will be 8PM here [16:27] so, we can do that if it's not going t be very long [16:28] argh :-/ [16:28] ralsina: what's the main goal of the meeting? do you need a specific date to pass along to the bosses? [16:28] nessita: that is for friday [16:29] this meeting is because you were worried about task assignments [16:29] ralsina: are we having a meeting on Friday? [16:29] yes we are [16:29] Hi when ever i try to go to https://one.ubuntu.com/contacts/ i get a 504 gatway time out error :( [16:29] I got the magical "it works" race condition [16:29] ralsina: I'm still am, given that alecu and me are going one way, and maybe we need to change to another way (referrring to reactor/tcnamedpipes/etc) [16:29] nessita, yes, I remember you were the one that asked for this meeting today!!! [16:30] My iPhone also gives an error when i try to sync and my Android gives up after uploading 27 [16:30] alecu: kinda, ralsina said "let s have a meeting on X day" and I suggested to move it sooner to know how we should be moving forward [16:31] the two meetings are for different things [16:31] AJenbo, we're shutting down contact syncing in a week [16:31] After a few attempts it has not removed all my existing contacts from my android but not downloaded any from the web [16:31] beuno for good? [16:31] ralsina: true, but in order to answer "when" we need to know "how" :-) [16:31] nessita: that's why this meeting is first ;-) [16:32] exactly! :-) [16:32] ok, see you guys at 8PM turkey time [16:32] AJenbo, for a few months. We're going to completely replace the server and clients for something more... stable. And, free. [16:32] ralsina: that is how long from now? [16:32] 88 minutes [16:32] so, after your lunch [16:32] hopefully manuel will be around [16:32] Beuno, ok, better clients sounds like a big plus :) [16:32] it's already 17.32 madrid time [16:33] Still i would love to have some phone numbers to call in the mean time, any idears? [16:33] AJenbo, we will only have clients for iOS and Android, though. Which sounds like what you have. [16:33] Yep, the most important is the Android [16:34] beuno: so no more desktop sync? [16:34] nessita: basically, this segfault is happening in a combination of elements that we don't really need right now (dbus+qt) [16:34] AJenbo, yes, desktop sync stays teh same. [16:34] AJenbo, no good answer for now, though :( [16:34] ralsina: we do need, to be able to develop on linux... [16:35] nessita: yesssss but it's not what we need to deliver [16:35] K, i might be able to get some of them from my desktop and type them in manually [16:35] it's ok, I will try to debug it [16:35] ralsina: right, but... [16:35] probably can sync some from facebook also [16:35] but I know I know. [16:35] AJenbo, Facebook doesn't provide phone or email addresses [16:35] ralsina: I can try other options, such as: faking the syncdaemon info and avoiding caling dbus altogether [16:35] calling* [16:36] that will work [16:36] nessita: could use the current mocks from tests? [16:36] Really? I did call some one via the phone number on facebook, though it's posible that i was doing it via the website [16:36] ralsina: mocks in tests are DBus services, so I guess no. I think the best route is to fake the results on our modules [16:36] nessita: ok [16:36] I'm not talking Ubuntu one <-> facebook, but android <- facebook [16:36] why are we using twisted here for, again? Just to get deferreds on dbus calls? [16:37] * ralsina is dizzy already ;-) [16:37] ralsina: on the QT controlpanel? [16:37] nessita: yes [16:37] Any way it can be done manually in any case [16:37] ralsina: nopes, it was for communicatin with SD, that is going to be replaced by the txnamedpipes, that I think they use twisted as well? can; t tell for sure, that tech is still a ghost for me [16:38] speaking of which, I think there are ghosts in my new place [16:38] beuno: any way i can keep a tab on the progress? [16:38] but that is not related :-D [16:38] nessita: yes, unrelated ;-) [16:38] AJenbo, contact sync for Android should be shipped in July or so [16:38] ralsina: I'm not sure if, when migrating to txnamedpipes, we will keep using the reactor or not [16:38] AJenbo, I'll blog about it as we go [16:38] alecu: can you help me on that answer? ^ [16:38] ok, on windows SD gives us txnamedpipes as IPC, so twisted. But on Linux it gives us dbus, right? [16:39] beuno: thanks i will keep an eye out [16:39] ralsina, that's right. [16:39] ralsina: mterry did a nice u1 post on planet [16:40] about the api stuff [16:40] nessita, the "tx" in txnamedpipes means "twisted" [16:40] nessita, so, the twisted reactor is mandatory. [16:41] ok. we will use twisted because we need it on windows. On Linux we could get along without it :-( [16:41] alecu: thanks! I always bind tx with transfers [16:41] nessita, yeah. talk about acronym overload. [16:42] ralsina: the thing is, if we're pushing the QT iface to linux, we need to resolve this... [16:42] nessita: indeed [16:42] not right now, but in the short term [16:43] it is surely solvable, because 1 in every 20 attempts it works already ;-) [16:43] I will keep hacking at it, surely something will come up [16:43] awesome [16:43] ralsina, I propose you don't waste time making this run on linux, since that is not our focus. [16:44] a stupid *twisted* question. What is it the inlinecallbacks decorator does? [16:44] we won't be using qt+dbus for the next 4 weeks [16:44] ralsina, not so stupid. [16:44] alecu: right, but if nessita is going to help from linux, it would be nice to have it soon. Since her days are more productive than mine, I prefer to waste one of mine ;-) [16:45] anyways, like I mentioned I can fake the results [16:45] ralsina, ok, but it would be simpler if we just use mock data on linux, and then we make it run on windows with the proper reactor and transport there. [16:45] nessita, exactly. [16:46] ralsina, back to inlinecallbacks [16:46] ralsina, it turns a generator into a series of callbacks [16:46] ok, then let's do that. I will give myself a deadline of today. If I can't fix it, it stays broken for a while [16:46] ralsina, let me fetch an example. [16:46] alecu: explain me with file_sync_status if possible ;-) [16:47] ralsina, please point me at that file [16:47] ubuntuone/controlpanel/backend.py +393 [16:47] oh, backend.py [16:49] I think I understood from the docs. Basically every yield gives a deferred, and when the deferred is finished the execution continues? [16:50] ralsina: yes. If you don't yield on it, it continues "in the background" [16:51] ok [16:51] now that makes sense [16:51] ralsina: that usually is done when you don't need to wait for the result, like in the file_sync_status case [16:51] ralsina: where the status is signaled in a callback [16:52] lunch time, bbiab [16:52] ralsina, "every yield gives a deferred" is wrong. [16:53] nessita: ok [16:53] ralsina, "every yield *takes* a deferred, and returns the result when the deferred is called back" [16:53] ralsina, here's the same code with callbacks: http://pastebin.ubuntu.com/612329/ [16:53] ralsina, (not tested, just translated from memory) [16:55] alecu: ok, it's pretty clear :-) === beuno is now known as beuno-lunch [17:02] the segfault is inside qtreactor. How about that for ugly? [17:03] * nessita runs scared [17:04] ok, here's my current guess [17:05] ok, no, no guess yet [17:05] oh [17:05] The QTimer is in qtreactor. BUT that is being called by the dbus loop [17:06] ralsina: I would hope that all of them run in the same main loop, but seems like not [17:06] nessita: yeah, this is not smelling right. We may be using one thing or the other in the wrong way [17:07] or like dobey will surely say, we have one thing too many in the mix [17:13] time to go hardcore. Installing valgrind [17:14] ok, I'll have some lunch now [17:20] This doesn't look fixable :-( === zyga-afk is now known as zyga [17:26] Of COURSE the segfault is in the C side of python-dbus... [17:29] ralsina: ping [17:29] mandel: pong [17:29] sorry I had to sort my life, I have finally done so [17:29] ralsina: you were saying? [17:29] I mean on twitter [17:30] mandel: cool. done it with regional eastern european dance algorithms? ;-) [17:30] ralsina: yes, you could say so ;) [17:30] mandel: I know it's late, but can you stay for a short mumble in 30 minutes? [17:30] about task assignments and sucj [17:30] ralsina: I was going to stay for longe [17:30] ralsina: I took some time of, so of course [17:30] mandel: we had a meeting at 12 ART [17:30] nessita: did we? [17:31] yes! :-) [17:31] oh, shit the one we had at 9 that was moved.... [17:31] yeap [17:31] sorry sorry [17:31] ha! it's a bug in Qt's dbus integration! [17:32] #0 0x00007ffff55201ff in QObject::startTimer(int) () from /usr/lib/libQtCore.so.4 [17:32] #1 0x00007ffff584672c in add_timeout (timeout=0x116c840, data=0x13428c0) at /build/buildd/python-qt4-4.8.3/dbus/dbus.cpp:146 [17:32] ralsina: where is that? [17:32] that data pointer is invalid [17:32] ralsina: qtreactor, txnamedpipes or other? [17:32] mandel: a branch from nessita trying to use twisted+dbus+qt on linux [17:33] ralsina: oh my! [17:33] which I am tempted to say we should NOT try to do in the future ;-) [17:33] heh [17:33] ralsina: hahah [17:33] we can use just qt+dbus, although it means changing a ton of code [17:33] or gtk+dbus [17:34] ralsina, mandel, alecu: I'm still chewing but we can have the meeting in.. 10 minutes? [17:34] ralsina: which dbus lib, are we useing the python bindings? [17:34] ralsina: what about the dbus in qt? [17:34] nessita: I'll be here [17:34] not sure what is the status of alecu [17:35] mandel: this is using the python dbus bindings. The qt dbus stuff is not wrapped for python, AFAIK [17:35] ralsina: hm… are you sure: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/dbus.html [17:35] nessita, I'm around here. [17:36] mandel: that's just the main loop integration [17:36] ralsina: exactly, are we using that? [17:36] mandel: yes [17:36] mandel: yes [17:36] oh, ok [17:36] bummer [17:37] mandel: your branch has a conflict in bin/ubuntuone-syncdaemon [17:37] dobey: ok, I'll take a look, I think another branch was added before [17:37] should be easy to solve [17:37] dobey: may I have the url? [17:38] https://code.launchpad.net/~mandel/ubuntuone-client/provide_windows_vm_helper/+merge/60586 [17:38] mandel, ralsina, nessita: can we do the meeting soonish? [17:38] alecu: I'm still chewing, but let's [17:38] fine by me [17:38] I'm here [17:38] mandel, ralsina: mumble [17:39] nessita: launching it [17:57] grr, where is this guy at that was supposed to come and give me an estimate for fixing my yard [18:13] dobey, maybe playing poker with the guy that supposed to come last week and fix my roof :| [18:13] heh [18:13] partypoker.net [18:13] i should play that [18:14] dobey: I notice tarmac does not run tests for ubuntuone-couch at all when merging. [18:15] eh? [18:16] verify_command = ./run-tests [18:16] so lies [18:16] thisfred: probable the bash script does not have the set -e thingy? [18:16] dobey: well trunk has 3 broken tests [18:16] michael's latest branch broke them [18:17] thisfred: can you please link me to run-tests? [18:17] nessita: http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-couch/trunk/view/head:/run-tests [18:18] uhm [18:19] thisfred: right, the problem is that script [18:19] thisfred: you need to "set -e" at the top [18:19] thisfred: and also, `which xvfb-run` u1trial -c "$MODULE" && style_check should be: [18:19] `which xvfb-run` u1trial -c "$MODULE" [18:19] style_check [18:19] ok [18:20] right, that [18:20] nessita: that latest change will run the style check when tests fail, which is less than useful though or not? [18:21] no it won't [18:21] thisfred: nopes, with set -e, the script will abort as soon as any command returns non zero status [18:21] err [18:21] you need to set -e also [18:21] ah [18:21] ok, done [18:21] thx! [18:21] thisfred: wanna a review? [18:21] nessita: in a bit [18:22] what horrible project names [18:22] I need to split this out into a new branch, I was working on something else [18:22] thisfred: let me know [18:23] thx [18:23] dobey: I'm tempted to charge you a dollar every time you complain about something. But then I realized someone can do that to myself and steal all my money :-D [18:27] nessita: when did u1cp start using python-apt? [18:27] nessita: not aptdaemon, but apt? [18:27] dobey: midish last cycle, I think [18:27] along with aptdaemon [18:27] nessita: dobey: https://code.launchpad.net/~thisfred/ubuntuone-couch/fix-tests-and-run-tests/+merge/62169 [18:28] nessita: how was it that nightlies were building at all, since neither is in the Build-Depends? [18:28] mandel: help? [18:28] dobey: ... i don't know [18:30] dobey: seems like a bug in the packaging (for natty as well). I would guess python-aptdaemon is bringing it? [18:30] dobey: would you please file me a bug? [18:31] well i don't think the ubuntu package is running unit tests [18:31] i am fixing nightlies right now === beuno-lunch is now known as beuno [18:31] dobey: right, but could you please file one so I can fix natty and oneiric packages? [18:31] thisfred: approved [18:32] thanks! [18:40] hrmm, the qt stuff isn't getting installed yet either [18:40] but i guess that's fine, since it's still pretty broken [18:41] nessita: tell me [18:42] mandel: I fixed it! [18:42] oh, sorry I was havin coffee, what was it? [18:43] mandel: when running tests without the run-tests script, I needed to pass a --qt-reactor option otherwise I was getting ugly errors [18:43] nessita: yes, the reactor that is used by default is the glib one [18:43] right [18:43] I'm going to fix the merge proposal for ubuntu-dev-tools to make it more obvious [18:44] maybe say something like no reactor specified or something [18:48] mandel: did you change the name of the CredentialsManagementTool on linux? [18:48] nessita: no AFAIK [18:48] why? [18:49] mandel: grabbing some evidence, one sec [18:49] nessita: i dont recall changing the name to be hones... [18:49] mandel: bug #787126 and now the thing that I have installed does not have the CredentialsManagementTool defined. bzr blaming now... [18:49] Launchpad bug 787126 in ubuntuone-client "Ubuntuone can't access the credentials and fals to open at startup (affects: 1) (heat: 6)" [Undecided,Incomplete] https://launchpad.net/bugs/787126 [18:50] 971.3.18 mandel@ | class CredentialsManagementProxy(object): [18:50] mandel: why did you change the name to CredentialsManagementProxy? [18:50] nessita: I really do not remember doing that.... [18:51] mandel: where did CredentialsManagementTool go? :-) [18:51] I mean, I trust you that I did the change, I dont remember why or when… [18:51] nessita: was it last week? [18:51] no idea, browsing LP now [18:52] mandel: http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-client/trunk/revision/984#ubuntuone/platform/linux/credentials.py [18:52] nessita: let me take a look at the code [18:52] mandel: "Date: 2011-05-12 22:24:08 This branch fixed the issue where windows does not have credential management code. This branch does the following: [18:52] * Refactor the CredentialsManagementTool so that it can be used by other platforms. [18:52] * Implemented the CredentialsManagement code for Windows." [18:53] nessita: hm, it looks like I did the change aand did not double check that no one was accessing the creds modul directly [18:54] mandel: CredentialsManagementTool is a documented API, you should nor change it nor remove it [18:54] mandel: all the extremely long docstrings are there for a reason! :-) [18:54] well, were there :'* [18:54] :'( [18:55] nessita: the are in ubuntuone/credentials.py [18:55] nessita: it was move out of platform, that is the reason why the docs are not there, they are in a diff location [18:55] where is the import error happening? [18:56] mandel: in ubuntuone-launch, and it can be happening on many places, that is public API and is not meant to be changed or moved [18:56] if you needed the same functionality, you should have move the logic but leave the name and functionality as is [18:56] nessita: ok, I can change it back to its location, I did not know that was a public api [18:56] nessita: the idea was to share the logic, not copy it [18:57] mandel: is ok, you can move the logic without destroying the API [18:57] it's python. anything installed in /usr/share/pyshared is public api whether you want it to be or not [18:57] and the import paths [18:57] unless you're blocking it being used with the __all__=[] hack, but then you can't use it from other modules in the same code, so also fail [18:57] yes, sorry I though it was just an internal class not share over diff things [18:57] lame from my part... [18:57] mandel: on doubt, eveything is public [18:58] ok [18:58] mandel: one of the many reasons i hate python :) [18:58] also, mandel, why would you set ubunutone/credentials.py as #!/usr/bin/env python ? [18:59] nessita: is from the vim template I use [18:59] mandel: that should not be there on 95% of the cases [18:59] does it hurt? [19:00] need to go, sorry [19:00] mandel: yes, you're declaring a python module to be executable when is a lie [19:00] will talk later [19:03] dobey: is there any way of reverting a merged branch in u1client? [19:04] alecu, ping about CreateItem bug [19:04] hi mterry [19:04] nessita: many ways... [19:04] hi mterry [19:04] dobey: can you please teach me the easiest and cleanest (ideally)? [19:04] mterry: this is keyring bug? [19:05] alecu, I'm trying ubuntu-sso-client trunk in oneiric and I still hit the error about CreateItem's dbus signature [19:05] dobey, yeah [19:05] mterry, right: we have not worked on that issue yet. [19:05] mterry: are you using ppa:ubuntuone/nightlies ? [19:05] mterry, oneiric defaults to gnome keyring 3? [19:05] alecu: well i think CreateItem signature was fixed, but there are still some other issues [19:05] alecu, oh, I thought that was bug 745540, which is marked fix committed [19:05] Launchpad bug 745540 in ubuntuone-client (Ubuntu) (and 5 other projects) "Method "CreateItem" with signature "a{sv}(oayay)b" on interface "org.freedesktop.Secret.Collection" doesn't exist (affects: 19) (heat: 102)" [Undecided,Invalid] https://launchpad.net/bugs/745540 [19:06] alecu: yes, 3.x stuff is in O [19:06] alecu, yes, 3.x [19:06] ok. [19:06] dobey, no, compiled a deb myself, though I should use the nightly ppa [19:06] mterry: please use nightlies :) [19:06] dobey, sure, but do you happen to know if they work? You say there are other issues? [19:06] I'm still getting the same CreateItem error for example [19:08] mterry: well i know there is a separate issue with names of properties, but the CreateItem error should be fixed; are you sure you used trunk? [19:08] mterry: or did you just build from lp:ubuntu/ubuntu-sso-client? [19:09] nessita: sorry. what revision would you like to revert? [19:09] dobey, I used trunk. I've now switched to the PPA, same error [19:09] mterry: hrmm, ok; weird [19:10] dobey: this merge https://code.launchpad.net/~mandel/ubuntuone-client/provide_credentials_management/+merge/59743 [19:10] dobey: so mandel can re- [19:10] oops [19:10] fix it and re propose it [19:12] nessita: bzr diff -r 984..983 will generate a reverse patch [19:13] ok, on it now [19:13] nessita: then you can appply that, and fix the conflicts, and go from there to get to where you want [19:13] dobey: right, I'll try [19:13] thanks! [19:13] sure [19:14] nessita: so diff -r $REVNOYOUWANTTOREVERT..$PREVIOUSREVNO, is how you generate a reverse diff of the changes; if you want to add it to your notes that way so it's easier to remember :) [19:15] dobey: I will, thanks [19:16] grr, why is firefox in 11.04 having drawing issues [19:16] and keyboard issues apparently :-/ [19:17] mterry: ok, am upgrading my laptop right now to be sure, and will test it there [19:17] alecu, dobey: it's because the first CreateItem returns "Invalid properties argument" and then the sso code falls back to old signature [19:18] mterry: ah, so it's becuase the properties are wrong too [19:18] sigh, why did they have to break such things [19:19] oh wow [19:19] and i thought control panel looked bad with the correct theme [19:19] yes, they changed the names of some properties, so our code will have to try both property names if we want to be compatible with both gnome-keyring versions. [19:20] hmm, and couch is broken [19:24] hopefully cp nightlies succeed this time [19:25] sigh [19:26] dobey, alecu: looking at gnome-keyring code (gkd-secret-property.c), I think the new property names are Label and Type [19:26] instead of token-name and key-type [19:27] oh whoops [19:27] I misread what I was seeing over the dbus wire. We already use Label and Attributes [19:28] no they changed some stuff from Foo to org.blahblah.blah.Foo [19:29] dobey, alecu: can I have some reviews for https://code.launchpad.net/~nataliabidart/ubuntuone-client/revert-provide_credentials_management/+merge/62181 ? [19:31] nice write up mterry :) [19:31] fagan, thanks :) [19:34] nessita, I'm reviewing [19:34] alecu: thanks [19:35] nessita: +1 [19:35] cheers [19:35] nessita, there seems to be something different: "1019 lines (+702/-230) 8 files modified" vs "1062 lines (+230/-745) 8 files modified" [19:36] alecu: some change in trunk in the mean time? maybe mandel landed some changed on one of the removed files [19:36] alecu: I applied the patch, got rejects on the files that were supposed to be removed [19:36] hrmm, 43 line difference [19:39] hum, in theory I'm removing more lines that those that were added? weird [19:40] ah [19:40] yes you are [19:40] it looks like windows/credentials.py got larger in a later change [19:41] right, for example: in the original branch, we have: [19:41] 181+ self.assertIs(callback, [19:41] 182+ self.management.register_to_authorization_denied(callback)) [19:41] and in my removes, that same line is: [19:41] 178- self.management.register_to_authorization_denied(callback) [19:42] and that happens for several tests [19:42] right [19:42] and the window impl had some larger changes as well [19:43] like the __init__ for CredentialsManagement is different there, and has some other methods added and such [19:43] dobey, is there a workaround I can do to get some credentials on an oneiric machine? I'd like to do some further testing of U1 stuff in oneiric [19:43] probably as the IPC on windows actually got implemented, stuff changed [19:45] right... anyways, I think that mandel can re add the latest version of the file once we agree on how he will be moving sutff out of linux [19:47] mterry: not sure [19:47] gimme a minute, i gotta make a phone call [19:49] alecu: the difference in the lines is casued by later changed to the windows files [19:49] which by reverting are being removed [19:50] nessita, ok, then I can assume it to be safe, right? [19:50] alecu: I think so, yes. We have all the version control history so mandel will not loose the latest changes, and he can re-propose a cleaner/working branch for us to review [19:51] ok [19:51] alecu: I did nothing extra other than applying the reverted patch and fixing the rejects [19:51] it is safe [19:51] nessita, ok. [19:52] heh, qt tests are saying: [19:52] Application asked to unregister timer 0x53000003 which is not registered in this thread. Fix application. [19:52] nessita, finally: I don't get why are we reverting instead of fixing this. [19:52] no dbus involved at all on that timer warning [19:52] alecu: did you see the attached bug report? [19:52] alecu: ubuntuone-launch is failing for every single user running nightlies [19:53] due to an ImportError. And I'm not fixing the import error itself since the changes that mandel landed break an API that is not meant to be broken [19:53] alecu: so mandel and I need to discuss how he can add the changes he needs without breaking the existing API [19:54] alecu: maybe there is another solution that th rush is not letting me see? [19:56] nessita, I can't see any quick solution, no. [19:56] nessita, thisfred, alecu: couple quick reviews for https://code.launchpad.net/~dobey/ubuntuone-control-panel/fix-dc-lint/+merge/62189 please? :) [19:57] on it [19:57] dobey: sure [19:57] dobey: looks trivial! +1 [19:57] +1d as well [19:59] aye, and it seems to be the final nail for fixing the cp nightlies :) [19:59] dobey: great work! [19:59] dobey: that in in O, right? [19:59] well, except for maverick, anyway [19:59] O and N [19:59] dobey: maverick issue is some introspection stuff, right? [20:00] some weird error in soup, yes [20:00] nessita, hmmm... regarding your revert branch: this is nightlies, and nightlies by definition some times get broken. [20:00] nessita, I still feel that reverting is taking a step back, because mandel's branch will have to go back thru reviewing and all. [20:01] alecu: right, and we fix them ASAP. Consider we advise most of our users using nightlies [20:01] nessita, so, I wonder if it would make more sense to wait till tomorrow and have him take a look at this and fix it. [20:01] nessita, (I'm guessing he has not seen this yet) [20:01] ok [20:02] alecu: and yes, I'm hoping to be able to review that whole (new) branch since he has added some stuff I disagree with [20:02] and code duplication, and shebangs to non-executable python modules, etc [20:02] ok again. [20:03] alecu: I see your point, but I'm scared by the fact that nightlies are broken for every nightlies users, which among those we have several regular and paying users [20:04] I've already emailed ralsina and mandel about this, but they don't seem to be around (or they would have replied I think) [20:05] nessita, ok. My error comes from my idea that "nightlies" in every other open source project means "will break often", and not "you should use this because stable is too old." [20:05] nessita, so, I'm approving. [20:06] alecu: yeah, I hope we can do something about nightlies and delivering improvements to older clients. And thanks. [20:06] alecu: eh, if it's the wrong thing to do we can always revert the reversion :) [20:06] and that also [20:06] alecu: the thing that motivates me to revert is that the code is not lost [20:07] ok now sso client [20:11] ugh [20:12] there is no good way to do this, i think :( [20:15] ugh and the dbus api isn't introspecting :( [20:15] so d-feet is totally useless [20:21] alecu: ok, so I have ready the branch that we talked about this morning (grouping ui implementations into a gui module and moving all the constants there for easy access). Is big, but it works, and is ready for review. Will you let me know when you have a slot to look at it? [20:21] nessita, I'm having lunch (!) so post the url, and I'll review when I finish. [20:23] alecu: long merge description is in place, please read before panicking :-P https://code.launchpad.net/~nataliabidart/ubuntuone-control-panel/bind-some-more/+merge/62191 [20:24] man i hate git [20:25] cgit certainly doesn't help [20:26] Ohai, I heard you like distributed versioning control, so I made every action you want to do into two separate commands! [20:28] * nessita brbs [20:30] nessita, I don't understand the lines 213 and 214 in the proposal: https://code.launchpad.net/~nataliabidart/ubuntuone-control-panel/bind-some-more/+merge/62191 [20:30] what i really like is distributed distribution [20:40] alecu: ah, that is a "bug fix", in the sense that when setting a status_changed callback, it is expected that the getter return what you've set and not another function [20:41] i wonder if using the long property names will 'just work' with the old keyring [20:41] not sure how to test [20:41] alecu: without that fix, if you set function f to be the status_changed callback, when you query it you get another function (process_and_callback). process_and_callback only makes sense from the backend to below (ie syncdaemon) [20:43] nessita, ack [20:44] alecu: I noticed that when writing the test, not sure how I didn't notice it before :-/ [20:45] nessita, probably it was not used before. [20:47] what a mess [20:49] nessita, why is this line repeated from 2301+? "from ubuntuone.platform.linux.tools import SyncDaemonTool" [20:50] alecu: is inside the calls, so when we import that module ubuntuone.platform.linux.tools does not get imported at module import time [20:50] alecu: otherwise the default twisted is installed before we install our own [20:50] nessita, oh, ok. [20:50] feo, sí :-( [20:51] alecu: any ideas how to make that less pucking? [20:51] nessita, a factory function that's used from every test? [20:52] nessita, that function then imports sdtool, and returns an instance [20:52] alecu: the issue is not the tests, but the live code. But yes, a factory makes sense [20:52] fix whatever is importing/installing the reactor, so that it doesn't do it when you import that module [20:52] alecu: fixing that now [20:52] oh, right, it's the actual code. [20:52] yeah [20:53] but yes, a factory makes sense [20:53] nessita, besides that, it looks great. [20:53] yay, finally; brb [20:53] nessita, +! [20:53] nessita, +1 [20:54] yey! fixing that last bits before convincing thisfred he will love that branch (?) [20:55] I'm easy to convince. try: convince() except NotConvinced: feed(beer) [20:55] lol [20:55] nessita: do I need to review that branch? [20:56] nessita, oh... the tests are failing [20:56] alecu: they are? I run them several times, but maybe [20:56] nessita, there's a missing __init__.py in u1/cp/gui [20:56] alecu: ah! my bad, I have it, and you don't :-P [20:57] alecu: you also don't have the ubuntuone/controlpanel/gui/qt/tests/test_controlpanel.py!!! [20:57] nessita, now I have an empty one, don't need yours! [20:57] which is where all the magic happens [20:58] yes... I need that too! [20:59] nessita, please let me know when I can pull [20:59] yes [21:00] * alecu will EOD after reviewing, because he's feeling like crap. Like a gin drinking, gitanes smoking, blues singing, piece of alecu [21:00] * thisfred will buy that cd [21:00] hahaha [21:01] alecu: pushing. [21:01] . [21:01] . [21:01] .Pushed up to revision 160. [21:01] thisfred: feel like doing an epic review? [21:01] nessita: always! [21:02] thisfred: sos groso! https://code.launchpad.net/~nataliabidart/ubuntuone-control-panel/bind-some-more/+merge/62191 (please read merge description!) [21:02] on it! [21:02] wow. glad that dude got here when he did. it just got *dark* outside, and thunder's rolling [21:03] dobey, what dude? [21:03] alecu: getting an estimate to do some work on part of my yard [21:04] dobey, building another workshop for your cars? [21:05] nessita, ************* Module ubuntuone.controlpanel.gui.qt.gui [21:05] E1101: 71:main: Module 'twisted.internet.reactor' has no 'stop' member [21:05] alecu: not yet. just trying to have a yard that's not all 3ft tall weesd [21:05] alecu: bu, I'm not getting that. How come? [21:06] nessita, don't know. Just did ./run-tests [21:06] alecu: fixing it... [21:06] alecu: maybe I need to merge trunk in? let's see [21:06] nessita, also, there are a lot of DEBUG messages flying by when running -qt [21:06] DEBUG:ubuntuone.controlpanel.webclient:getting url: GET, http://localhost:39780/unauthorized [21:06] DEBUG:ubuntuone.controlpanel.webclient:got http response 401 for uri 'http://localhost:39780/unauthorized' [21:07] woah [21:07] yes, it's only happening for -qt [21:07] alecu: that is... weird [21:07] that lightning was *CLOSE* [21:07] alecu: is your system up to date? [21:07] nessita, let me check [21:08] I think mine is, though I could use a reboot [21:08] and some tea, actually [21:08] and here's the rain [21:08] dobey: say Hi to her [21:09] tell her we're missing her in Córdoba, a lot [21:09] alecu: nessita fwiw run-tests and run-tests -qt pass here, BUT I still get a million debug prints [21:09] thisfred: is your system up to date? [21:09] nessita: it was this morning [21:09] and also, what the heck is "http://localhost:39780/unauthorized"? [21:10] sounds desktopcouch-ish [21:10] nessita: ping [21:10] nessita: I don't think we have an /unauthorized url though... [21:10] alecu: do you have [21:10] 39 [couch_httpd_oauth] [21:10] 40 use_user_db = false [21:10] in /etc/couchdb./default.ini? [21:11] mandel: you are back! :-) I thought you were gone for the day... [21:11] thisfred: what messages do you have? [21:11] he should be... [21:11] nessita: never, I just wanted to apolgize for the crazy approvals we had during the windows sprint [21:11] nessita: as I said in the mail, like spaniards say 'visteme despacio que tengo prisa' [21:11] mandel: honestly I'm a bit scared :P-) [21:12] mandel: but good news! we can fix it [21:12] mandel, that was napoleon! [21:12] nessita: dist-upgraded. but I don't see a change. pastebinning [21:12] nessita, I have that set to true. [21:12] nessita: yes, we can, there was way to much done and not corretly reviews [21:12] alecu: oh, so it was the guy who conquered us… bastards ;) [21:12] alecu: well, you need that in false to have a working couch when using ubuntuone-hackers (private) PPA. Not sue of it's related though [21:13] nessita: http://paste.ubuntu.com/612439/ [21:13] mandel: you can rest today, we already reverted the changes, in the hope that tomorrow we can talk about it and come to a clean solution [21:13] mandel: is very late for you! [21:13] nessita: it might b late ;) [21:14] thisfred: is that from running ./run-tests? [21:14] nessita: nevertheless I feel resposable, I did not know that the code was a public API, and honestly I really did not consuder the #! comment to be an issue [21:14] nessita: yep [21:14] nessita: first news I had about it [21:14] nessita: this has been happening for a long time though [21:14] nessita: not related to your branch, but I don't know how to stop iy [21:14] mandel: is not a big issue, but that makes me worry about the quality of the reviews [21:15] thisfred: weird! very [21:15] sí [21:15] mandel: shall we talk tomorrow about how to add what we need for windows re: credentials? I'm sure we'll come up with a clean solution re-using your former branch [21:15] basically the logging goes to stdout always for me [21:16] thisfred: yeah, it happens somethimes for syncdaemon as well [21:16] never find out why [21:16] nessita: ok [21:16] mandel: rest some, I'll start working before 9am ART [21:17] nessita: ok, will do thx, and sorry [21:17] mandel: :-) [21:18] CardinalFang: you had ping timeout on canonicals irc. [21:18] mandel: you said you replied to my email or I misunderstood? [21:18] nessita: I did reply [21:20] mandel: to all? [21:20] nessita: as in all emails or to everyone? [21:21] mandel: all the recipients in the email. I mean, I did not get any email, but that may be fine [21:22] mandel: nevermind, I was looking the wrong folder :-/ [21:22] mandel: I did got the reply [21:23] nessita: you probably explained this to alejandro, but why the import *? Can't you just do import gui, and then namespace the constants? [21:23] nessita: hehehe [21:23] so gui.CONSTANT etch [21:23] etc. [21:24] star imports considered harmful [21:24] thisfred: I could, but from my POV (I'm open to suggestions) the fact of using gui.CONSTANT makes the code less readable. Imagine the tests, they will read gui.gui.CONSTANT. So, I know namespaces are one honking idea, but for this particular use case I find import * more clean and simple (again, is my POV) [21:25] thisfred: how I see it, adding gui. does not add any value to the constant name [21:25] nessita: well, my viewpoint is no better than yours, so I will approve, but I would go to almost any length to avoid * imports [21:25] thisfred: I agree with you 99% [21:26] nessita: no but you pollute the namespace, which can confuse tools and developers [21:26] especially if the developers *are* tools :D [21:26] thisfred: is not more polluted than before, the constants existed before in the module, they were moved for easy reuse from QT [21:27] nessita: I would personally import them one by one, before doing the * import, even ;) [21:27] but again, matter of taste [21:28] thisfred: that is cleaner, granted. But they are so many... if you insist I'll do it [21:28] I don't [21:28] +1d [21:28] thanks!!! [21:28] practicality beats purity [21:28] and purity beats scissors [21:30] lol [21:31] sigh [21:31] this will not do [21:31] i guess i have to buy a bigger UPS :( [21:32] oh [21:32] where did this go? [21:32] cp: cannot stat `debian/tmp/debian/tmp/usr/share/applications/ubuntuone-control-panel-gtk.desktop': No such file or directory [21:33] someone broke the setup.py [21:35] dobey: I need to propose a branch for packaging-dailies, for u1cp [21:35] not sure that is related though [21:37] nessita: for what? [21:38] a merge proposal worths thousand words [21:38] :-D [21:39] not always [21:40] ah i see what's wrong [21:40] alecu broke it :) [21:40] dobey: what is it? [21:43] the new build command to generate the qt junk isn't chaining up to the parent build command's run() [21:44] nessita: doh, and you broke po/POTFILES.in :( [21:44] dobey: yes, fixing that now [21:44] dobey: I change it without actually doing the bzr move [21:44] changed* [21:45] right [21:45] nessita: can you also stick http://pastebin.ubuntu.com/612448/ in your branch? [21:46] bien sur! [21:46] nessita: i take it the packaging change is to update the -gtk.install for the ui files being moved to a subdir? [21:47] dobey: yes sir [21:47] I will update it, that is [21:48] oh and installing the .qt files [21:48] doh; i had updated it earlier when i was trying to fix the nightlies, and then i saw they weren't being installed yet [21:48] which is probably good since qtreactor isn't packaged [21:58] dobey: https://code.launchpad.net/~nataliabidart/ubuntuone-control-panel/move-data-gtk/+merge/62209 [21:58] anyone else can review ^? [21:59] ewww [21:59] ? [21:59] I can [21:59] nessita: how exactly did you modify the .ui files for the difference in image patH? [22:00] dobey: by hand [22:00] because ../ is nasty and evil [22:01] dobey: what would you suggest? [22:01] dobey: simlinking those png into gtk? [22:01] that can be an option [22:01] no [22:01] not sure what you mean by that, but no [22:02] dobey: I mean having the real png under data, and symlinks inside data/gtk to avoid the ../ in the XMLs [22:02] there should be some way to set the image directory on the builder i would think; or we could add a custom theme path and load the icons by name instead [22:03] dobey: all that effort for and UI that will die soon? [22:03] * nessita googles [22:03] why should it die? [22:05] dobey: I don't want to have that discussion right now, but basics are we will not maintain 2 UIs [22:06] ello [22:06] dobey: can I promise you a later branch loading all the imaged programatically? [22:07] no, i have given up on promised branches [22:07] hi cwayne [22:07] dobey: I never lied, except for me not testing your nautilus branch yet [22:09] dobey: I'm leaving soon, what would you like me to do re that branch? [22:09] well, i also don't want to have such discussion right now; and it's time for me to get away from the computer and go do other things [22:10] well i guess i'll just abstain for now. and i think there is a rush to get it in right now [22:10] dobey: I do too [22:10] dobey: but I kinda need your +1 [22:10] err, i don't think there is a rush to get it in right now [22:10] see i am tired [22:10] dobey: ok, let's continue tomorrow then [22:10] ok [22:11] have a good evening [22:11] you too [22:11] bye all! [22:11] * nessita eods [22:15] hiya dobey [22:15] you wouldn't happen to be an expert on the REST api would ya :) === m_conley is now known as m_conley_away [23:30] anyone here that can help me with the api? [23:57] cwayne: could you come back tomorrow [23:58] fagan: sure [23:58] around 9-5UTC since thats when most of the devs are around (im an intern so wouldnt be much help)