[12:41] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: add (primitive) search interface to bug listing (patch-790)
[01:24] <Kinnison> night dudes
[03:14] <elmo> do any of the launchpad things talk to external sites?
[03:30] <lifeless> yes
[03:30] <daf> I think Malone sometimes fetches data from external Bugzillas
[04:33] <dilys> Merge to rocketfuel@canonical.com/buildbot--devel--0: set umask in cscvs builds to 022, overriding the twistd daemon default of 077 (patch-67)
[07:55] <stub> Note to self: Mirror your arch archived *before* kicking off the hoary upgrade
[08:46] <daf> stub: I'm going to be now, but I need to know the difference between the various dogfood DBs on mawson and whether I have access to them
[08:46] <daf> stub: basically, I need to import some SQL from the Rosetta Alpha database which describes some users, and I don't know which database to load it into
[08:47] <daf> s/going to be/going to bed/
[08:47] <stub> The production database is launchpad_dogfood
[08:47] <stub> All the others are backups and tests
[08:47] <daf> ok, simple enough
[08:48] <daf> and do I have access?
[08:48] <daf> well, either daf or launchpad will do
[08:48] <stub> I'm now using createdb -E UNICODE --template=launchpad_dogfood launchpad_dogfood_2004mmdd  to backup the database before a dogfood code update, so these are a good place to get sample data
[08:49] <stub> Do you have access to the launchpad user? If so, definitly. Otherwise, just try running psql -d launchpad_dogfood
[08:50] <stub> My default, people should have read only accounts but that is not yet the case
[08:50] <stub> I think I have createuser access if you need an account setu
[08:52] <stub> It is a good idea to make a duplicate of the production database to test your script on before running it against the production database unless you are confident it won't screw up (by using createdb -E UNICODE --template=launchpad_database_20041116 daftest)
[08:52] <daf> cunning
[08:52] <daf> I'll do that
[08:53] <daf> I'll let you know if I have any problems when I do it
[10:03] <lulu> morning all :o)
[10:44] <Kinnison> Morning
[11:15] <SteveA> hi
[11:27] <sabdfl> Kinnison: i'm working on a syncing system to sync debbugs into malone
[11:28] <Kinnison> sabdfl: cool
[11:28] <sabdfl> when gina creates packages, its just creating the ubuntu ones, right, not the debian ones?
[11:28] <Kinnison> Yes
[11:28] <sabdfl> we'll need to extend it a little, can discuss tomorrow
[11:28] <Kinnison> Okay
[11:29] <sabdfl> if we have a record of both debian and ubuntu packages, then the syncer can model things more easily
[11:29] <Kinnison> Yeah
[11:29] <sabdfl> *however* it might get very crowded then
[11:29] <sabdfl> but since malone's designed for it, we need to go down that road and figure out how to make it sexy
[11:31] <Kinnison> Yeah
[11:31] <Kinnison> I'll put it on there
[11:32] <Kinnison>  * Getting gina to create SourcePackage entries for the Debian packages we derive from
[11:33] <Kinnison> there we go :-)
[11:33] <Kinnison> https://wiki.canonical.com/WedAgenda
[11:33] <Kinnison> Please add anything you can think of to there
[11:33] <Kinnison> I'll add stuff as it comes to me
[11:37] <Kinnison> morning cprov
[11:40] <cprov> Kinnison: morning
[11:42] <Kinnison> SteveA: when assigning to a DateTimeCol in an SQLObject thing... What should I set it to in order to represent now + foo days?
[11:45] <SteveA> I suspect you can make an appropriate datetime object
[11:45] <SteveA> by taking datetime.utcnow() and adding a timedelta(days=foo)
[11:45] <Kinnison> cool
[11:56] <sabdfl> Kinnison: ok, i'll definitely need your help tomorrow to populate the db with debian as well as ubuntu package details
[11:56] <Kinnison> sabdfl: *noted*
[11:56] <sabdfl> it's about time anyway, since we need to start figuring out the derivation process
[11:56] <sabdfl> how we model and represent that, etc
[11:57] <Kinnison> Yeah
[11:57] <Kinnison> will you put that on the agenda?
[11:59] <sabdfl> done
[12:00] <Kinnison> goddamnit; workrave won't leave me alone
[12:05] <Kinnison> is the form: 'element in list' efficient; or is it more efficient to store the list as a dict of element=>1 and do 'element in dict' ?
[12:38] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Simple DistroRelease bug counter (patch-791)
[12:39] <SteveA> Kinnison: element in list looks through the list in sequence comparing each element using __eq__ (or __cmp__ if there is no __eq__) until it finds a match
[12:39] <SteveA> element in dict or element in set uses the value of hash(element) to find a potential match, followed by __eq__.
[12:40] <SteveA> for collections of 10 or more items, using a set or dict is certainly faster.  for 10s of items, it is noticibly faster.
[12:40] <SteveA> for under 10, I'd use whatever notation is most convenient.
[12:41] <SteveA> of course, these are just rules of thumb, and it all depends on how expensive __eq__ is for your objects.
[12:42] <SteveA> but, I see no reason to store things as a dict of element->1 or ->0 or ->None when you could use a Set, and it would be clearer what you're doing.
[12:51] <Kinnison> Where do I get 'Set' from then?
[12:51] <SteveA> it is easy to make a set from a list:  sets.Set(mylist)
[12:51] <SteveA> import sets
[12:54] <SteveA> see also: http://docs.python.org/lib/module-sets.html
[12:54] <Kinnison> ta
[12:54] <SteveA> for information about using sets as the key of a dict
[12:54] <SteveA> or sets of sets
[12:54] <SteveA> should you need such things
[12:54] <Kinnison> I don't need that for now :-)
[12:54] <Kinnison> Ultimately the construct I'm ending up with is:
[12:54] <Kinnison>         for f in condemnedfiles:
[12:54] <Kinnison>             if f not in livefiles:
[12:54] <Kinnison>                 os.remove(f)
[12:55] <Kinnison> or similar
[12:55] <SteveA> why not just use sets and subtrave one from teh other?
[12:55] <SteveA> then remove the lot?
[12:55] <Kinnison> ooh good idea
[12:56] <SteveA> see checkarchtag.py, method check_tags_dicts, for some use of sets
[12:57] <SteveA> using Set(mydict.keys()) isn't strictly necessary
[12:57] <Kinnison> yep; gotcha
[12:57] <SteveA> but I think it is clearer
[12:57] <SteveA> as a dict is iterable over its keys anyway
[12:57] <Kinnison>         for f in condemnedfiles - livefiles:
[12:57] <Kinnison>                 os.remove(f)
[12:57] <Kinnison> ;unindents the os.remove slightly :-)
[12:58] <Kinnison> gah s@;@/me@
[01:06] <sabdfl> hmm... debbugs allows one message to go to many bugs
[01:06] <sabdfl> but in malone, a message belongs to only one bug
[01:06] <sabdfl> i wonder how best we should sync those
[01:07] <Kinnison> each bug gets its own copy I guess
[01:07] <Kinnison> like in debzilla
[01:07] <sabdfl> yuck
[01:08] <sabdfl> rdbms way would be to have a mapping table from message to bug
[01:08] <Kinnison> indeed
[01:08] <sabdfl> but... that's quite a change
[01:08] <Kinnison> assuming a message is considered immutable then that'd be fine
[01:08] <Kinnison> but if you can mod a message or its attributes then you might have an issue
[01:08] <sabdfl> message should be immutable
[01:09] <sabdfl> or, at least, changed everywhere when changed somewhere
[01:09] <sabdfl> so mappings work in that sense
[01:09] <sabdfl> a bigger issue is followups
[01:09] <Kinnison> Hmm
[01:09] <sabdfl> do they need to automatically appear in every bug the original message appeared in...
[01:10] <Kinnison> I guess when replying you could offer a choice "reply on this bug only" or "reply on every bug this comment is attached to"
[01:17] <Kinnison> SteveA: what time is the launchpad meeting tomorrow?
[01:20] <Kinnison> Did someone do a new dogfood deployment last night?
[01:30] <SteveA> 12:30 UTC
[01:32] <sabdfl> SteveA: if i'm writing a script with initZopeless, do i need to do anything to get transactions committed?
[01:36] <SteveA> sabdfl: not sure.  when you call initZopeless(), you get a transaction manager.  So, transactionmanager = initZopeless(), at the start, and transactionmanager.commit() at the end, I would say
[01:38] <sabdfl> works a treat, thanks :-)
[01:51] <SteveA> carlos, daf: can you update the main template that rosetta uses to include the login and logout links, as in the standard main template?
[01:52] <carlos> SteveA: ok, looking at it
[02:04] <Kinnison> Noone is owning up to redeploying dogfood last night?
[02:08] <Kinnison> Well; whoever did should have restarted the librarian :-)
[02:34] <SteveA> carlos: there's still an 'idaf.py'.  can you get rid of it please?
[02:34] <carlos> SteveA: sure
[02:34] <carlos> SteveA: did you saw my question about the main template?
[02:34] <SteveA> no, I didn't
 SteveA: but we are already using the main template login
 SteveA: I only see a link to rosetta/+login that could be removed
