/srv/irclogs.ubuntu.com/2010/02/22/#bzr.txt

mkanatlifeless: A modification to "bzr patch" would probably be the place, yeah?00:01
lifelessmkanat: yes, that might make sense. or import-patch, a new command.00:02
mkanatYeah. Although I'd like to see "patch" do other nice things, too (like understand renames), so it might just make sense to improve it.00:03
bob2meoblast001: struct module isn't that bad00:20
lifelessmornink poolie00:36
pooliehello there00:36
lifelessmkanat: I think it would surprise people to have 'patch' do a commit ;). I think there are two use cases, but probably we want common code paths internally.00:37
mkanatlifeless: Well, yeah, doing a commit would be surprising for sure. :-)00:37
lifelessmkanat: but thats what I want it to do; commit on a temp branch and merge back00:37
mkanatAh, okay.00:37
lifelessmkanat: and you said you'd like that as well :>00:38
meoblast001bob2: yeah, but how can i guarantee that it's 4 bytes bigendian?00:38
mkanatlifeless: Yeah, for sure. bzr diffs include date info, so you could even do it automatically.00:38
lifelessmeoblast001: by the format you give it00:38
mkanatlifeless: If no revno was specified.00:39
meoblast001ah, ok00:39
lifelesspydoc struct00:39
lifelesshmm, functions there have bad docs; you'll want the python online docs.00:45
lifelessmbarnett: are you around00:46
jmlthe pypy people are interested in getting benchmarks from various python projects00:46
lifelessawesome00:47
jmldoes bzr have some benchmark scripts to share?00:47
lifelessusertest00:47
lifelessits kindof a plugin00:47
pooliehello jml00:47
lifelessit runs bzr against real-worldish scenarios00:47
lifelessand the 'bzr' it runs can be differnet versions, or run in customised ways00:48
lifelessso it should be easy to tweak it to say 'pypy bzr' rather than 'bzr'00:48
lifelesspoolie: I've just submitted a 'use subunit' patch to PQM, that spiv reviewed over the weekend.00:48
poolieok...00:49
lifelesspoolie: should be no fallout, but if there is its my fault, sic me onto it.00:49
poolieactually when you mean 'to pqm'00:49
pooliedo you mean changing pqm, or changing bzrlib?00:49
lifelesspqm.bazaar-vcs.org00:49
lifelesschanging bzrlibs Makefile00:50
poolie:/00:50
poolieyou know sometimes people say "but i'll give people a chance to object"00:51
lifelesspoolie: I was of the understanding that it was simply tuits missing to do this; so I found somes.00:51
lifelesspoolie: it was up in the queue for over a day; and its easy to back out00:51
lifelesspoolie: I didn't think it was contentious00:51
pooliei think it's worth a try00:53
pooliei'm just saying saturday night to monday morning is not really likely to have people see it00:53
poolieso this makes subunit a hard dependency to run bzr check00:53
pooliethat might be worth documenting00:54
lifeless'make check' specifically00:54
poolies//make check00:54
lifelessnot selftest, which is what we generally advise.  Yes, good point, I'll add some doc00:54
pooliei'm pretty sure that pqm's mail stuff is not 8-bit clean therefore it the stream parser will crash00:55
pooliebut we'll see00:55
poolieistr it reads it as lines and reinserts \ns00:55
pooliebut it may work00:55
lifelesspoolie: I don't think that the weekend should really be specially treated; we only have 24 hours of non-core-people-working coverage regardless; and we more core committers than staff paid to work on bzr [at this point in time]00:56
lifelesspoolie: once it lands I'll send a broken patch through to see how it handles it00:56
pooliei think there's pretty clearly more activity from both staff and nonstaff developers during the week00:57
poolieanyhow00:59
poolieif that works it'll be good00:59
poolies/if/when :)00:59
lifelesswe don't have an official quiet-period where things approved get a chance to be looked over by other people at the moment; I don't understand why patches put in in the weekend should get one, and ones in the week not get one.01:00
lifelessI'm not trying to be difficult, I really don't see the connection01:00
lifelesswe do have a 'use judgment' angle; the flipside to that is that people will01:01
exarkunI'm noticing some issues with running 'bzr svn-import' against the same repository multiple times concurrently01:02
exarkunI'm going to file a ticket or two about it I guess01:02
lifelesspoolie: it failed to land anyhow; subunit isn't in the chroot (which is odd because we had it in the chroot a few months back; possibly before we upgraded the chroot though)01:04
poolieso01:04
pooliepeople tend to have comments on changes to infrastructure01:04
poolieit's just polite to give them a chance to express those opinions01:04
poolieconsidering the review concluded at midnight on sunday(!) looks a bit like routing around it01:05
pooliei think the actual change is fine01:05
lifelessIf I had submitted it at 1am I could understand that perspective; but I submitted it at 11:30am or so01:06
pooliei expect it will break but it should be fixable, and it's worth fixing01:06
lifelessvery much not avoiding things; everything to do with spiv's sleep schedule :)01:06
lifelesssomething about this leaves me unsettled. I need to mull on it I think.01:07
mkanatmwhudson: Any new crashes?01:21
twbI'm rolling binary packages from a bzr repository.  I want a way to get a short, monotonically increasing string to describe the repository state.  Bonus points if it is in <last tag name>+<revisions since last tag> format rather than just <number of revisions>.01:25
twbThe git equivalent is "git describe --tags" and the hg equivalent is hg parents --template '{latesttag}+{latesttagdistance}\n'01:25
lifelesstwb: bzr revno01:25
lifelessyou'll want to set the 'is a mainline' flag to stop people pushing altered trunks though01:26
lifelessappend_revisions_only=True01:26
mwhudsonmkanat: no01:30
mkanatmwhudson: Okay.01:31
twbv=$(bzr tags | tail -1); v=${v%% *}+$(($(bzr revno) - ${v##* }))01:34
fullermdThat sounds...   unuseful.01:36
fullermdFor one things, tags sorts by the tag name, and for another, they may not be on integral revnos.01:36
twbYou have fractional revnos?01:37
fullermdNot exactly, but they read that way.01:38
twbBlergh01:38
twbThese packages aren't important, so I'll use that shitty code until it breaks01:38
twbIs it just me, or is bzr export REALLY slow on a --lightweight checkout?01:40
fullermdIf the branch is very far away, that wouldn't be surprising.01:40
twbIt's lp:dosage, fwiw01:41
fullermdAcross the internet easily qualifies as "very far away"   :)01:42
twbI notice that bzr export eats the existing file instead of writing to a temp file and then doing a final move.01:44
twbi.e. while bzr export is running, or if it is interrupted, the old tarball is bogus01:44
fullermdWell, it's probably not really designed for its destination to exist already.01:45
=== Adys_ is now known as Adys
=== Adys is now known as 5EXAAEJ3X
=== khmarbaise_ is now known as khmarbaise
meoblast001lifeless: in the doc for bzrlib.branch.ChangeBranchTipParams, i can't find anything about commit author02:25
lifelessmeoblast001: branch/repository.get_revision(new_revid).authors02:30
meoblast001ah, ok02:30
meoblast001uh oh, bazaar choked on my plugin02:30
meoblast001lifeless: is the bzrlib.branch.ChangeBranchTipParams my branch/repository?02:32
meoblast001or is that a member of it02:32
meoblast001or do i just use "branch"02:32
lifelessmeoblast001: it has a branch attribute02:33
lifelesssee the pydoc for i02:33
lifelessit02:33
meoblast001ah, ok, i see now02:33
meoblast001there seems to be a lot of "branch" in Bazaar :P02:33
meoblast001lifeless: is there a place i could go to see all the members of this branch, that way i can stop nagging you :P02:34
lifelessmeoblast001: pydoc + the source02:36
lifelessthere are apidocs mwhudson publishes somewhere02:36
meoblast001i tried bzrlib.branch.ChangeBranchTipParams.branch, but got no Python documentation found for 'bzrlib.branch.ChangeBranchTipParams.branch'02:36
meoblast001but then again, i shouldn't be guessing, as this is my first day ever writing Python code02:37
meoblast001and i don't even know where the source to those .py files lie02:37
lifelessmeoblast001: just do pydoc bzrlib.branch.ChangeBranchTipParams02:48
lifelessthe branch attribute is a 'bzrlib.branch.Branch'02:48
meoblast001lifeless: i did that02:48
lifelessso pydoc bzrlib.branch.Branch02:49
meoblast001i'm so lost of what derives from what, what already exists02:49
meoblast001ok, thanks02:49
meoblast001lifeless: i can't find repository or get_revision02:50
meoblast001oh yay, i managed to crash pydoc02:52
=== wgrant_ is now known as wgrant
meoblast001lifeless: is there an online documentation for this?03:31
meoblast001it would probably be easier for me03:31
lifelessyes, mwhudson has apidocs published03:32
lifelessmwhudson: where are they?03:32
mwhudsonlifeless: python.net/~mwh/bzrlibapi03:32
mwhudsonmight be a bit out of date now actually03:32
lifelessmeoblast001: ^03:32
meoblast001ok, thanks03:33
meoblast001i hope i can do this >.<03:33
lifelessyou could mail the list and ask for help03:33
lifelessfolk do that quite regularly.03:33
meoblast001i think my Python knowledge is just horrible03:33
meoblast001i can't understand if i'm supposed to be using branch.Branch, or branch.repository, or result.branch03:34
meoblast001probably would be easier for me to write a Git plugin but i don't use Git03:35
lifelessmeoblast001: the params object you're given has a branch attribute03:35
lifelessthat is a branch object03:36
meoblast001ok03:36
meoblast001that's what i was wondering03:36
lifelessmeoblast001: it is an instance of bzrlib.branch.Branch03:36
meoblast001there is no get_revision() function in Branch though, according to the docs03:36
lifelessmeoblast001: thats right. you want branch.repository.get_revision()03:36
lifelesswhere branch is the branch object you're starting from03:37
meoblast001hm, it's not listing a member named repository in the docs03:37
meoblast001http://python.net/~mwh/bzrlibapi/bzrlib.branch.Branch.repository.html < also does not exist03:37
lifelessmeoblast001: so your function is called with an object. I'm going to call that 'params'03:38
lifeless'params.branch' is a Branch instance.03:38
meoblast001ah, ok03:38
lifelessBranch instances have a repository attribute. So 'params.branch.repository' is an instance of bzrlib.repository.Repository03:39
lifelessmeoblast001: you can examine this interactively.03:39
meoblast001what does get_revision(new_revid) return?03:39
lifelessdefine your hook function as03:39
lifelessdef myhook(params):03:39
lifeless    import pdb;pdb.set_trace()03:39
lifelessnow do a pull or something in a test branch03:40
lifelessyou'll drop into pdb03:40
lifelessyou can use 'pp params' to pretty print params03:40
lifelessdir(params) to see the attributes of params03:40
meoblast001yay03:40
meoblast001found the revision object03:40
lifeless'vars(params)' to see its variables and their values03:40
meoblast001hm, can't find a list of its members though03:41
meoblast001only its member functions03:41
lifelessthe revision object docs are a bit weak03:41
lifelesshowever03:41
lifelessvars(revisionobject)03:41
lifelessshould print something sensible03:41
meoblast001silly me, // does not comment Python code >.<03:42
* meoblast001 needs to use #03:42
lifelessusing pdb will probably help you explore the system a lot03:43
lifelesseven if it has a little learning curve03:43
meoblast001yeah, i'm getting no arguments passed to my function03:43
meoblast001Post_Change_Branch_Tip() takes exactly 1 argument (0 given)03:43
meoblast001i set it with branch.Branch.hooks.install_named_hook ('post_change_branch_tip', Post_Change_Branch_Tip, 'Announce Commit')03:43
lifelessshow me the definition of Post_Change_Branch_Tip03:44
meoblast001http://pastebin.com/d79e4cd5003:44
lifelessline 46 is your problem03:45
lifelessyou are calling your hook; don't do that.03:45
lifelessonce its installed bzr will call it at the right time.03:45
meoblast001oh >.<03:46
meoblast001how did i leave that there03:46
meoblast001i was doing some independent tests without Bazaar for a bit there, must have forgotten to remove that line03:46
lifelessif you put '  import pdb; pdb.set_trace()' at line 25, then when bzr calls it, you will be put into a debugger.03:46
meoblast001just to check that my backend could properly process the results03:46
meoblast001it doesn't actually list the vars03:47
meoblast001isn't that what vars() is supposed to do?03:47
lifelessno03:48
lifelessits a function03:48
lifelessso you need to print its output03:48
lifelessif you are in a read-evaluate-print-loop, results are printed automatically03:48
meoblast001ah, ok03:48
lifelesswhich is what pdb would put you in03:48
meoblast001print vars (result.branch.repository.get_revision (new_revno))03:50
meoblast001not printing03:50
meoblast001does vars return a string?03:50
* meoblast001 googles03:50
meoblast001lifeless: this pdb, is it extremely useful?03:53
lifelessyes03:54
lifelessmeoblast001: just put this in as your hook function03:54
lifelessdef myhook(params):03:54
lifeless    import pdb;pdb.set_trace()03:54
lifelessand then install it as normal - bzrlib.branch.Branch.hooks.install_named_hook('....03:55
meoblast001still nothing03:56
meoblast001the only real issue i'm having is here03:56
meoblast001print vars (result.branch.repository.get_revision (new_revno))03:56
meoblast001nothing is being printed03:56
meoblast001i'm going to do a full test on this, see if it all runs well04:00
lifelessmeoblast001: well, by nothing, what do you mean?04:04
lifelessif you do a pull or ap ush with the little hook I gave you, bzr should put you into a interactive prompt04:04
lifelessnote that you need to do that locally, not on your server04:04
lifelessbecause on the server it can't show you the prompt :)04:04
meoblast001ok04:04
meoblast001well i'm going to do this one last test, then i'll try that if it does not work04:04
meoblast001lifeless: aparently new_revid doesn't exist04:05
meoblast001i'm assuming i need result.new_revid?04:06
lifelessyes04:06
meoblast001lifeless: all works except for one thing04:07
meoblast001i need a way to obtain the branch name04:08
meoblast001oh, and an integer of the latest revision number04:08
meoblast001i have a var dump though04:08
lifelessmeoblast001: branch.nick may be what you want; and new_revno from the params object04:13
meoblast001lifeless: i guess there's always result.branch._last_revision_info_cache[0]?04:13
meoblast001ah, silly me04:13
lifelessno, _ prefixes mean 'private' by convention in bzr04:13
meoblast001new_revno is there04:13
meoblast001ah, ok04:13
meoblast001ok, let's fire up the server and see how well this works04:14
meoblast001oops, forgot to copy over the new version04:15
meoblast001lifeless: what's bother me is that it's not giving me any information on where the error is04:16
meoblast001i thought that was the advantage to using an interpreted language04:16
meoblast001bzr: ERROR: exceptions.TypeError: coercing to Unicode: need string or buffer, int found04:16
meoblast001that's all i get04:16
lifelessmeoblast001: I have suggested that you test locally04:16
meoblast001yes, i'm doing that04:17
lifelessmeoblast001: if you are testing on your server, you'll need to check the .bzr.log on the server04:17
meoblast001this seems to be getting called at every bzr commit and bzr uncommit04:17
meoblast001so i am getting output04:17
lifelessmeoblast001: if you're testing locally, set BZR_PDB=104:17
lifelesse.g.04:17
lifelessBZR_PDB=1 bzr uncommit04:17
meoblast001as a shell variable?04:17
lifelessyes04:18
meoblast001get the exact same output04:18
meoblast001is result.new_revno an integer?04:18
lifelessit should put you into pdb04:18
meoblast001because i treat it as one04:18
meoblast001it didn't04:19
lifelesswhy did you say 'forgot to copy over the new version' and 'time to fire up the server', if you are testing locally.04:19
meoblast001ah, that's because this is a networking plugin04:20
meoblast001the server is a plugin for my IRC bot04:20
meoblast001it runs in a thread, waiting for signals from version control systems giving it details about the commits made04:20
lifelessok04:20
lifelessand the branch you are testing on is on your local disk04:20
lifelessand not a bound branch04:21
lifelessand you're testing by doing a commit in it ?04:21
meoblast001it's just a random branch i created with bzr init04:21
meoblast001and it's on my local system04:21
lifelessok04:21
meoblast001i'm testing by doing a commit04:21
lifelesswhat bzr version?04:21
lifelesscheck ~/.bzr.log, it should have the full backtrace there regardless04:22
meoblast001Bazaar (bzr) 2.0.204:22
meoblast001hm, i wonder if i typed something wrong, it's complaining about no get_revision function04:23
meoblast001bzr: ERROR: exceptions.AttributeError: 'BzrBranch7' object has no attribute 'get_revision'04:23
meoblast001and i'm correct ;) i did type something wrong04:23
meoblast001dang, it just keeps finding problems04:25
meoblast001bzr: ERROR: exceptions.AttributeError: 'BzrBranch7' object has no attribute 'respository'04:25
lifelessrep not resp04:25
meoblast001oh >.<04:25
meoblast001i've been all out of it today04:26
meoblast001lifeless: yay, it works now :)04:29
meoblast001<nitrobot> randproj: Revision Committed by Braden Walters <meoblast@aol.com>: Initial Commit04:29
lifelessgreat04:29
meoblast001now i just need to get the commit number off of it04:29
meoblast001lifeless: i'd have to bot come in here to show you guys, but i'd probably get kick/banned ;)04:29
lifelessI think for a commit or two it would be fine04:32
lifelessis vcannounce generic?04:32
lifelesslike cia?04:32
lifelessif so you might want to publish your plugin for others to use04:32
meoblast001lifeless: my bot is a plugin-based bot04:34
meoblast001written in C04:34
meoblast001Nitrobot is the name of the bot, VCAnnounce is the name of the plugin i just wrote04:34
meoblast001and i will be publishing my plugin in the nitrobot-plugins package04:35
meoblast001i'll connect him now for one test04:35
nitrobotrandproj: Revision 2 Committed by Braden Walters <meoblast@aol.com>: Added file "file"04:36
meoblast001lifeless: see :)04:36
meoblast001!quit thepassword04:36
lifelessgrats04:36
meoblast001thanks04:37
meoblast001and also thanks for the great amount of help you provided on the Python side04:37
lifelessde nada04:37
meoblast001lifeless: once i'm done cleaning up the code (will probably do that tomorrow or later tonight), should i publish a link to where the plugin can be found somewhere?04:38
meoblast001as you were saying i might want to publish it04:38
lifelessyes, the bzr plugins wiki page :)04:38
meoblast001ok, the Bazaar plugin is no good though without the bot and the bot plugin, so i'm assuming a link would be most appropriate?04:38
spivlifeless: yes, Command.add_cleanup is in 2.104:42
meoblast001hopefully that script will be as useful to others as it will be to me04:42
meoblast001i hated having 2 bots sitting in my channel at the same time04:42
lifelessspiv: doh04:45
lifelessmeoblast001: well you'll want a link to the bzr plugin, and a link to your bot04:45
meoblast001ok, i'll do that tomorrow :)04:46
meoblast001actually, i only have to do endianness conversions right now really, so i  could finish that up tonight04:46
mwhudsonmore up to date api docs at http://people.canonical.com/~mwh/bzrlibapi/ now btw04:54
lifelessmwhudson: can't use the old api?04:55
mwhudsonlifeless: you mean old server?04:56
lifelessurl04:56
mwhudsonit's not very well maintained these days04:57
lifeless<- brain has melted04:57
mwhudsoni'll set up a redirect04:57
lifelessmwhudson: can you delete them at least, so that people don't read only stuff04:57
mwhudsonsure04:58
spivlifeless: why doh?  Hmm, well I guess I ought to have listed some of that change in NEWS under API Changes (as well as Improvements, where it is mentioned)05:03
lifelessspiv: because that makes it harder to rethink the change to be better05:03
spivlifeless: *nod*05:04
spivlifeless: (I thought that might be what you meant, but wanted to be sure)05:04
spivFWIW it landed on Jan 11.05:04
spivSo, relatively late in the cycle, but still 10 days before rc1.05:05
spivAnd a full month before the final release.05:05
spivIdeally that should have been ample time to notice any issues :/05:06
meoblast001now, time to do a test install on my server05:07
meoblast001where would i put a plugin if i want it to apply for every user?05:07
lifelessspiv: I don't think you did anything wrong.05:09
mwhudsonlifeless: redirect in place05:09
lifelessspiv: its roughly the halting problem to always know in advance.05:10
spivlifeless: sure05:10
spivlifeless: I'm just wondering aloud if there's a deficiency in our process that we easily improve05:10
spivlifeless: nothing is springing to my mind, but then, my mind isn't at work today either :)05:11
lifelessspiv: poolie and I spent some time today talking about a similar problem.05:11
pooliehullo05:11
lifelessI don't think tht the obvious options [more mandatory review time and similar] would help.05:11
lifelesssorry, woud be a net improvement05:11
spivAh well, I'm happy to have provided another data point then, as well as another feature ;)05:11
spiv*nod*05:11
pooliewhat is the 'it' here?05:12
lifelesspoolie: Command.run not being safe to call anymore.05:12
spivThe best I can think of is "get more testing from plugin authors and plugin users", but even that's a bit vague.05:12
spiv(and easier said than done)05:12
lifelesspoolie: which didn't stand out during review; it was obvious to the right eyeballs, but how do you get them on it in time?05:12
spivI do think I made a mistake in not writing an API Changes entry for that change.05:13
spivI'm not sure that would have brought it to the attention of the right eyeballs, but it might have.05:13
lifelessI think that if you had thought it was an API change you might have noticed it as being a problem, in fact05:13
spivRight, there's also a degree of chicken-and-egg in that statement :)05:14
meoblast001is there a location for global Bazaar plugins?05:14
spivmeoblast001: the system-wide bzrlib/plugins dir, IIRC05:14
spivmeoblast001: (check the location of bzrlib by running 'bzr version')05:14
meoblast001ok, thanks05:14
lifelessspiv: perhaps one thing we could say is 'ask yourself, does this change the safety of calling what I changed, or does it stop calling something it once [promised] to call'05:23
lifelessspiv: as part of the regular 'think about it' part of review05:23
lifelessEOD; see you tomorrow.05:43
thumpernight lifeless05:48
pooliespiv, lend me your thoughts on the retrospective06:05
spivpoolie: basically, +106:06
spivpoolie: picking the focus features is the tricky bit06:08
spivpoolie: that's worked ok for us when we've had a really clear goal for a release, e.g. "2a must be robust and fast before we can declare 2.0"06:09
pooliespiv, was there anything else you particularly noticed as good or bad this cycle?06:49
spiv(sorry, was interrupted by baby)06:50
spivThe motivation for focus features seems harder when they are just "nice to have"06:50
spivI think the cycle worked pretty well.  It still seems hard to get plugin authors to reliably notice problematic changes until after a release, though.06:53
spivBut I think even there we've probably done better than previously.06:53
vilahi all !07:09
lifelessspiv: I think the issue with plugins is that many plugin authors don't run trunk, and don't want to07:13
* vila wonders why he's a channel operator....07:13
lifelessspiv: and the current api churn on trunk makes it even less attractive07:13
spiv*nod*07:13
lifelessvila: you have chanserv /nickserv setup to auto op you when it can07:13
vilalifeless: sure, but why *can* I ? :D07:13
lifelessspiv: I'd like us to totally reverse the deprecation policy to what we had before; that is a much nicer rid, and conducive to running trunk07:13
lifelessvila: because you're a core committer07:13
lifelessvila: please change your setup though, to not op you automatically; helps avoid channel trolls07:14
spivlifeless: yeah, abentley at least seems to find the current policy worse07:14
vilalifeless: but you and spiv and poolie are too .... ha ok07:14
lifelessvila: yes, see<-07:14
pooliehello vila, welcome back07:15
vilahey poolie !07:15
lifelessspiv: I replied to the thread saying I too find it worse.07:15
poolieso07:15
spivI definitely thinking we need to find a way to encourage plugin authors (and keen plugin users) to track bzr trunk.07:15
pooliei get discouraged from running plugin tests07:16
pooliethere seem to be too many broken windows07:16
pooliei don't think the previous policy for apis was good enough07:16
spivBut I'm not a plugin author, so I'm happy to let those who are make suggestions about what will help.07:16
pooliethere were some cases where people spent half an hour changing something and days working out how to deprecate it07:16
pooliethis is not a good tradeoff07:17
lifelesspoolie: I agree that that is a bad ratio; I've not experienced it myself07:17
pooliei think this was a patch of vila i had in mind07:17
poolieyes07:17
spivI think in general a plugin cannot rely on something like 'require_api(x.y.z.b3)' until x.y.z.b3 has been released, but this means that trunk is almost always a version that a plugin can't safely rely on.07:18
spivBut at the same time, we want plugins to be tested with trunk.07:19
lifelessspiv: that aspect of the current system doesn't bother me so much07:19
lifelessspiv: its the 'whaaay, lets not deprecate anymore' that bothers me07:19
vilapoolie: the one about SubUnitFeature ?07:19
pooliei forget07:19
vilapoolie: I didn't spend *days*, merely hours and mainly because the parameter order tricked both of us and led to an infinite recursion IIRC07:20
vilabut I miss the context so...07:20
* vila triages mail07:21
poolieso07:21
pooliei think if it's easy to keep something supported we should07:21
pooliei don't think we should take for granted that doing any large amount of work in bzr is worthwhile07:21
lifelesspoolie: we didn't take that for granted before07:24
lifelesspoolie: I landed lots of patches of the kind 'too hard to deprecate, not doing so'07:24
poolieok07:24
lifelesspoolie: we don't seem to be trying at all at the moment07:25
lifelessand I have two problems with this, as a user/advocate07:25
lifelessfirstly stable release to stable releae should do deprecations where we can07:25
lifelesswe've made these release jumps 6 months of rolled up work07:25
lifelessso they are much bigger than they were before (in potential delta)07:25
lifelessthat, to me makes the benefit of a deprecation much greater.07:26
lifelessand the risk of confusion to someone upgrading a plugin larger07:26
lifelesssecondly, deprecations add value to users - they have saved me lots of log grepping in the past, when someone else changed something.07:27
lifelessand I think this is an experience other authors have had07:28
pooliei can see how that helps authors but not users07:28
lifelesswhen a plugin stops working with no visible indication, the user has to debug this.07:29
lifelessa deprecation does two things; it keeps the plugin working, and if it fails at doing that, then it at least tells them07:29
pooliehm07:37
pooliebut it's probably not going to stop with no visible indication07:37
lifelesscompare a Warning + AttributeError vs just an AttributeError07:38
lifelessanyhow, I said this on the list07:38
lifelesswhere everyone can participate  :)07:38
pooliei'd be ok to reiterate that people should deprecate unless it is too hard07:41
poolieit seems like there might be some better option though07:41
poolieor something complementary07:41
Speedy2www.search2.net07:45
pooliespam07:52
igchi all07:58
lifelesspoolie: I'm disabling autoops08:04
lifelessigc: can you do '/msg NickServ SET NOOP ON'08:13
lifelessigc: and then leave and rejoin #bzr? testing fallout from the expanded access lists we did last week08:13
igclifeless: done08:14
lifelessok great08:14
lifelessif you need to become operator do this:08:14
lifeless /msg chanserv op #bzr08:14
lifelessan to stop being an operator08:14
lifeless /deop igc08:14
lifelessigc: actually, I think I've found the root cause, youcan undo that if yu want08:17
lifelessthee instructions to become/drop root still spply08:18
=== jamesh_ is now known as jamesh
radoeAre 2 minutes to create a new local branch from an existing branch of bzr-2.1 sources normal?09:02
poolieradoe, do you have a shared repository locally?09:03
radoepoolie: no, this test was without a shared repo, so I think it has to copy over the whole history, right?09:05
poolieyes09:05
pooliestill seems a bit slow09:05
radoepoolie: yes, I had the same feeling about beeing a tad slow in this local branching case.09:08
radoeFor more than a minute it stays at "Fetching revisions:Get stream source", having one CPU core running at 100%09:11
poolieradoe, could it be the repositories are in different formats or something?09:18
radoepoolie: both are "Standalone tree (format: 2a)". Further branching from the just-branched branch takes about the same time.09:21
CokeHi! I have a 1.5 version on server and 2.0.4 on my client, it takes like 2 minutes to transfer 62k of data, it does max 1k/s and most of the time even less. This is on a LAN!!! Needless to say, this is getting frustrating, is there a quick fix to mend this problem?09:33
poolieCoke, so the obvious first step would be to upgrade the server to 2.1 or 2.009:45
Cokeactually, there's no bzr server09:54
CokeI use sftp09:54
CokeMy bad.09:54
poolieok09:55
CokeSo there's just the 2.0.4 client09:55
pooliethat's still kind of surprising09:55
pooliewhat does bzr info show in that branch?09:55
Cokelocation, checkout of branch and format pack-0.9209:55
bialixhi poolie10:00
mathrickCoke: and you're sure you can get normal sftp transfers at better speeds?10:04
pooliehi bialix10:16
bialixpoolie: I've made 1.0.0rc2 release of bzr-explorer10:17
pooliebialix, i saw, that's great10:17
pooliethanks10:17
bialixthat's minimum I can do for Ian10:18
bialixI don't know is anybody working on including bzr-explorer to Lucid?10:19
jelmerbialix: AndrewSB is I think10:20
bialixok10:21
bialixhi jelmer10:21
bialixhave a minute? you've asked about icon10:21
jelmerbialix: He's the packager of bzr-explorer for Debian and Ubuntu, I'm not sure if he's specifically working on 1.0.0.rc2 though10:21
bialixjelmer: that's ok10:22
pooliehe'll probably do it if you poke him10:28
pooliei think ian will be away a bit this week10:28
bialixpoolie: any specific plans for 2.2? does nested trees have a chance?10:30
pooliebialix, i was just talking to vila about that10:30
pooliei think we should pick a thing10:30
poolieCoke, did you work it out?10:30
* bialix waves at vila10:30
pooliei was saying to vila maybe we should either all get onto merge/conflict, or he should leave it10:31
poolieit seems a bit slow and he's having trouble getting good reviews10:31
poolievila, if you're piloting this week you're going to be busy10:33
vilahttp://wiki.bazaar.canonical.com/PatchPilot says jam is the patch pilot this week, I plan to be *next* week10:34
* bialix nods10:37
poolieoops10:38
pooliesorry10:38
pooliemust be sleepy10:38
vilano worries, but go get some sleep :D10:41
* fullermd waves at vila.10:42
* vila waves back to fullermd and bialix enthusiastically10:43
bialixhi fullermd10:43
fullermd... some day, people in my own TZ will get their acts together and be around at the same time as I am...10:44
bialix:-)10:44
vilafullermd: why don't you just move where the sun shines during your work hours :) It really helps you know...10:45
fullermdSun...   shines?!  But what about my sensitive skin?10:45
pooliesure shines here, 37C today10:46
vilaOh, no need for direct exposure, but the light....10:46
* fullermd shudders.10:46
fullermdIt burns us, preciouss!10:46
pooliebialix, so i would like us to agree on a specific thing for 2.2, but i don't want a thread where everyone names their favourite bug10:46
* vila throws some snow balls at poolie10:46
bialixpoolie: yep10:47
pooliei recognize there's useful data in it but it just seems likely to cause disappointment if we don't go for whatever is most loudly demanded10:47
poolieooh that's nice10:47
bialixpoolie: I'm a bit tired with my scmproj and I have to rewrite big part of it, so I'm asking10:48
bialixnested trees deferred for ~ 1 year10:48
poolieso we could try to merge nested trees10:48
pooliei wonder if it's too intrusive of a way to put it in10:48
pooliein some ways we should just clear the decks and do it10:48
pooliei wonder if we can do anything in the core to allow plugins to do this really well10:48
poolieoh, there are some user questions open on lp if anyone wants to answer them10:49
vilaIdeally we should ad hooks or whatever is needed in core to *allow* a plugin (or several) to implement nested trees10:50
Cokepoolie: no luck10:50
poolieright, that would be nicer10:50
poolieok i'm going to call it a night10:50
pooliehave a good day europe10:50
Cokestill as slow10:50
vilaDoing it via plugins lower the constraints about compatibility while allowing experiments10:50
poolieright10:50
Cokenn10:50
vilapoolie: have a nice night10:50
pooliealso, maybe has a cleaner architecture10:50
bialixtoday the limit of either scmproj or bzr-externals is lack of snapshots10:51
fullermdA problem with trials like that is that figuring out just what sorta hooks are needed is the lions share of _doing_ it   :|10:51
bialixi.e. they don't record revision-ids of entire tree10:51
vilafullermd: that could be driven by the plugin authors10:51
vilabialix: revids of nested trees ?10:52
bialixvila: I'm not sure hooks will help there10:53
fullermdYeah.  Has to be, really.  But it risks turning into a long serialized HCF sorta process.10:53
jelmervila: they just point at the tip of a branch, not a specific revision10:53
bialixthere is need to run some operations recursively in all trees'10:53
jelmerwhereas nested trees in their current form only support specific revisions, not tip10:53
bialixfullermd: HCF?10:53
bialixvila: yes10:53
bialixjelmer: ?10:53
jelmerbialix: nested trees as aaron has implemented them only support snapshots10:54
vilajelmer: ':tip' as a special revid like ':null' ?10:54
jelmer(If I understand the terminology right)10:54
bialixjelmer: that's good10:54
vilaurgh, non-sense10:55
bialixjelmer: one can easily implement: for $each-subtree do bzr pull10:55
fullermdbialix: "Halt and Catch Fire".  No real relevance, I was just being whimsical.10:55
jelmervila: well, the tip of the branch, no matter what revspec you use to describe it :-)10:55
jelmervila: tip: would be one way of supporting non-snapshots with the current bzr nested tree storage format10:55
jelmerbialix: pulling a subtree is a change to the parent tree10:56
vilajelmer: hmm, I said non-sense because if you want to refer to a particular revision for a tree you don't want the nested tree to change10:56
vilaso, yes, you want some mechanism in place to update or not when you pull, merge, etc10:57
bialixjelmer: believe me: I have much more problems because of lack of snapshots10:59
bialixjelmer: I don't understand10:59
bialixwhat it means: pulling a subtree is a change to the parent tree?10:59
bialixif I change subtree I should commit this changes to parent tree, yes, that's right11:00
jelmerI think I should probably get out of this discussion because I'm only familiar with the nested tree terminology, not with the scmproj terminology.11:01
bialixI'm not very familiar with nested trees terminology, bad11:05
bialixhow nested trees called the entire saved state of all subtrees?11:06
bialixin hg they save revids to .hgsubstate11:06
lifelessbialix: it doesn't have that concept11:06
lifelessits just part of the inventory11:06
lifelessand only refers to the immediate children.11:06
lifelessits recursive, so deeper children are referred to by their containing tree.11:07
bialixso there should be a way to update inventory for desired revision11:07
lifelessyes, there is an api call11:08
bialixIIUC it's similar to textual changes?11:08
lifelessyes11:09
bialixbut the subtrees all live in separate branches, right? so I should be able to update just specific subtree11:09
bialixif there is no built-in way, then we can call API in the plugin11:10
lifelessbialix: I don't understand the question11:12
bialixlifeless: there is nested by value and by reference11:14
bialixI'm talking about by reference case11:14
lifelessyes11:15
lifelessI guet that11:15
bialixreferenced subtree lives outside main tree IIUC11:15
lifelessI don't know what you mean by 'update just specific substree'11:15
lifelessdo you mean 'update the referenced revision'11:15
bialixso if it external than we should be able to pull/push it11:15
lifelessor 'do an update on the local tree for the subtree'11:15
bialixI mean cd subtree; bzr pull11:16
lifelesssure, just do it11:16
lifelessnothing else needed11:16
lifelessthe next commit in the parent tree will notice and record it11:16
bialixbrilliant11:20
=== mrevell is now known as mrevell-lunch
=== mrevell-lunch is now known as mrevell
=== pickscrape_ is now known as pickscrape
naoki_Hi, all.15:50
naoki_https://code.launchpad.net/~songofacandy/bzr/fix-524560/+merge/1973715:51
naoki_I found 'N' mode on msdn.15:51
naoki_http://msdn.microsoft.com/en-us/library/yeby3zcb.aspx15:51
naoki_This mode means open file with os.O_NOINHERIT.15:52
naoki_And I test the mode on Linux. 'N' is just ignored.15:53
naoki_Currently, my bugfix branch make osutils.open and use it instead of builtin open.15:53
naoki_osutils.open adds 'N' on win32, osutils.open is builtin open on Linux.15:54
naoki_Can I use 'N' on Linux?15:55
naoki_If I can, I'll remove osutils.open and add 'N' for open() in transport.local15:55
Mez"secret service operation failed" ...16:04
Mezdoesn't sound good.16:04
MezI don't like secrets in my system16:04
vilaMez: And how is that related to bzr ?16:10
jelmernaoki_: that sounds reasonable16:15
naoki_manpage for fopen describe modes.16:19
naoki_posix modes: r, r+, w, w+, a, a+16:20
naoki_glibc extension (trailing chars): c, e, m, x16:20
naoki_I don't know other libc's fopen extension.16:21
naoki_Using 'N' only on win32 is safe because glibc and other libc can use 'N' for some meaning...16:23
naoki_BTW, what name is suitable for osutils.open? open_noinherit? open_safe?16:25
=== mrevell is now known as mrevell-dinner
chromakodehey folks, can you give me any suggestions on how to extract all code lines touched by a specific author?18:38
jelmerchromakode: from Python code or from the command line?18:55
chromakodeeither way is fine18:55
jelmerchromakode: from the command-line the easiest thing to do is probably to loop over all files in the working tree, run "bzr annotate" on them and grep18:56
chromakodethat's a good idea! though it won't include past code18:56
chromakodeI guess you could do it for each revno18:56
Takcould grep the log for the author, then annotate from there18:57
jelmerchromakode: from python it should be possible to find all changed lines by using a combination of the log and the annotate code18:58
chromakodethank you, I can work off that :)19:00
chromakodeif I end up writing a script to do this, I'll post it here.19:00
rubbsI'd like that ^19:00
_TiN_Hi, I'm trying server bzr through apache with mod_wsgi, and the "app" return nothing. This is my wsgi script http://dpaste.com/163148/ and the output is a clean list, just []19:43
_TiN_:-/19:43
pooliehi jam, shall we talk?21:04
=== poolie changed the topic of #bzr to: Bazaar version control | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: jam | bzr 2.1.0final has gone gold, time to build installers!
shodan45what options do I need for bzr to make a .patch file that works with patch?21:13
marienznone?21:16
marienzthat is: I'm pretty sure I've fed "bzr di" output to patch21:17
marienzshodan45: ^^^21:17
shodan45marienz, ok, then what options to patch do I need? none? because it sure doesn't work for me :/21:17
lifelessshodan45: when you apply it, pass -p0 to patch21:18
lifelessor is it p1, I think its p021:18
marienzshodan45: I think it's -p0 but it might be -p1. I usually need to try both with --dry-run.21:19
marienzactually it's probably -p121:19
shodan45ok, I thought for sure I tried both -p0 and -p1, but -p0 worked21:19
shodan45thanks :)21:19
_TiN_Howto disable the comprobation SSL certificates?22:11
_TiN_bzr push bzr+https://myurl22:11
_TiN_bzr: ERROR: Connection error: curl connection error (server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none)22:12
_TiN_/s/comprobation/check22:14
mwhudson_TiN_: using a https+urllib:// url will work i think22:16
_TiN_mwhudson: this just work on cloning, when i try push doesn't work because the protocol is bzr+http[s]22:33
bob2heh22:34
bob2can you append +urllib to that?22:34
_TiN_bob2: unsupported protocol22:35
_TiN_bzr+https+urllib or urllib+bzr+https or bzr+urllib+https22:35
mwhudsonbzr+ shouldn't be necessary22:37
_TiN_mwhudson: the push doesn't work with http[s]+urllib22:43
_TiN_mwhudson: in this link say http://doc.bazaar.canonical.com/bzr.2.1/en/user-guide/http_smart_server.html?highlight=mod_python#pushing-over-bzr-http22:43
spiv_TiN_: that doc is out-of-date, or at least misleading.  You can omit the 'bzr+' prefix on http URLs; bzr will automatically probe for a smart server and use it anyway.23:33
spiv_TiN_: you might be encountering some other problem, of course :(23:34
_TiN_spiv: noup, whitout bzr+ prefix doesn't work, but uninstall pycurl it's work :-)23:36
_TiN_thanks verterok ;-)23:36
spiv_TiN_: and https+urllib didn't work?23:37
spivOdd.23:37
verterok_TiN_: you'r welcome :)23:37
spiv_TiN_: anyway, please file a bug :)23:37
spiv_TiN_: we want this stuff to Just Work23:37
verterokspiv: heya!23:38
verterokspiv: I can't uninstall pycurl so I'm stuck with this bug ;)23:38
spivverterok: maybe you should file it then? :)23:39
spiv(Or is it already filed?)23:39
verterokspiv: I can't uninstall pycurl so I'm stuck with this bug ;)23:39
verterokspiv: I keep getting: bzr: ERROR: Unsupported protocol for url "urllib+https://trac.usla.org.ar/bzr/prueba_bzr"23:39
verterokspiv: and with reverse order, I get the user/pass prompt but: bzr: ERROR: Not a branch: "https+urllib://trac.usla.org.ar/bzr/prueba_bzr/".23:40
verterokspiv: I think it's https://bugs.edge.launchpad.net/bzr/+bug/8208623:40
ubottuLaunchpad bug 82086 in bzr "pycurl transport causes tracebacks if the server's SSL cert cannot be verified." [Medium,Triaged]23:40
spivverterok: right, https+urllib is the correct prefix23:40
spivverterok: but the https+urllib variant should work23:40
verterokspiv: so, it might be a server config issue?23:40
spivPossibly!23:41
verterok_TiN_: ^ :)23:41
spivverterok: add -Dhpss to the command line, and maybe -Dhttp too, and pastebin the ~/.bzr.log (after sanitising it for passwords etc), or attach it to a bug23:41
verterokspiv: ok23:42
spivverterok: also, perhaps try installing lp:bzr-ping, and try 'bzr ping URL'23:44
spivIt fails for me, but I don't know the username and password, so that's unsurprising :)23:44
verterokspiv: pastebin: http://pastebin.ubuntu.com/381915/23:45
* verterok branching bzr-ping23:45
_TiN_verterok: this through varnish http, and https pound+varnish23:46
spivSo, it appears to be talking to the smart server ok via HTTP23:47
spivBut then it tries to read /bzr/prueba_bzr/.bzr/branch-format23:47
spivvia regular HTTP23:47
spivAnd that gets a 40423:47
spivSo, a server config issue, I think, although bzr should give clearer errors in this case.23:47
spiv(Although perhaps bzr could try falling back to trying to read only via the smart server)23:48
_TiN_may be with AliasMatch directive23:51
verterokspiv: oh, nice. thanks for looking to the logs :)23:52
spivverterok: cool.  So please file a bug and attach that, because I'm pretty sure that bzr can do better here.  (and because I'm not really here today)23:55
verterokspiv: oh, ok.23:56
verterokspiv: will do it23:56

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!