[12:21] <kiko> cprov-afk, replied.
[12:22] <kiko> jamesh, do you understand what happens when you commit locally in a non-lightweight checkout?
[12:22] <kiko> jamesh, how do you get that commit into your repository branch?
[12:23] <jamesh> kiko: if it is a heavyweight checkout, the commit will be made both locally and remotely
[12:23] <jamesh> unless you do "bzr commit --local"
[12:23] <kiko> jamesh, and if you do --local
[12:23] <kiko> how does it get moved up?
[12:24] <jamesh> kiko: I haven't looked at the code, but I believe it is essentially (1) check that local branch is up to date, (2) try to commit to local branch, (3) push that commit to remote branch
[12:24] <jamesh> if (3) fails, the change gets rolled back locally
[12:25] <jamesh> kiko: if you pass --local, (3) gets skipped
[12:25] <kiko> jamesh, okay. but now your checkout and the repo are out of sync. how do they sync up?
[12:25] <jamesh> you do a commit without --local
[12:25] <kiko> ah. and then it pushes all pending commits?
[12:26] <jamesh> yeah
[12:27] <jamesh> I think "bzr update" might also send pending local commits
[12:27] <jamesh> lifeless said that if your local commits form a divergance from the remote branch, "bzr update" will do a merge
[12:28] <kiko> I see. interesting
[12:28] <jamesh> good for shared branches where other people might be committing
[12:29] <kiko> yeah
[12:31] <jamesh> the current workflow I use is to have a copy of my repo locally, and rsync the entire repo to sodium when I want to publish changes I've made
[12:31] <jamesh> I then use lightweight checkouts of the local repo, so that commits go directly into the repo
[12:32] <kiko> jamesh, you use rsync instead of push? why?
[12:33] <jamesh> kiko: I push all my branches in one go
[12:33] <kiko> is there an advantage to that, though..?
[12:34] <jamesh> I was using this workflow when I switched to a repo back when we were using weave branches still
[12:34] <jamesh> back then it was definitely a win over sftp push
[12:34] <jamesh> it might not be as much now
[12:53] <kiko> spiv, ping?
[12:57] <sladen> bradb: tags!!!!
[01:19] <lifeless> sabdfl: http://people.ubuntu.com/~robertc/lp-depends/ if you need the lp-deps, until Etienne publishes his ones
[02:48] <Solarion> Is there a problem with bug submission?  I get "Please fix the problems listed below" without any problems listed below!
[02:50] <kiko> Solarion, hmmm. can you tell me exactly what you are doing?
[02:51] <Solarion> I'm trying to submit a bug to ubuntu, url https://launchpad.net/distros/ubuntu/+filebug
[02:51] <Solarion> I had javascript disabled initially, which may have caused the trouble.
[02:52] <kiko> Solarion, there is no JS requirement in that form. so tell me what you are doing
[02:52] <kiko> did you add a sumary or description?
[02:53] <kiko> ah
[02:53] <kiko> it doesn't say they are required.
[02:53] <Solarion> it reported having blocked JS
[02:53] <Solarion> [it being NoScript] 
[02:53] <Solarion> I have a package selected, and a summary, and Further Information
[02:53] <kiko> well, the only JS there is used to render the menus AFAICS.
[02:53] <Solarion> ah
[02:53] <kiko> Solarion, which package?
[02:53] <Solarion> Inkscape
[02:53] <kiko> how did you select it?
[02:53] <Solarion> typed it in
[02:54] <Solarion> a drop-down list popped up next to it after (failed) submission
[02:54] <kiko> ah.
[02:54] <Solarion> ah-ha
[02:54] <kiko> that's a known bug
[02:54] <kiko> click on the list, select an item from it (even if it is a single-item list) and try submitting again.
[02:54] <Solarion> I had typed "Inkscape" and the drop-down list had "inkscape" and somehow things were unhappy
[02:54] <Solarion> typing "inkscape" worked
[02:55] <Solarion> however, there should be some text to say that was what failed.  :)
[02:55] <kiko> yeah
[02:58] <Solarion> ah well.  works now.
[03:00] <kiko> cool
[05:00] <mpt> Gooooooooooooooooood afternoon Launchpadders!
[05:03] <jsgotangco> hey
[05:12] <mpt> SteveA, pong
[05:19] <mpt> spiv, ping
[05:20] <spiv> mpt: pong
[05:22] <mpt> spiv, I spent 40 minutes last night trying to work out how to make "ssh sodium" work, including reading the man page
[05:22] <spiv> mpt: ouch
[05:23] <mpt> Can you put me out of my misery? :-)
[05:23] <mpt> https://sodium.ubuntu.com/~andrew/paste/filebailL8.html
[05:23] <spiv> mpt: pastebin your ~/.ssh/config?
[05:23] <spiv> Heh.
[05:23] <mpt> The last section doesn't make any difference, either to chinstrap's workiness or sodium's non-workiness
[05:23] <spiv> mpt: As I said yesterday, you need to duplicate the contents of your *.ubuntu.com section in your sodium section.
[05:24] <spiv> mpt: You don't need it for chinstrap, because chinstrap is the only system directly accessible from outside.
[05:24] <spiv> mpt: (hence the ProxyCommand)
[05:24] <mpt> by "duplicate in" do you mean "add to", or "use to replace"?
[05:24] <spiv> "add to"
[05:25] <spiv> Specifically, you need the ProxyCommand in the "Host sodium" section.
[05:25] <mpt> That was one of the things I tried, and I got some error about stdin not being a terminal
[05:25] <mpt> one moment
[05:25] <mpt> huh!
[05:26] <mpt> it works
[05:26] <mpt> thank you :-)
[05:27] <spiv> mpt: https://sodium.ubuntu.com/~andrew/paste/file8khb9Y.html is the relevant bits of mine, if you want to compare
[05:27] <spiv> You're welcome :)
[05:29] <spiv> mpt: heh :)
[05:30] <stub> mpt: You can make that 'Host chinstrap chintrap.ubuntu.com\nHostName chinstrap.ubuntu.com'
[05:30] <stub> mpt: So you won't need the domain name
[05:37] <mpt> (look out, it's a chintrap!)
[05:39] <spiv> stub: haha
[05:42] <spiv> stub: I look forward to reviewing code where you have "aththert" and "clathth" statements ;)
[05:47] <mpt> thuffering thuckertaththh
[06:26] <stub> lifeless: I'm not clear what LoomEntry.name is supposed to be.
[06:26] <stub> lifeless: oic. don't worry.
[06:48] <stub> lifeless: So how are we going to access LoomEntrys ? Will we need to retrieve all looms for a given revision in order of sequence? Do we need to look them up by name?
[07:14] <lifeless> stub: thanks
[07:14] <lifeless> privmsg..
[07:50] <mpt> bother
[07:50] <mpt> PQM seems to think my branch is still on chinstrap for some reason
[07:51] <spiv> mpt: If you do a "bzr push --remember sftp://sodium.ubuntu.com/...", the location info in your branch will be updated.
[07:52] <mpt> spiv, that's what I did
[07:52] <mpt> and it updated .bzr/branch/parent
[07:52] <spiv> mpt: What are you using to generate PQM requests?
[07:52] <mpt> but not .bzr/x-push-data
[07:52] <spiv> Hmm.
[07:52] <mpt> So I've updated that manually, but I feel dirty for doing so
[07:53] <mpt> and my submit script has MYURL=$(cat .bzr/x-push-data | sed -e 's|^\(.*\):/|sftp://\1/|g')
[07:55] <spiv> x-push-data isn't the right thing to read.
[07:56] <spiv> It's not a bzr thing; that's left by bzrtools' rspush command only afaict.
[07:56] <spiv> The correct place is in your ~/.bazaar/branches.conf
[07:57] <spiv> I guess the right thing to do is use the pqm-submit plugin, rather than your submit script, but I haven't got any experience with that yet.
[07:57] <mpt> branches.conf refers to sodium for this branch
[07:58] <mpt> but maybe that's because I did another push after updating x-push-data?
[07:59] <spiv> branches.conf should have been updated when you did the "bzr push --remember".
[08:00] <mpt> oh, right
[08:00] <mpt> so it's just the submit script that's wrong
[08:00] <spiv> Right.
[08:00] <spiv> Because nothing should be using x-push-data anymore.
[08:01] <mpt> And because branches.conf has multiple lines per branch, that's not an awk-able problem
[08:02] <spiv> Hmm, I think it probably is gawk-able, but it would be dirty.  The right answer is to stop using shell hacks, and to use the proper pqm-submit plugin.
[08:04] <spiv> mpt: https://launchpad.canonical.com/WorkingWithSharedRepositories has a section on WorkingWithSharedRepositories
[08:07] <spiv> mpt: Er, a section on "Sending Merge Requests to PQM", rather.
[08:08] <mpt> Yes, that's what I guessed you meant :-)
[08:08] <mpt> thanks
[08:08] <spiv> mpt: I'm glad your telepathy is workiing :)
[10:15] <einheit_> good morning
[10:20] <jamesh> lifeless: rocketfuel-built on sodium.u.c does not seem to be updating.
[10:41] <lifeless> jamesh: thanks, fixed
[10:41] <lifeless> jamesh: or not
[10:41] <lifeless> its in cron
[10:41] <lifeless> elmo: is cron workin on sodium?
[10:43] <lifeless> elmo: ah. Can you please install baz on sodium? Its used by a library that probes for tree types. I'll fix the script to be happy without it.
[10:43] <lifeless> but for now ...
[10:44] <jamesh> lifeless: the pending-reviews page is updating, so cron must be working
[10:44] <lifeless> ok, going home from mpools, when baz is installed it will start updating
[10:52] <SteveA> Znarl: ping
[11:14] <SteveA> jamesh, lifeless: james t. has installed baz on sodium.
[11:15] <jamesh> SteveA: cool.  We should see if rocketfuel-
[11:15] <jamesh> built is updating in a little while then
[11:19] <mpt> Where do I get urlutils from? It doesn't seem to be mentioned in any Ubuntu package description
[11:20] <sabdfl> mpt: pqm-submit failing for you?
[11:20] <mpt> yes
[11:21] <sabdfl> i had that too - apparently the trick is to revert the pqm-submit plugin to revision 11
[11:21] <mpt> My first time using it
[11:21] <sabdfl> but i'm not sure how one does that
[11:21] <mpt> heh
[11:26] <mpt> sabdfl, cd ~/.bazaar/plugins/pqm-submit; bzr revert -r 11
[11:27] <mpt> oh, hooray for hiding the bounty tracker
[11:33] <sabdfl> mpt: bzr revert does not seem to actually make the revisions disappear
[11:36] <mpt> sabdfl, true, bzr revno gave me the same after as before, but bzr pqm-submit worked after where it didn't before
[11:54] <sivang> morning
[11:56] <mpt> I broke PQM :-(
[11:56] <mpt> Spads?
[11:57] <Spads> mpt: tell me a story.
[11:58] <mpt> Spads, once upon a time there was PQM status served at http://pqm.launchpad.net/
[11:58] <mpt> About five minutes ago, it changed to a directory listing
[11:58] <mpt> and now, it won't respond at all
[11:59] <Spads> Aha
[11:59] <Spads> so what were you doing at the time?
[11:59] <mpt> clicking Reload
[11:59] <Spads> haha
[11:59] <Spads> aha, I see
[11:59] <Spads> let me look at that
[11:59] <mpt> thankew
[12:00] <jamesh> Spads: it is supposed to proxy to another machine running a PQM status page
[12:00] <Spads> ah, I believe I know what this is
[12:01] <Spads> We are doing some recovery work, and had to take down the machine that is doing the proxying.  We have a temporary system in place, but the downtime is unavoidable, I'm afraid.
[12:01] <elmo> we can fix that
[12:02] <Spads> We have the technology.
[12:05] <SteveA> launchpad developers: see my message to the launchpad mailing list about how to get access to your branches and other data that was on chinstrap. 
[12:05] <sabdfl> Spads: is pqm continuing to do what it was doing, just the display is borked?
[12:05] <sabdfl> i had a landing in the queue too
[12:06] <SteveA> pqm should be fine
[12:06] <SteveA> except for its web UI
[12:06] <sabdfl> i'll wait for the failure message, then
[12:07] <elmo> pqm web UI is back
[12:10] <mpt> thanks elmo
[12:16] <sabdfl> SteveA: think we can get edge.launchpad.net / crack.launchpad.net / beta.launchpad.net up and running for 1.0?
[12:16] <ddaa> lifeless: is that a bug in the pqm display that it thinks that merge request for branches on sodium are for "other projects", or does that mean that I got my merge request wrong?
[12:17] <SteveA> sabdfl: depends what else is on stuart's plate.  I'll talk with stub.
[12:19] <ddaa> I mean on pqm.launchpad.net
[12:20] <mpt> 'mpt@myrealbox.com is not permitted to commit to /home/pqm/archives/thelove/bzr/+trunk'
[12:20] <ddaa> and it's actually my merge request was wrong
[12:20] <mpt> ugh
[12:21] <jamesh> mpt: if you do "bzr pqm-submit --dry-run -m message", you can see what the email would look like
[12:21] <jamesh> it will print the submission request to the terminal rather than sending it, so you can see if it looks wrong
[12:21] <SteveA> right... that's the hardcoded default for the pqm-submit plugin
[12:22] <SteveA> you need to update the text in your ~/.bazaar/branches.conf
[12:22] <SteveA> I'd like branches.conf to work differently
[12:22] <SteveA> so that you can give a "root path" location
[12:22] <mpt> I did that
[12:22] <SteveA> and specify the pqm for all things below that
[12:22] <mpt> following the text in WorkingWithSharedRepositories
[12:23] <jamesh> mpt: is there a section in ~/.bazaar/branches.conf for your branch as well?
[12:24] <mpt> yes
[12:24] <jamesh> mpt: if you have sections for $REPOSITORY and $REPOSITORY/$BRANCH in your branches.conf file, bzr will ignore the settings in the [$REPOSITORY]  section
[12:24] <mpt> I was wondering that
[12:24] <jamesh> which is a pain, since some commands will automatically create the [$REPOSITORY/$BRANCH]  section
[12:24] <mpt> Should I remove all the branch-specific parts from the file?
[12:24] <mpt> (since they're all Launchpad branches)
[12:25] <jamesh> you can either do that or copy the settings from the repository section to each of the relevant branch sections.
[12:26] <mpt> With the former, I get a "Not a branch" error
[12:26] <mpt> so I'll try the latter
[12:28] <mpt> ... and so does the latter
[12:31] <mpt> ah, pqm_branch = push_location
[12:32] <mpt> hmm, no, pqm thinks that's a non-pqm-managed branch
[12:35] <mpt> hooray
[12:42] <SteveA> hi stub 
[12:43] <stub> Morning
[12:58] <sabdfl> hey stub, how's progress on CanonicalPillarNames?
[12:59] <stub> sabdfl: Up for review
[12:59] <sabdfl> that's awesome, thanks for getting it nailed
[01:00] <SteveA> stub: jamesh is sorting out the final touches on the python demo server
[01:00] <SteveA> there are some questions about how to set up the incoming email
[01:00] <stub> Nothing in my mailbox. jamesh - wassup?
[01:01] <sabdfl> stub: will you brief brad, bjorn, others on places where it can be used to simplify things?
[01:01] <sabdfl> for example, malone email interface
[01:01] <stub> sabdfl: Ok. I'll add an agenda item to this weeks Launchpad meeting
[01:01] <SteveA> brad won't be there
[01:01] <jamesh> stub: I haven't yet set up the cron jobs for incomming email handling or the outgoing bug mail handler.  I have the details for the POP email box now
[01:02] <SteveA> nor will bjorn
[01:02] <SteveA> so, this week's launchpad meeting isn't a great venue for that
[01:02] <jamesh> I just need to know how the cron jobs should be set up, and where to put the POP3 configuration
[01:02] <stub> Hmm... ok.
[01:02] <SteveA> mail to launchpad list may be better
[01:02] <jamesh> perhaps we can just adapt what's being used in production/
[01:02] <jamesh> ?
[01:02] <SteveA> followed up by a note for next week's lp meeting
[01:03] <stub> jamesh: Yes. Just looking there to refresh my memory ;)
[01:19] <carlos> stub: hi, do you have sometime to talk about my migrate-translations branch?
[01:20] <stub> carlos: sure
[01:20] <carlos> stub: we got it done, but we are trying to optimize it a bit (it took 6 hours to migrate translations from breezy to dapper)
[01:20] <carlos> stub: ok, thanks
[01:20] <carlos> stub: danilos suggested to use a temporary table to store all information so we don't need to do similar queries 4-5 times
[01:20] <carlos> like we do with current code
[01:21] <carlos> I we would like to know your opinion about that
[01:21] <stub> Makes sense. Temporary table, or even a real one.
[01:21] <danilos> stub: they were all nested selects
[01:21] <carlos> stub: this is the current diff (without the optimizations)
[01:21] <carlos> stub: https://sodium.ubuntu.com/~jamesh/pending-reviews/carlos/launchpad/migrate-translations/full-diff
[01:22] <stub> Sure. It is a standard optimization technique. You probably need to create indexes on the temp table to speed up its subsequent usage.
[01:22] <carlos> stub: yeah, we were wondering whether we can create indexes there
[01:22] <carlos> stub: could we just use the usual syntax to do that?
[01:23] <stub> yes
[01:23] <danilos> stub: btw, if our temporary tables ends up being like 3M rows, doing inserts directly from that won't be too slow?
[01:24] <stub> danilos: I don't follow you sorry.
[01:25] <danilos> stub: well, we want to do something like "insert into something (blah, blah) from select (foo, bar) from temporary_table;"
[01:25] <stub> temporary tables being 3M rows long isn't a problem. Inserts using that as source data won't be slow if you are doing a bulk insert (iNSERT INTO FOO (bar,baz) SELECT bing, bong FROM temp_table), or one-at-a-time inserts provided you have created a suitable index.
[01:25] <danilos> stub: ah, ok, great, that's exactly what I was wondering
[01:25] <stub> It would be one of the faster ways of inserting 3 million rows
[01:27] <carlos> stub: ok, thank you very much
[01:27] <danilos> stub: thanks for the help ;)
[01:28] <stub> danilos: You probably won't want to insert all 3 million rows at once though, as that would lock the destination tables for an unacceptable amount of time. So you might need to do the insert in batches, using an ID column (INSERT INTO something(blah, blah) FROM select foo, bar from temp_table where id BETWEEN 1000 AND 2000;
[01:29] <stub> carlos: That script should probably be run in READ_COMMITTED isolation level. (just add isolation=READ_COMMITTED as a parameter to initZopeless. READ_COMMITTED can be imported from canonical.database.sqlbase)
[01:30] <carlos> stub: what does it ?
[01:32] <stub> carlos: It means your migration script won't die with a serialization exception half way through. file:///usr/share/doc/postgresql-doc-8.1/html/transaction-iso.html for the theory
[01:32] <danilos> stub: we won't be inserting 3m rows, this is just the data we will be using, extrapolated somewhat with outer joins (we need it all for some checks)
[01:32] <carlos> stub: ok, thanks
[01:32] <stub> carlos: Oh... add 'import _pythonpath' to the top of your script so I don't have to.
[01:32] <carlos> ok
[01:33] <carlos> stub: what's the reason begin that if we are not using _pythonpath ?
[01:33] <stub> carlos: If you don't add it, I have to when running it on production so script can find the modules it needs to import.
[01:34] <carlos> oh, I see
[01:34] <stub> (because it is easier than arsing about setting environment variables)
[01:34] <carlos> so we are actually using it ;-)
[01:34] <carlos> ok
[01:34] <carlos> I was not sure about its utility
[01:36] <SteveA> sivang: ping
[01:37] <sivang> SteveA: pong
[01:54] <lifeless> ddaa: your target url should be sodium.ubuntu.com
[01:54] <lifeless> ddaa: thats what in the config.
[01:54] <ddaa> lifeless: the problem was different
[01:55] <ddaa> specifically, I updated pqm-submit, and the pqm_branch option is now a user option instead of a branch option
[01:55] <lifeless> ddaa: er, its always been both
[01:55] <ddaa> mh?
[01:55] <jamesh> lifeless: rocketfuel-built still seems out of date, and baz is installed now
[01:56] <ddaa> so it fell back to the bzr-dev default
[01:56] <ddaa> anyhow, I got it "working"
[01:56] <ddaa> I have limited time to investigate that sort of issue
[01:56] <ddaa> this "default" for the pqm branch seems like a bad idea to me
[01:56] <lifeless> sftp sodium.ubuntu.com fails on sodium
[01:56] <lifeless> which is whack
[01:57] <elmo> lifeless: eh
[01:58] <elmo> oh, I know why
[01:58] <elmo> lifeless: should work now
[01:58] <lifeless> ok, rf-built should update preoplery now
[01:58] <lifeless> spelling good I am at
[02:00] <lifeless> jamesh: 3828 correct?
[02:00] <sabdfl> (12:58:44) sabdfl: hmm... Product permissions are a bit of a mess
[02:00] <sabdfl> (12:58:54) sabdfl: it seems Rosetta admins have launchpad.Admin on all products
[02:00] <sabdfl> (12:59:15) sabdfl: and Product.owner (plus lpadmins) is the only person with launchpad.Edit
[02:00] <sabdfl> (12:59:35) sabdfl: and now matsubara has allowed Product.owner to be edit by anybody with Product.owner
[02:00] <sabdfl> (12:59:53) SteveA: this is a #launchpad discussion, not a #bzr one
[02:00] <sabdfl> (12:59:54) sabdfl: how does the transfer-of-ownership protocol work?
[02:01] <jamesh> lifeless: looks better now.  Thanks
[02:02] <lifeless> np
[02:02] <SteveA> carlos and danilo are discussing some database stuff right now.  matsubara and salgado will be around in an hour or so.
[02:03] <salgado> we're here already
[02:03] <jamesh> sabdfl: previously product owners had launchpad.Admin on their products, so they could transfer ownership
[02:03] <SteveA> oh, hi salgado... early riser!
[02:05] <jamesh> sabdfl: the security adapter for IProduct/launchpad.Admin has a comment pointing to https://launchpad.net/products/rosetta/+bug/753 above it
[02:06] <sabdfl> jamesh: do we want Foo.owner to have launchpad.Admin on the foo, as a rule?
[02:09] <jamesh> sabdfl: there are some cases where we use launchpad.Admin to give owners more rights (where other people might have launchpad.Edit permissions)
[02:09] <jamesh> sabdfl: and other areas where launchpad.Admin is used to restrict access to administrators (LP admins, rosetta admins or some other team)
[02:10] <jamesh> it'd probably be good to use different permission names for these two cases
[02:11] <sabdfl> jamesh: agreed. i think we need to take time to talk about the permission system for LP generally
[02:13] <SteveA> sabdfl: I have a bunch of changes to this pending coding, based on what we've discussed over the past several months
[02:14] <SteveA> these are incremental changes, because it is a big risk to pull everything out and replace it all at once
[02:14] <SteveA> this is something we should talk through at the infrastructure sprint in a couple of weeks
[02:17] <sabdfl> agreed
[03:02] <SteveA> the london sprinters go to lunch
[03:04] <danilos> me go to lunch, me go to lunch, me go to lunch ;)
[03:13] <elmo> jamesh: thanks - that RT ticket just made my day
[03:14] <matsubara> stub: apparently there's something wrong with dilys@muse. Should I remove all reference to it from lp code?
[03:39] <stub> matsubara: It is hard coded? Sure.
[04:09] <jamesh> matsubara: are the error reports you're seeing coming from carbon.ubuntu.com?
[04:10] <matsubara> jamesh: yes
[04:10] <jamesh> matsubara: there are some problems with how the outgoing email cron job interacts with the mail whitelist we've got in place (i.e. it doesn't handle the rejection), and dilys is just the first address it tries
[04:11] <jamesh> it isn't on the whitelist
[04:13] <carlos> I need to so another code update on staging, is there anyone using it atm ?
[04:13] <carlos> it will take 5-10 minutes
[04:14] <carlos> s/so/do/
[04:15] <matsubara> jamesh: I see, but stub suggested that I should remove dilys@ from lp code anyway. Nobody's using "her" AFAICT
[04:15] <carlos> no complains?
[04:15] <carlos> 5
[04:15] <carlos> 4
[04:15] <carlos> 3
[04:15] <carlos> 2
[04:15] <carlos> 1
[04:15] <carlos> 0
[04:15] <malcc> Anyone up for a quick review of https://sodium.ubuntu.com/~jamesh/pending-reviews/malcolmcleaton/launchpad/bug-54032/full-diff ?
[04:16] <SteveA> malcc: just did
[04:16] <SteveA> one comment:
[04:16] <SteveA> and one question
[04:17] <jamesh> matsubara: I suppose so.  I was just pointing out the cause of the failure
[04:17] <SteveA> the question is, does the doc test change actually test the code change?  it isn't clear from the diff what the meaning of the doctest change is, because there is no documentation visible in the diff.
[04:17] <SteveA> the comment is:
[04:17] <SteveA>  pub_careful = False
[04:17] <SteveA> -if not (options.careful or options.careful_publishing):
[04:17] <SteveA> +if options.careful or options.careful_publishing:
[04:17] <SteveA>      pub_careful = True
[04:17] <SteveA> 
[04:17] <SteveA> why use an 'if' there?
[04:18] <carlos> staging is back to live
[04:18] <SteveA> you can just say pub_careful = options.careful or options.careful_publishing
[04:19] <malcc> I'll add some doc to the doctest
[04:19] <matsubara> jamesh: thanks.
[04:19] <malcc> And yes, that would be shorter
[04:27] <SteveA> jamesh: when you have a spare few minutes, please join #bzr to talk about the pqm-submit plugin
[04:27] <kiko> hullo
[04:31] <lifeless> gnight all
[04:32] <malcc> SteveA: Changes made, new diff here: https://sodium.ubuntu.com/~andrew/paste/fileUoBLtd.html
[04:32] <SteveA> malcc: not only shorter but I think clearer
[04:33] <SteveA> fewer items on the mental stack needed to understand what's going on
[04:33] <malcc> SteveA: Yes I agree.
[04:33] <carlos> SteveA, kiko, stub, lifeless: Could you remove/hide this bounty? https://launchpad.net/bounties/0
[04:33] <SteveA> and reads from python into english easiy
[04:33] <SteveA> looks good
[04:33] <SteveA> is "careful publishing" explained elsewhere in the doc?
[04:34] <kiko> carlos, I don't see how that bounty is worse than any other, tbh. we should just remove them all.
[04:34] <carlos> kiko: well... that one doesn't have any content ;-)
[04:34] <carlos> the others are more user requests and others... are offering money to implement those features
[04:34] <malcc> SteveA: Hmm, no
[04:37] <stub> carlos: done
[04:37] <carlos> stub: thanks
[04:39] <malcc> SteveA: https://sodium.ubuntu.com/~andrew/paste/fileJZ1AUe.html
[04:40] <SteveA> malcc: that reads well to me.  good stuff.  r=me.
[04:41] <malcc> SteveA: Thanks
[06:13] <kiko-fud> spiv?
[07:04] <elmo> jamesh: I think 15216 is now done - do you want to check?
[07:08] <jamesh> elmo: It seems to be able to open the mail box.  I'll see if it can process the email
[07:08] <jamesh> elmo: yep.  Looks like it is all working.  Thanks
[07:09] <elmo> jamesh: cool
[07:17] <elmo> SteveA: please revert the MigrationToSodium changes when you get a sec, chinstrap is back
[07:19] <jamesh> elmo: I've updated the wiki page to remove the note
[07:19] <elmo> jamesh: thanks
[08:30] <jamesh> SteveA: http://wiki.python.org/moin/LaunchpadTracker <- that's the info I've put up so far
[08:36] <niemeyer> salgado: Ping
[08:37] <salgado> niemeyer, pong
[08:37] <niemeyer> Heya!
[08:37] <salgado> how's it going?
[08:37] <niemeyer> Everything going smoothly :)
[08:37] <niemeyer> Quick questoin:
 SteveA: What do you guys do when you have to insert something unique in a table, reusing an existent value when it's already there?
 SteveA: Do you usually lock the whole table, use a db function, or catch the error and invalidate the transaction?