[02:35] <SteveA> if you look at the main template (main-template.pt I think), you'll see that it has some logic to show a "logout" link if someone is logged in, and a "login" link otherwise.
[02:36] <carlos> SteveA: I saw it, I fixed the rosetta/+login to show it only when you are logged in
[02:36] <carlos> but the login/logout links comes from that main template
[02:36] <carlos> I mean, we have an extra login link
[02:36] <carlos> and the common login/logout
[02:37] <carlos> the login link was fixed to be showed only if you are not logged in, not sure if that's the only change you are asking
[02:37] <SteveA> https://launchpad.ubuntu.com/rosetta
[02:37] <SteveA> it should say "login" in the blue horizontal bar
[02:38] <SteveA> check the code in main-template.pt
[02:38] <carlos> hmmm
[02:38] <carlos> it was there
[02:38] <SteveA> line 117 - 129
[02:38] <carlos> in fact, my local copy has it
[02:39] <SteveA> diff it to what is in rocketfuel perhaps?
[02:39] <carlos> I'm updating my local copy
[02:39] <carlos> seems like a recent change removed it, will fix it
[02:39] <SteveA> everyone, please do the following:  cd lib/canonical/launchpad/database ; grep "canonical\.launchpad\.interfaces\." *.py
[02:40] <SteveA> you'll see a bunch of database code that is importing interfaces from specific interface modules, and not from canonical.launchpad.interfaces
[02:41] <SteveA> would someone please volunteer to fix this up?  also, please ensure you're using only  "from canonical.launchpad.interfaces import ISomething" in all new code, and not "from canonical.launchpad.interfaces.something import ISomething"
[02:55] <debonzi> SteveA, I can do that
[02:55] <SteveA> thanks debonzi!
[02:55] <debonzi> SteveA, no problem
[03:08] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: judgeSuperceded and unpublishDeathRow correct now (patch-792)
[03:29] <sabdfl> does anyone know how to do the following in SQL?
[03:30] <sabdfl> i'm altering the structure of a table, from one-to-many to many-to-many
[03:30] <BradB> SteveA: ping
[03:30] <sabdfl> creating a new Rel table to be the glue between the two tables
[03:30] <sabdfl> now i have to populate the rel table with data from the previous structure
[03:31] <sabdfl> what i basically want to do is a SELECT from one of the tables, and for every resulting line, I want to INSERT into the new Rel table
[03:31] <sabdfl> ?
[03:32] <BradB> sabdfl: \h select into
[03:34] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Interfaces import fix. Requested by SteveA. (patch-793)
[03:35] <sabdfl> BradB: thanks muchly, looks like it would do the trick
[03:35] <BradB> no prob
[03:41] <BradB> lulu: ping
[03:42] <lulu> BradB: howdy!
[03:44] <BradB> hi :) hm, ul.org was being deathly slow for me for a few minutes there...seems to be a bit better now.
[03:45] <lulu> BradB: yes - it does seem to oscillate :o( we are looking into optimising plone and ZEO clustering....
[03:46] <BradB> indeed
[03:53] <BradB> lulu: Your comment about News Items...are you asking for that to be done, or noting that It Works? NI's should already be config'd to show correctly.
[03:53] <BradB> (i.e. NI's displaying like Events do...not in navtree, but in a portlet, etc.)
[04:01] <elmo> does the website have any sort of query param stuff? 
[04:01] <elmo> i.e. urls like www.ul.o/foo?bar=baz&moo=bat 
[04:02] <BradB> yep, that's common
[04:02] <BradB> i.e. for searching, for the portal status message, etc.
[04:02] <BradB> s/i.e./e.g./
[04:02] <BradB> why?
[04:03] <elmo> I'm poking nails into my eyes^W^W^W^W^Wsetting up awstats and it wants to know
[04:04] <BradB> elmo: do you have to say anything more specific about it than "Yes"?
[04:04] <elmo> the chracters used, it defaults to "?" and ";"
[04:04] <elmo> which should be fine, I guess?
[04:05] <BradB> yes
[04:10] <sabdfl> BradB: turns out CREATE TABLE, then INSERT INTO ... SELECT f
[04:10] <sabdfl> worked better for me
[04:10] <sabdfl> more control over table structure, primary keys etc
[04:13] <BradB> ah, i was assuming you'd do a create table first even with select into, but hey, whatever worked.
[04:14] <sabdfl> BradB: no, the select into actually creates the table
[04:14] <sabdfl> and you don't seem to have much control over the table it creates
[04:14] <sabdfl> so beter to create it, then INSERT INTO table SELECT
[04:16] <BradB> ah
[04:25] <sabdfl> hmm... table renaming time again
[04:25] <sabdfl> bradb, what did we run into last time that made it such a pain?
[04:25] <sabdfl> we had to rename all the indexes, sequences and keys
[04:26] <sabdfl> anything else?
[04:27] <carlos> sabdfl: all foreign keys
[04:28] <sabdfl> i think the foreign keys that point at a table will be update automatically
[04:28] <carlos> really?, didn't know that
[04:30] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Reorganisation and clean-up of placeless auth and security. (patch-794)
[04:38] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Added the login/logout links to the rosetta's main template (patch-795)
[04:52] <BradB> sabdfl: I don't think so. It was mainly the things you've mentioned that were a pain last time.
[04:52] <sabdfl> ok
[04:52] <sabdfl> am refactoring the bugmessage system to allow one message to be associated with multiple bugs
[04:52] <sabdfl> and vice versa
[04:53] <kiko> sabdfl, is this for things such as changing a set of bugs in the same way?
[04:54] <sabdfl> kiko: yes
[04:54] <sabdfl> also, allows us to model debbugs exactly, since debbugs allows this
[04:54] <sabdfl> it's going to make our brains hurt on some issues though
[04:54] <kiko> I see. Yeah, I thought so too.
[04:55] <kiko> what does it do for debbugs, I wonder?
[04:55] <kiko> we could just model it as replicated comments per bug, couldn't we?
[04:55] <BradB> one message attached to multiple bugs smells bad
[04:56] <BradB> particularly at this early stage
[04:56] <BradB> I wouldn't recommend doing anything on Malone that doesn't push us closer to a first production release. This bugmessage change doesn't push us closer to a first production release.
[05:02] <sabdfl> BradB: syncing debbugs is something i want for production, so i'm doing the work
[05:03] <sabdfl> it's one of the big tools that the distro team uses
[05:03] <sabdfl> they sync debbugs to bugzilla
[05:03] <sabdfl> so we need to be able to sync debbugs to malone
[05:03] <Kinnison> And I take it a sync to bugzilla and a malone->bugzilla watch isn't enough?
[05:03] <sabdfl> Kinnison: not really, not if we want the distro team to come over to malone during the conference
[05:04] <Kinnison> righty
[05:05] <kiko> sabdfl, but can't we model this as just replicated comments in malone?
[05:05] <sabdfl> unique rfc822msgid requirement :-)
[05:06] <BradB> sabdfl: this sets the bar that much higher than for a first release, which is another way of saying it'll take longer to get it out the door.
[05:06] <kiko> sabdfl, that's how bugzilla handles change-multiple comments too by the way. it allows us to add comments like "changed product from foo to bar" which you can't do with a single message per set of bugs
[05:06] <BradB> SteveA: ping
[05:06] <kiko> (since the set of bugs may have a different original product)
[05:08] <BradB> s/than for a/then for a/
[05:09] <sabdfl> BradB: i'll get it done shortly, or roll it back
[05:09] <BradB> ok
[05:11] <SteveA> hi brad
[05:12] <kiko> sabdfl, hmmm. so because of the message-id we *need* it to be a single comment?
[05:14] <BradB> SteveA: hi. any news on the selected values fix? if not, i'll continue what i'm doing now, which is to render the widgets with a schema somehow (borrowing ideas from the default-editform we have)
[05:14] <BradB> maybe the schema way will be better anyway, so that i can validate, etc.
[05:15] <SteveA> BradB: I'll be committing it shortly
[05:16] <BradB> cool
[05:17] <sabdfl> kiko: we could remove the unique msgid and copy the comment, but i'd rather just refactor correctly now
[05:18] <kiko> sabdfl, hmmm. I don't think it buys us very much, just that -- myself, I'd just remove the msgid and dupe the comment, since there are many bug tracking systems out there and who knows how intensely they can vary.
[05:38] <carlos> SteveA, sabdfl: could I create a interfaces/rosetta.py file to store a Rosetta specific object interface? (RosettaStats)
[05:40] <BradB> carlos: look at the names of the other files in that dir. we don't want app-specific names for those files, but rather names that hint at the domain objects they contain.
[05:41] <carlos> BradB: I know, but that interface is used by Project, Product and Pofile
[05:41] <carlos> hmmm, well, it's related to pofiles, perhaps it could be imported inside pofile.py
[05:42] <carlos> not sure, that's why I ask :-P
[05:43] <SteveA> BradB: it is done.  just about to commit.
[05:43] <BradB> cool
[05:44] <SteveA> so, the way it works is you can say:
[05:45] <SteveA>   request/htmlform:foo/selected/value   and get 'selected' if form['foo']  == 'value' else nothing
[05:45] <SteveA> you can also say:
[05:45] <SteveA>   request/htmlform:foo/cheese/value   and get 'cheese' if form['foo']  == 'value' else nothing
[05:46] <SteveA> so, this will work for checkboxes too, I think
[05:47] <SteveA> we can constrain this behaviour later, if we can think of anything else that the htmlform: namespace should provide
[05:48] <BradB> cool
[05:49] <SteveA> daf: around?
[05:50] <SteveA> carlos: do you know what happened with making rosetta alpha use the dogfood setup?
[05:50] <BradB> SteveA: related to what I was currently trying out: if i've got a schema IFoo, and an IField in their "bar", and a view IFooView, where I can read about hooking up that schema to that view to somehow render IFoo.bar's widget in a particular place in some custom HTML?
[05:50] <BradB> s/in their/in there/
[05:54] <BradB> mm, i think i might have found it
[05:54] <SteveA> I can't quite grasp what you're saying, so glad you've found it ;-)
[05:55] <BradB> SteveA: I've defined a schema, like this:
[05:55] <BradB> class IFoo(Interface):
[05:55] <BradB>     bar = ...whatever field type...
[05:55] <BradB> I've got a view like this:
[05:55] <BradB> class IFooView(object):
[05:55] <BradB>     ...some view methods...
[05:55] <BradB> Now, I'm writing some HTML for something that's going to be, well, viewed.

[05:56] <BradB> somewhere inside the <html>...</html>, I want to render the widget that will collect a value for IFoo.bar.
[05:57] <BradB> i don't know who to ask (i.e. which method to call on which thing) to say "render bar's widget here -->"
[05:58] <SteveA> not really IFooView(object)
[05:58] <SteveA> probably just FooView
[05:58] <SteveA> there's something in zope.app.forms (or somewhere like that) to do what you want.
[05:58] <BradB> er, yeah, sorry, but anyway, same conceptual brick wall
[05:59] <SteveA> I can look it up for you in a bit.  I need to go and get lunch RSN
[05:59] <BradB> i'm looking at the edit.pt now. <div metal:use-macro="context/@@form_macros/widget_rows" /> does all the magic, but i have no idea what context is.
[06:00] <SteveA> I was thinking of something at a lower level than that
[06:00] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Implemented request/htmlform:fieldname/selected/?value for tales. (patch-796)
[06:00] <SteveA> BradB: can you try out what dilys was just talking about?
[06:01] <BradB> sure
[06:02] <carlos> SteveA: last notice about it was that daf was waiting for stub to import the users
[06:09] <SteveA> what about importing the pofiles ?
[06:14] <carlos> SteveA: same thing
[06:14] <carlos> SteveA: daf don't know where should it be imported
[06:15] <carlos> he was waiting for stub to know the database and the procedure to do the import
[07:13] <lulu> night all :o)
[07:13] <debonzi> lulu, night
[07:17] <carlos> SteveA: not sure if it's related to your latest changes to test_on_merge.py but the current output is really hard to read
[07:18] <carlos> it "eats" the new line char
[07:59] <BradB> SteveA: where can i read about how to use your tales thing? e.g. i want to know how to call it when my value is in a variable (which will be the 99%-of-the-time common case)
[08:03] <carlos> BradB: https://wiki.canonical.com/ZopePageTemplates
[08:03] <carlos> I think we should move the document from lalo's server to our wiki or it will be lost...
[08:07] <BradB> carlos: i'm referring to the change steve just checked in to provide a little adapter to make it not-insane to highlight "selected" values in, for example, search forms
[08:08] <carlos> ooh, ok O:-)
[08:31] <carlos> sabdfl: ping
[08:34] <daf> SteveA: ping
[08:48] <SteveA> BradB: what do you need to know?
[08:48] <SteveA> carlos: I think I can fix that
[08:48] <SteveA> thanks
[08:49] <SteveA> daf: how is the "rosetta alpha on dogfood system" going?
[08:49] <BradB> how to pass a "value" to your tales adapter stuff when "value" is a variable containing the value (which is the 99%-of-the-time common case)
[08:49] <carlos> SteveA: I sent the complete log to launchpad's mailing list
[08:50] <daf> SteveA: I'm just about to do the user import
[08:50] <SteveA> BradB: you use the ? notation we discussed yesterday
[08:50] <SteveA> this is not specific to what I have done, but rather a generic tales thing.
[08:51] <SteveA> so, request/htmlform:fieldname/selected/?value
[08:51] <BradB> yeah, tried that already
[08:51] <SteveA> and what happened?
[08:51] <BradB> i'll do it again to give you the exact err msg
[08:52] <SteveA> ok
[08:53] <carlos> SteveA: I have a doubt before I could kill idaf.py
[08:53] <carlos> SteveA: there is the RosettaProject class
[08:53] <carlos> that seems like you did it to have a demo about "decorations"
[08:54] <carlos> hmm, IRosettaProject interface more than a class
[08:55] <carlos> and then, we have a lib/canonical/rosetta/domain.py file that implements it
[08:55] <BradB> SteveA: http://paste.husk.org/2029 raw copy and paste of the tales, and the entire exception
[08:56] <SteveA> IRosettaProject can still go in interfaces, regardless of what else we decide to do what that code.
[08:57] <carlos> SteveA: where?
[08:57] <carlos> project.py, pofile.py or a new rosetta.py?
[08:57] <SteveA> project, I suppose
[08:58] <carlos> ok
[08:58] <SteveA> BradB: that's an interesting error.
[09:03] <SteveA> BradB: I'm looking into it now
[09:04] <BradB> ok, thanks
[09:07] <SteveA> the tales code is behaving in an odd way in this case
[09:20] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: First implementation of DistroRelease Bugs Page. (patch-797)
[09:21] <SteveA> BradB: I have worked around the issue I just chatted to Jim about
[09:21] <BradB> ok
[09:29] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Killed idaf.py (patch-798)
[09:32] <carlos> BradB: https://launchpad.ubuntu.com/malone/bugs/createdby?owner=name98 gives me an exception
[09:33] <carlos> I think because owner should be an integer instad of "name98"
[09:33] <carlos> ValueError: invalid literal for int(): createdby
[09:34] <BradB> carlos: that part of malone 1. isn't well-tested (in fact, it may not be tested at all) but 2. that's ok, because it's going away soon.
[09:34] <carlos> ok
[09:52] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Work around bug in tales and traversal. (patch-799)
[09:55] <SteveA> BradB: care to try again?
[10:07] <BradB> yep, just waiting on tla
[10:09] <BradB> carlos: Dude, I'm amazed that your friends named their project "CVSAnalY".
[10:10] <BradB> "It has a web interface - called CVSAnalYweb - where the results can be retrieved and analized in an easy way."
[10:10] <lifeless> BradB: what is tla making you wait on?
[10:11] <BradB> lifeless: tla undo took 10 minutes. then tla star-merge.
[10:11] <lifeless> garh. macos right ?
[10:11] <BradB> os x, yes.
[10:12] <lifeless> bsds have al these wonderful knobs, if you take the time to find them.
[10:13] <kiko> there's an inode cache cache?
[10:13] <BradB> lifeless: almost surely not. the problem is an implementation that depends on thousands of small files. this is extremely slow on linux too (when put side-by-side something like svn or cvs), but only magnified on HFS+.
[10:14] <lifeless> BradB: its sluggish on linux because it stats 3* over what it needs to.
[10:15] <lifeless> I can diff a full kernel tree here in 10-14 seconds, with optimised code I expect that to be 5-7 seconds.
[10:16] <lifeless> Now, I'm happy to have a debate about whether the small files are the real killer or not ... but I assure you, regardless, that performance will be improved.
[10:16] <BradB> lifeless: i don't think a full kernel has anything near what a revision library has in it, in terms of sheer number of small files.
[10:16] <lifeless> in a rev library, only 1 revision is hit to do tla changes, and at most 2 to do tla star-merge.
[10:17] <BradB> lifeless: are you sure about that? if so, why do i see output like:
[10:18] <BradB> * patching for this revision (rocketfuel@canonical.com/launchpad--devel--0--patch-799)
[10:18] <BradB> * patching for revision rocketfuel@canonical.com/launchpad--devel--0--patch-797
[10:18] <BradB> * patching for revision rocketfuel@canonical.com/launchpad--devel--0--patch-798
[10:18] <BradB> * patching for revision rocketfuel@canonical.com/launchpad--devel--0--patch-799
[10:18] <BradB> ...
[10:18] <BradB> that looks like N versions being hit
[10:18] <BradB> well, N revisions of a version
[10:19] <lifeless> thats building a basis tree. In that case, its 1 hit to get the basis, a hardlink tree build to get the new one, then N patch applications.
[10:19] <lifeless> In the incoming queue for baz, we increase patch application speed hugely, by caching relevant data between patches.
[10:20] <lifeless> but yes, when a reference needs to be built, it does have more work to do.
[10:20] <daf> gaah, revision library corruption
[10:20] <lifeless> daf: holy cow batman. Any idea what caused it? (Are you using hardlinked trees?)
[10:20] <daf> lifeless: no, and yes
[10:21] <lifeless> if you use hardlink trees, use the userspace COW library
[10:21] <daf> baz doesn't tell me which files are corrupted
[10:22] <daf> what userspace COW library?
[10:22] <lifeless> yah, you probably need to nuke that particular project from the tree
[10:22] <daf> COW is what I need
[10:22] <lifeless> fl-cow
[10:22] <lifeless> http://xmailserver.org/flcow.html
[10:22] <lifeless> bah, project from the revlib
[10:23] <lifeless> its in debian too, I think.
[10:23] <sabdfl> lifeless: morning!
[10:23] <lifeless> morning
[10:23] <sabdfl> BradB: nearly done with that refacotr on bugmessage
[10:23] <BradB> cool
[10:23] <sabdfl> good news, we can use the messages for all sorts of other things as well now
[10:24] <BradB> like assignments and infestations?
[10:24] <daf> lifeless: cunning!
[10:24] <sabdfl> and bounties, and todo assignments...
[10:24] <daf> lifeless: it would be nice to know what's causing the corruption, though
[10:25] <lifeless> daf: right, its something that didn't break the link before modifying.
[10:25] <daf> lifeless: and I don't see it in Debian -- if it's useful, I might ITP
[10:25] <BradB> sabdfl: is it possible to get someone to fix page test diff output, and to implement a browser:form directive?
[10:25] <daf> lifeless: yeah, I know, but I don't remember using anything that doesn't unlink-on-write
[10:25] <lifeless> know culprits include autoconf, vim without the 'set backcopy=no' option.
[10:26] <daf> hmm, not autoconf -- this is Launchpad
[10:26] <sabdfl> daf: go ahead and upload to ubuntu, anyhow
[10:26] <daf> sabdfl: ok
[10:27] <daf> well, nuking the last 10 revisions from the revlib fixed it
[10:28] <kiko> BradB, need some help? "someone"?
[10:28] <BradB> kiko: "someone" as in "on billable time" :)
[10:29] <kiko> hey, use salgado
[10:29] <BradB> kiko: these two bugs are costing more to not have than to create, i think.
[10:32] <sabdfl> BradB: again, i thought stevea / stub had a plan for both
[10:32] <sabdfl> if you have a better plan, holler
[10:32] <sabdfl> kiko: is salgado not beavering away at the karma problem?
[10:32] <BradB> sabdfl: are you saying yes, they can go ahead and fix that stuff though? i already asked SteveA, but there were no specific plans.
[10:32] <sabdfl> "they"?
[10:33] <BradB> sabdfl: well, say, SteveA if he's up for it. :)
[10:34] <sabdfl> sure
[10:34] <kiko> sabdfl, yes, he's got a foothold on the foaf bits, but if it's urgent I can always assign him to help bradb.
[10:34] <SteveA> BradB: the form directive is next on my big project list after getting ftp working for james.
[10:34] <SteveA> the tales expression stuff should help you out until then.
[10:34] <BradB> i'm trying it now
[10:35] <SteveA> there is a concrete plan for the context stuff
[10:35] <SteveA> which is next on the list after that
[10:35] <BradB> absolute url, you mean?
[10:35] <sabdfl> kiko: no, i'd prefer salgado to get cracking on the karma problem
[10:36] <sabdfl> it's not a big job, the foundations should be laid by es-conf so we can just set policy
[10:36] <kiko> okay.
[10:36] <sabdfl> kiko: let's switch to private chat, spec out the karma stuff there for him
[10:36] <SteveA> be nice if someone can look into page test output
[10:37] <SteveA> as to make it deal with ... in diffs nicely
[10:37] <SteveA> I'm not sure exactly what would be involved, though
[10:39] <BradB> maybe stub could do that if sabdfl/stub agree. stub seems to have the second most Zope 3 core dev experience among LP'ers.
[10:39] <SteveA> cprov: what are you up to at the moment?
[10:39] <SteveA> this isn't a thing that requires lots of zope3 ken
[10:39] <SteveA> it is more about text processing
[10:40] <sabdfl> guys, i'm concerned that the pace of commits is dropping off
[10:40] <sabdfl> except for bradb and stub
[10:40] <carlos> BradB: they have another tool with the word "rumps" in Spanish ;-)
[10:40] <sabdfl> es-conf is where we have to prove to the distro team we can deliver god tools for them
[10:40] <cprov> SteveA: working on soyuz/people and  related permission issues
[10:41] <SteveA> do you have time for a small project to improve the output of failing pagetests?
[10:42] <cprov> SteveA: yep
[10:42] <SteveA> great.  do you know what needs to be done?
[10:43] <cprov> SteveA: no, please explain 
[10:44] <BradB> SteveA: http://paste.husk.org/2030 # another raw copy and paste of what may be a problem with the "selected" adapter.
[10:44] <BradB> well, htmlform adapter, that is.
[10:45] <SteveA> cprov: when you have a pagetest that fails, and that pagetest includes various use of ... to say "match whatever here", then the diff you get is hard to read
[10:46] <SteveA> cprov: it is hard to read because it is a diff of what is produced against literally what is in the page test text file
[10:46] <SteveA> cprov: so, it includes lots of lines starting with "+" where you have ... in the text of the page test
[10:46] <SteveA> what it should do is to take account of the ..., so that you don't have spurious +s
[10:46] <cprov> SteveA: I see
[10:47] <SteveA> the way I'd approach the problem is to make a couple of page tests
[10:47] <SteveA> that fail, but use ...
[10:47] <SteveA> and then to work on improving the output for these
[10:48] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: dynamic contruction of soyuz/people pages (patch-800)
[10:48] <cprov> SteveA: do you have any idea about what should be a "better output" for it ? 
[10:50] <SteveA> not really.  you'll have to experiment a bit
[10:51] <BradB> cprov: one of the keys is that stuff like
[10:51] <BradB> -...
[10:51] <BradB> +foo
[10:51] <BradB> +bar
[10:51] <BradB> +baz
[10:51] <BradB> shouldn't show.
[10:51] <BradB> i.e. if the *only* "expected" was an elision, that's just a decoy, ignore it.
[10:53] <cprov> SteveA: BradB: I'll try something in that way this night, offline, then tomorrow morning I can show you something, ok ?
[10:54] <sabdfl> patch-800 :-)
[10:54] <BradB> cprov: sure, that'd be great
[10:54] <SteveA> cprov: that's great.  thank you
[10:55] <sabdfl> SteveA: is that for our upload system?
[10:56] <BradB> sabdfl: speaking of messages being used everywhere, i can already see that we need to be able to not only add a "note" field on assignments and infestations (which i mentioned mdz having mentioned before), but we want to be able to do that on every change we make on an assignment or infestation. e.g. i'm marking bugs "Closed" in Malone right now, i want to explain what the final decision was on them, but i have nowhere to put tha
[10:56] <BradB> t.
[10:56] <cprov> so, good night, see you tomorrow
[10:57] <sabdfl> bradb: that can now be a message in the main bug, that is *also* referred to by the bugassignment
[10:57] <BradB> ah
[10:57] <BradB> interesting
[10:57] <BradB> that's a useful aggregation
[10:57] <sabdfl> lifeless: what time does stub usually come on stream?
[10:58] <sabdfl> yes, having separate Message's is going to be fun
[10:58] <sabdfl> we can point at them from almost anywhere now
[10:58] <sabdfl> :-)
[10:59] <SteveA> sabdfl: yes, it is for the uploads thing that elmo wrote the policy part of
[10:59] <sabdfl> SteveA: cool! looking fwd to having that capability up and running
[11:00] <SteveA> now that I've found the location of this bug, I can fix it, push the fix upstream, stitch elmo's code into a stand-alone server, and give it back to elmo to hack on
[11:04] <BradB> daf: when are we going to see dilys telling us bugs were fixed?
[11:04] <BradB> i'm marking a bunch Closed right now, and was hoping to flood the channel
[11:05] <BradB> :P
[11:07] <BradB> daf: something like "$person fixed bug #$id "foo doesn't work"' would be dandy
[11:07] <BradB> s/id/id:/
[11:08] <BradB> ooo, $person isn't quite simple yet, but anyway
[11:08] <lifeless> sabdfl: not sure, sorry.
[11:09] <sabdfl> lifeless: call time?
[11:10] <lifeless> Just going into an arch team meeting. 30 minutes would be better.
[11:15] <sabdfl> lifeless: ok
[11:17] <BradB> SteveA: did you take a look at that error i'm now getting on your new version of the tales patch?
[11:23] <SteveA> BradB: what kind of object is term in ?term  ?
[11:25] <BradB> SteveA: ah, good point, it's not what i meant to put in there. /me makes a slight mod and tries again.
[11:28] <SteveA> but, I guess I could coerce the object to be a string or something just in case
[11:28] <SteveA> that would give you a more reasonable error I expect
[11:34] <sabdfl> whoot! message refactor passes all tests
[11:34] <sabdfl> just waiting for stub to approve the db changes
[11:43] <lifeless> sabdfl: ring me now please
[11:44] <sabdfl> what's the way to specify the starting contents of a text input?
[11:44] <sabdfl> value="xxx" doesn't work
[11:45] <sabdfl> lifeless: pick up ;-)
[11:46] <BradB> sabdfl: write it in the textarea, i think
[11:46] <BradB> (i presume you meant a textarea)
[11:51] <BradB> sabdfl: did you intentionally remove the comment widgets, btw?