[08:38] <SteveA> salgado: I remembered the "single request per person" shipit issue
[08:38] <SteveA> and we tried a couple of things
[08:39] <SteveA> but I can't remember what they were exactly
[08:39] <salgado> yeah, that's right. let me see if I remember
[08:40] <salgado> so, niemeyer, you actually want to know the different things we tried or just if/how we solved it in the end?
[08:40] <SteveA> one issue was to do with the isolation level used
[08:41] <salgado> yeah, because the constraint was hard to write we first tried to lock the table in EXCLUSIVE mode, IIRC.  but that didn't work because of the isolation lever we used
[08:41] <niemeyer> salgado: I'd like to know which solution turned out to be the best and why, if possible. I kind of understand a few different paths to do it.
[08:41] <SteveA> niemeyer: talk with stu when he's arround tomorrow
[08:41] <jamesh> niemeyer: inside a transaction you'd usually perform a select to see if a row exists, and then add the row if it doesn't
[08:42] <niemeyer> jamesh: That's what I'm doing now, except that I have to catch an error on the insert, since someone else might have inserted it before.
[08:42] <niemeyer> jamesh: So it becomes a function, to avoid invalidating the whole transaction
[08:42] <niemeyer> Which is of course boring to work with
[08:43] <niemeyer> I was wondering if you have a clever way to handle it
[08:43] <niemeyer> "SELECT OR INSERT" is what I need.. ;-)
[08:44] <salgado> oh, it's not the same issue as we have on shipit then. the problem we had on shipit is that there's a race condition on this solution
[08:45] <jamesh> niemeyer: if you are doing this with transactional isolation, that shouldn't be possible
[08:45] <niemeyer> jamesh: What shouldn't be possible?
[08:45] <niemeyer> salgado: Our problem is also related to a race condition on the insert, but perhaps a different one
[08:46] <jamesh> niemeyer: someone else to insert a row between the select and insert (at least from the transaction's point of view)
[08:46] <jamesh> you might get a conflict at the end of the transaction, but that can happen for other reasons too
[08:46] <niemeyer> jamesh: Yes, but that's actually the "problem" in this case
[08:47] <niemeyer> jamesh: I'm trying to proctect against the error.. if two different threads/applications are trying to insert/select the same data, they should get the same id, rather than one of them blowing up.
[08:47] <niemeyer> jamesh: Does this explanation make sense to you? I might rephrase it if not
[08:48] <salgado> niemeyer, I think Stuart suggested retrying the one that blows up as a way of fixing this. this way it'd see the data preciously inserted by the first
[08:49] <salgado> (I have no idea how you do this retry, though)
[08:49] <salgado> and s/preciously/previously
[08:49] <niemeyer> salgado: That's what I'm doing now
[08:49] <niemeyer> salgado: But then it needs a function to catch the error and retry gracefully
[08:49] <niemeyer> I guess we're on the same page
[08:50] <salgado> yeah, I guess so too, but better check with stub to make sure
[08:50] <niemeyer> Cool, I'll do that
[08:50] <salgado> he may have something in mind already
[08:50] <niemeyer> Thanks for the info
[08:50] <salgado> np
[11:06] <exarkun> why do I get spammed whenever a bug gets marked as a duplicate of a bug I filed?
[11:06] <exarkun> and how do I make it stop without also losing the ability to get notified when the bug I filed gets resolved?
[11:07] <kiko-afk> exarkun, well..
[11:08] <kiko> exarkun, the way it currently works is that if your bug has dupes, you will get notified of those dupes.
[11:08] <kiko> exarkun, my feeling is that it's hard to draw a line and decide that that specific change (a bug being marked as a dupe of your bug) is not worth mentioning to the bug reporter
[11:09] <exarkun> where is the config option I can toggle to change that behavior, since _I_ am perfectly capable of drawing that line? :)
[11:09] <kiko> it might, for instance, contain further information on the bug. or it might  not be a dupe and you might be in a good position to clarify that. I can think of other [potentially non-contrived even!]  use cases where it is useful to know if a bug has been filed as a duplicated of yours
[11:10] <kiko> heh
[11:10] <kiko> well, you mean apart from .procmailrc, exarkun? :-)
[11:10] <exarkun> I can guarantee that I will have absolutely no ability to provide any insight whatsoever on this bug at any point in the future.  All I want to know is when it is fixed.
[11:11] <exarkun> Okay, what's the regexp that matches the message text when a ticket is fixed?  I've never gotten a message like that. ;)
[11:11] <kiko> one sec.
[11:11] <jamesh> kiko: we've put the launchpad entry in for the bug tracker comp: http://wiki.python.org/moin/LaunchpadTracker
[11:11] <kiko> jamesh, I saw your message a while back, thanks for doing that
[11:11] <jamesh> I just wrote that page up today, actually
[11:11] <kiko> jamesh, meaning a few hours back -- you ircd to SteveA did you not?
[11:12] <kiko> exarkun, the text will look like this:
[11:12] <kiko>        Status: In Progress => Fix Committed
[11:12] <kiko> exarkun, or <whatever> => Fix Committed
[11:12] <radix> Or just => Fix, since there's also Fix Released
[11:12] <kiko> true.
[11:12] <kiko> radix, note also that:
[11:12] <kiko> ** Bug 52584 has been marked a duplicate of this bug
[11:12] <Ubugtu> Malone bug 52584 in launchpad "tab order incorrect for "+addticket" pages" [Untriaged,Unconfirmed]  http://launchpad.net/bugs/52584
[11:12] <kiko> that's how a duplicate notation look liks
[11:13] <kiko> so you could potentially match on "Bug \d+ has been marked a duplicate of this bug"
[11:13] <jamesh> kiko: yeah.
[11:13] <kiko> radix, what bug is this that has so many duplicates being reported?
[11:13] <radix> no idea
[11:13] <radix> it's his bug
[11:13] <kiko> radix, whose bug?
[11:13] <kiko> err
[11:13] <kiko> sorry, got confused there all of a sudden
[11:13] <radix> are you mistelling? ;-)
[11:13] <radix> :)
[11:13] <kiko> exarkun, what bug is that?
[11:14] <kiko> radix, that's what you get for participating in a discussion you didn't start <wink>
[11:14] <radix> yeah, I need to quit that
[11:14] <exarkun> 54083 or maybe 54071 or maybe one of the bugs that was a duplicate of one of those bugs or that one of those bugs is a duplicate of
[11:14] <kiko> exarkun, so there /is/ a bug there
[11:15] <kiko> and that is that it is impossible to find out which duplicate is causing you to be messaged when you were subscribed to a dupe but not to the main bug.
[11:15] <exarkun> I would file a bug but I am afraid of overrunning my mail quota.
[11:16] <kiko> exarkun, that bug is already reported, AAR.
[11:16] <exarkun> Okay :)
[11:16] <exarkun> Thanks for the help.
[11:17] <kiko> you're most welcome -- please let me know if you have any other issues. I hear you with regard to a user option, but I am a bit loathe to add a specialist option there.. until I have a more solid set of use cases at least
[11:57] <Mez> er - why is nmap showing katapult as it's upstream ?
[11:59] <Mez> ping: anyone