[00:00] <jelmer> lifeless: do you have any plans to merge Dan's outstanding patches?
[00:00] <lifeless> jelmer: I've looked at all the proposed branches, I thought.
[00:07] <igc> morning
[00:17] <spiv> Morning.
[00:27] <poolie> good morning
[01:37] <jelmer> lifeless: Rather than reorganizing everything we have at the moment, couldn't we just have a new "bzr-committers" group ?
[01:42] <lifeless> jelmer: thats what I've said I'll do :P
[02:08] <jelmer> lifeless: sorry, looks like I'm just behind on mail
[02:25] <igc> mwhudson, jelmer: any ideas on bug 563118?
[02:26] <igc> mwhudson, jelmer: I can't even find where the configuration file name is defined
[02:26] <igc> Could it be a packaging issue?
[02:28] <igc> poolie: what approach should I take for 2.2b1 Windows builds? Should I use a revision on trunk or use the 2.2 branch?
[02:30] <mwhudson> igc: it might be a packaging issue i guess
[02:31] <igc> mwhudson: all I can find is loggerhead.conf.example in the code
[02:31] <igc> I can't see where loggerhead.conf is referenced though
[02:39] <mwhudson> igc: it's passed on the command line maybe?
[02:39] <mwhudson> i think jelmer has a packaging branch somewhere that has an initscript that mentions it
[02:40] <jelmer> http://bzr.debian.org/pkg-bazaar/loggerhead/unstable
[02:40] <jelmer> or deb:loggerhead for short :-)
[02:41] <jelmer> lifeless: I'm considering moving some per_repository tests into a new per_repository_vf.test_supported, does that sound reasonable?
[02:42] <igc> jlemer, mwhudson: any chance one of you can look at that bug or direct me on how to fix it?
[02:42] <lifeless> jelmer: what are they testing ?
[02:42] <igc> jelmer, mwhudson: I need to head up the hospital right now
[02:42] <jelmer> lifeless: they are the tests that rely on .revisions/.texts/.inventories existing
[02:42] <mwhudson> igc: i'll have a look, but i think it's going to be a bit tricky
[02:42]  * igc out for a few hours
[02:43] <igc> mwhudson: thanks
[02:43] <mwhudson> because we're deprecating the entry point that's used before lucid
[02:43] <lifeless> jelmer: I want those to be supported on foreign repos too
[02:43] <lifeless> jelmer: they are part of the contract
[02:43] <lifeless> I don't think its appropriate to have them unsupported anywhere
[02:45] <jelmer> lifeless: why? They rely on a specific serialization, and we don't always have access to that serialization
[02:45] <jelmer> lifeless: in particular, inventories don't exist in git/hg/svn so we have to generate an inventory manually *and* serialize it
[02:45] <jelmer> lifeless: fwiw these plugins work fine without .{texts,revisions,inventories} at the moment
[02:46] <lifeless> jelmer: see the docstring in bzrlib.repository.Repository
[02:46] <lifeless> jelmer: the meaning is per-format
[02:46] <lifeless> jelmer: the interface isn't
[02:46] <lifeless> jelmer: which is why I didn't like your mirroring onyl *part* of it last week or so
[02:46] <lifeless> its a regression in our interface, moving away from the unified keyspace
[02:47] <jelmer> lifeless: can you expand on "the meaning is per-format, the interface isn't" ? I don't understand what you mean.
[02:48] <lifeless> I mean that the serialisation is specific to the format
[02:48] <lifeless> and external code to the format knows that it doesn't know
[02:48] <lifeless> but that the graph is intrinsic
[02:48] <lifeless> all formats should be capable of generating graphs for revs, invs, texts
[02:49] <lifeless> and this is the interface to talk to that
[02:49] <jelmer> lifeless: where do we rely on graphs for invs and texts at the moment?
[02:50] <jelmer> lifeless: providing those for foreign formats would be hard to make perform well
[02:50] <jelmer> lifeless: I understand that's what's in the interface now, but I'd rather see that interface change..
[02:51] <jelmer> lifeless: ... and have vf's be part of the implementation of a particular category of repositories rather than all of them
[02:52] <lifeless> per file log
[02:52] <lifeless> inv graph we don't care about
[02:52] <lifeless> jelmer: I don't see why it imposes a performance penalty; either you have to generate the data, or you don't.
[02:52] <lifeless> if you're doing per-file log to bzr's behaviour, you need to generate the data
[02:54] <jelmer> lifeless: ok, point taken
[02:55] <jelmer> lifeless: that's just one function in the VF interface we use though, that justify requiring a VF imho
[02:55] <lifeless> the point of the vf interface is a consistent graph interface that is *not on Repository*
[02:56] <lifeless> its part of the long term fixing of repository.
[02:56] <lifeless> which you undid some of last week :(
[02:56] <lifeless> if you've got a better direction to take it, I'll happily support that
[02:56] <jelmer> lifeless: and much more, I don't see how access to serialized commits/inventories should be a public part of repositories
[02:57] <lifeless> but so far, abently's proposed 'storage' interface - a single unified graph - seems to be a likely winning contender
[02:57] <lifeless> jelmer: its been very useful so far to have it in a consistent supported manner
[02:57] <lifeless> jelmer: for repo-stats and other plugins
[02:58] <lifeless> debuggability is an important feature
[02:58] <jelmer> lifeless: I'm not saying it can't be available, just would prefer to not have it in the contract of Repository itself
[02:58] <lifeless> we have, for instance, used access to the graph to fix stacked branches
[02:59] <jelmer> nothing stops a VersionedFileRepository from existing
[03:02] <jelmer> anyway, this is a blocker for me for using the standard per_repository tests for foreign repositories
[03:02] <lifeless> jelmer: seems to me there are two positions we could take
[03:03] <lifeless> a) that bzr-svn etc are 'complete' and the tests need to be divided
[03:03] <lifeless> b) that they are not complete, and the tests primarily need to be tweaked to remove bzr-only assumptions
[03:03] <lifeless> I currently hold position b
[03:05] <lifeless> jelmer: I don't want to block you, but you seem to hold position a?
[03:06] <jelmer> lifeless: I don't consider b to be possible, unless you're happy to strip the VersionedFiles interface down to just get_parent_map() and get_known_graph_ancestry()
[03:07] <lifeless> jelmer: because you can't get raw data from svn ?
[03:07] <jelmer> lifeless: nor can I get an inventory text from git
[03:08] <jelmer> lifeless: it's also not possible to add any text
[03:08] <lifeless> jelmer: you can get the root tree node
[03:09] <lifeless> jelmer: I'm ok with making the _required_ support on the vf objects be very minimal
[03:12] <jelmer> lifeless: to just revisions.{get_parent_map,get_known_graph_ancestry}, texts.get_parent_map ?
[03:13] <jelmer> lifeless: generally the way this is structured ({revisions, texts, inventories} as serialized files) makes a lot of assumptions about the way the repository is set up that aren't true for foreign repositories
[03:13] <lifeless> jelmer: this is why I want to move to a single unified graph!
[03:14] <jelmer> lifeless: is that aaron's storage thingy?
[03:14] <lifeless> jelmer: which is one of the key complaints about that merge I keep coming back to
[03:14] <lifeless> jelmer: closely related, yes.
[03:14] <lifeless> jelmer: CHK repositories are pretty close to git internals, and the mapping structure we have works ok for them too
[03:15] <lifeless> jelmer: so, not, not just revisions & texts
[03:15] <lifeless> for instance git could support chks trivially
[03:18] <jelmer> lifeless: that doesn't mean it's easy to implement VersionedFiles on top of Git while using Bazaar file ids/revids though
[03:18] <jelmer> lifeless: anyway, do you have pointers about the unified graph?
[03:19] <lifeless> jelmer: I know, but revision_tree.get_texts takes the same interface
[03:19] <lifeless> jelmer: so its no harder
[03:20] <jelmer> lifeless: I don't have a RevisionTree.get_texts...
[03:20] <lifeless> jelmer: mumble, I forget the exact api name
[03:20] <lifeless> see what export uses
[03:21] <jelmer> iter_files_bytes() ?
[03:21] <jelmer> that doesn't return any parent keys
[03:26] <jelmer> anyway, I'd better get some sleep
[03:26] <jelmer> lifeless: thanks for the comments; I'll hold off on this for now, at least until the new better storage thing
[03:27] <lifeless> jelmer: perhaps we can talk at UDS
[03:27] <lifeless> I do want to unblock you
[03:27] <lifeless> but we seem to be unagreed about where to go
[03:27] <lifeless> I'm concerned that you seem to be busy undoing a good years worth of refactornig
[03:28] <lifeless> if you weren't, I'd be much more lassez faire about stuff
[03:28] <jelmer> lifeless: it was just one function...
[03:28] <lifeless> jelmer: no, its more than that
[03:29] <lifeless> the VF interface is a key part of stacking working
[03:29] <jelmer> lifeless: I just added a wrapper in Repository, I didn't move anything
[03:30] <jelmer> lifeless: everything else seems to be happy calling Repository.*
[03:30] <lifeless> to be clear, I don't think you're doing bad code, but we - you and I at a minimum - havent' figured out a foreign <-> core compromise
[03:30] <jelmer> lifeless: right
[03:30] <jelmer> lifeless: talking about this at UDS might be a good idea indeed
[03:31]  * jelmer really gets some sleep now
[03:31] <lifeless> gnight
[03:36] <raof> Congratulations on bzr-git, by the way.  I've been using it to browse the kernel tree's commit log, because bzr's default log format is vastly superior to anything I've found in git.  “bzr log” in the kernel tree takes approximately as long as “git log”
[03:36] <lifeless> jelmer: ^
[03:36] <lifeless> raof: thats awesome
[03:36] <lifeless> and a little terrifying
[03:37] <raof> :)
[03:39]  * raof doesn't quite get why git thinks commits should be in chronological order, interleving commits from different branches into one mixed stream
[05:12] <thumper> here is a mind bender
[05:13] <lifeless> shoot
[05:13] <thumper> I have an existing branch that I had on the wrong revision
[05:13] <lifeless> 'wrong' ?
[05:13] <thumper> I want to make a branch that is cherry pickable
[05:13] <thumper> but I started with production-devel
[05:13] <thumper> rather than the lca with devel and production-devel
[05:13] <thumper> so when I proposed my production devel based branch, I get conflicts galore
[05:13] <thumper> so...
[05:13] <thumper> I uncommitted and shelved
[05:13] <thumper> now I want to get to a good start revision
[05:14] <thumper> how?
[05:15] <lifeless> bzr pull . --overwrite -r revid:`bzr find-merge-base devel prod-devel`  [actually the backtick expression won't work, consider it a conceptual example]
[05:16] <thumper> no revisions to pull :)
[05:16] <lifeless> then you were on the revision already?
[05:16] <thumper> I think deleting the branch and starting again might be faster
[05:16] <thumper> no
[05:17] <thumper> shouldn't be
[05:17] <thumper> actually yes it is
[05:17] <thumper> but the revno seems all wrong
[05:20]  * thumper stabs it a bit
[05:21] <lifeless> thumper: pull --overwrite is the canonical way to just shift to a different revision
[05:22] <thumper> lifeless: worked with 'bzr pull ../db-devel --overwrite -r 9184'
[05:22] <thumper> lifeless: but giving it a revid (probably a different one) got it to 10622
[05:22] <thumper> given that the branch I was pulling from has under 9300 revisions
[05:22] <thumper> it seemed screwy
[05:22] <lifeless> heh
[05:31] <chx> hi. trying to get bundle buggy up and running. i have turbogears2 installed and http://turbogears.org/2.0/docs/main/WhatsNew.html says tg-admin sql create –> paster setup-app development.ini but what's development.ini?
[05:36] <chx> meh, i will just get turbogears 1.1
[05:58] <chx> AttributeError: 'ScopedSession' object has no attribute 'query_property' :(
[05:59] <chx> and there i am stuck :(
[05:59] <chx> abentley: I am trying to install bundle buggy
[06:01] <poolie> chx, perhaps it's a bit out of date
[06:01] <poolie> try googling those names
[06:02] <chx> poolie: the error message? i googled the error message, there is nothing
[06:02] <chx> literally nothing
[06:02] <chx> Results 1 - 1 of 1 for " AttributeError: 'ScopedSession' object has no attribute 'query_property'".
[06:02] <chx> and that's a chatlog
[06:02] <chx> "have you seen that before? nope"
[06:05] <poolie> can you pastebin the traceback?
[06:10] <chx> poolie: http://bzr.pastebin.com/8wRuteUF
[06:16] <poolie> to me this looks like a version mismatch within elixir vs turbogears
[06:16] <poolie> chx, suggest you send mail about it to aaron or to the bzr list
[06:22] <chx> poolie: OK :(
[06:22] <chx> will attempt with turbogears 1.0 as a last try
[06:22] <poolie> ok
[06:22] <poolie> most of the attention here has moved to lp reviews recently
[07:12] <mkanat> So, I did I hear something about bzr releasing the GIL sometimes?
[07:12] <mkanat> (Strike that first "I")
[07:13] <lifeless> yes
[07:13] <lifeless> some of our C extensions know how to release the GIL
[07:14] <mkanat> lifeless: Okay. Is there some code I can grep for to see where that happens (or a list of places where it does)?
[07:15] <lifeless> bzrlib/*.(?i:py$) :)
[07:15] <mkanat> lifeless: The reason that I ask is that, though I haven't fully investigated, the codebrowse deadlock may be somewhere in the python interpreter layer, and a released GIL seems like a possible culprit.
[07:16] <lifeless> I'm not sure which modules release
[07:16] <lifeless> I'm pretty sure the groupcompressor does
[07:16] <lifeless> possibly diff does
[07:16] <spiv> The only C extension that uses Py_BLOCK_THREADS/Py_UNBLOCK_THREADS is bzrlib/_groupcompress_pyx.c, according to grep
[07:16] <mkanat> spiv: Okay. So that would only happen on a write operation, right? So loggerhead wouldn't call that code.
[07:18] <lifeless> look for nogil in the pyx files
[07:18] <mkanat> lifeless: Thanks. :-)
[07:19] <lifeless> mkanat: apply_delta does nogil
[07:19] <lifeless> so its both compression and decompression
[07:19] <spiv> mkanat: no, I think it uses nogil sometimes while reading too.
[07:19] <spiv> mkanat: that said, I'd be a bit surprised to find that using nogil was the problem
[07:20] <mkanat> spiv: What happens if a thread that has the GIL released gets an exception (from the launchpad-loggerhead no-activity thread killer)?
[07:20] <mkanat> spiv: Will the GIL be reacquired?
[07:20] <mkanat> spiv: You'll have to forgive me a little, I've actually not used much python code that releases the GIL.
[07:21] <spiv> mkanat: assuming no bugs in Pyrex (or Cython if that's what you're using), yes.
[07:21] <mkanat> spiv: Okay.
[07:21] <spiv> Look at how the translated C code handles those conditions if you like.
[07:21] <lifeless> mkanat: python code can't release the gil, only C code written to CPython
[07:21] <mkanat> lifeless: Right.
[07:21] <lifeless> well
[07:22] <mkanat> lifeless: I was speaking loosely. :-)
[07:22] <lifeless> I guess the python dynamic access to C code could release it
[07:22] <lifeless> it would be hilarious
[07:29] <mkanat> Okay, yeah, looks like only groupcompress uses nogil anyhow.
[07:49] <mkanat> Okay, I've looked and not found this--where can I find how to get a working local instance of launchpad-loggerhead?
[07:53] <maxb> https://dev.launchpad.net/  ?
[07:57] <mkanat> maxb: Thanks.
[08:00] <mkanat> spm: What does nagios/whatever do to check whether codebrowse is alive?
[08:01] <spm> mkanat: oh we gave up on that ages ago. it's kinda /dev/random > 20% - alert. otherwise is fine.
[08:01] <mkanat> spm: lol
[08:01] <spm> mkanat: /usr/lib/nagios/plugins/check_http -H bazaar.launchpad.net -u /~vcs-imports/busybox/main/changes -e " 200 OK"
[08:02] <mkanat> spm: Okay.
[08:02] <spm> basically a simply http check alive/dead against a known url
[08:03] <mkanat> spm: Okay. Does nagios do the check more than once, or do you get paged immediately if it fails once?
[08:03] <spm> 3 or 3 fails I suspect. it's very rare for any of our checks to be different to that
[08:03] <spm> 3 *of* 3
[08:04] <mkanat> spm: Okay, thanks.
[08:04] <spm> np
[08:04] <poolie> hi spiv, lifeless, igc,
[08:04] <poolie> and vila
[08:04] <poolie> i'm thinking it's probably best to do 2.2b2 now, off trunk, rather than recutting 2.2b1 with fixes
[08:04] <poolie> any problems with that?
[08:05] <igc> poolie: ok by me
[08:11] <lifeless> poolie: fbm
[08:11] <poolie> i feel a bit weird so i'm going to stop after that
[08:12] <spiv> Yeah, seems fine to me.
[08:24] <vila> poolie: I merge 2.0 -> 2.1 -> 2.2 and 2.1 > bzr.dev yesterday, so both ways are fine to me, I thought that was the plan anyway
[08:24] <poolie> thanks
[08:24] <poolie> yes, it was
[08:25] <poolie> i just had a somewhat dopey day today
[08:27] <vila> poolie, lifeless: Can we talk about https://code.edge.launchpad.net/~vila/bzr/563997-selftest-unicode-reporting/+merge/23501 ?
[08:27] <poolie> sure
[08:27] <vila> lifeless: you r comment is terse and doesn't help me there, what's your point ?
[08:28] <poolie> sure
[08:28] <poolie> so vila, i think the main point of using them would be to synchronize with the progress bar
[08:28] <poolie> that might be unneccessary if self.stream is already obtained from make_output_steram
[08:28] <poolie> stream*
[08:28] <poolie> um
[08:29] <vila> no its' not, it's a totally different beast
[08:29] <vila> well, AFAICS
[08:30] <vila> and I think the pb has already been cleared (my manual testing didn't show any problem there)
[08:30] <poolie> ok
[08:30] <vila> What *I* like is to separate the issues there: 1) make selftest robust, 2) address unicode support in ui
[08:31] <poolie> so i would still say that the real problem is #2
[08:31] <lifeless> vila: hi
[08:31] <lifeless> uhm
[08:31] <poolie> but if this is more pragmatic i don't think it's wrong
[08:31] <poolie> i think pb.note should be for something that kind of maps into an information dialog popup
[08:31] <lifeless> selftest shouldn't be calling a global function, which it might be
[08:31] <vila> yeah, but 1) was blocking me and trying to address 2) was more... involved
[08:31] <poolie> it's not clearly defined
[08:31] <poolie> so i don't mind removing callers
[08:32] <lifeless> in-python gui runners mightlike the current behaviour
[08:32] <vila> lifeless: yeah, part of the problem, I have no idea if there are one or several ui objects involved
[08:32] <lifeless> OTOH they can use their own result object
[08:32] <lifeless> vila: if it calls via module.ui_factory, it will end up calling the ui object * of tests *
[08:34] <vila> lifeless: I realize that, I'm not sure how approriate it is for selftest itself (given that it's the only place and that this code path is *not* involved is you use selftest -v !
[08:34] <vila> I went with the pragmatic approach when I realized that (-v does it this way)
[08:35] <lifeless> vila: so, I'm saying that selftest needs to be solidly isolated
[08:35] <lifeless> I found some bugs when donig the testtools thing
[08:35] <lifeless> where selftest was doing 'progress' but we would not see it because the test ui factory was installed
[08:35] <poolie> lifeless: yes, i know of them
[08:35] <poolie> in vila's patch it uses self.ui
[08:35] <vila> lifeless: yes, I don't have the line at hand but testtools use a UnicodeOrBytesToBytesWriter for stream (or something)
[08:35] <lifeless> ok cool
[08:36] <lifeless> poolie: ^
[08:36] <poolie> which is the outer ui, meant to be isolated from any global state changes
[08:36] <poolie> mm, i remember the conversation
[08:36] <vila> outer ui... I missed that
[08:36] <lifeless> anyhow, I really don't mind what is done here; self.ui is our ui abstraction, but we don't have to use it
[08:36] <vila> makes sense tough
[08:36] <poolie> vila: the ui that's talking to the user about the progress of the test, not the ui for a particular test
[08:36] <vila> sure
[08:36] <poolie> lifeless: my suspicion is that the problem originates in doctests
[08:37] <poolie> i think some isolation we do in the test base class actually needs to be done in the runner
[08:37] <poolie> or, similar
[08:37] <poolie> i mean, or in the doctest
[08:37] <lifeless> poolie: really? That surprises me
[08:37] <poolie> i think doctests will see ui.ui_factory pointing to the real one
[08:37] <poolie> imbw
[08:38] <poolie> i haven't actually fixed the bug
[08:38] <poolie> it's only a suspicion
[08:38] <lifeless> poolie: we can setup setup and teardown functions when we thunk doctests into unittest's api
[08:38] <lifeless> poolie: so if thats happenning, we should create such functions
[08:38] <lifeless> it sounds plausible
[08:39] <vila> poolie: the issues I went into trying to address 1) were: ui.show_* methods doesn't encode, the only method that encodes is prompt()
[08:40] <poolie> vila: i suggest you merge this for now and get unblocked
[08:40] <poolie> i don't think it's a step back in any regard
[08:40] <vila> amen & thks
[08:42] <vila> poolie: I'll file a new bug for ui.note and friends then
[08:42] <spiv> There's a bug still open about the lack of isolation for our doctetss
[08:43] <spiv> https://bugs.edge.launchpad.net/bzr/+bug/321320
[08:43] <bialix> heya all
[08:43] <spiv> bialix: good evening.
[08:43] <vila> spiv: yeah, and I still can't run the test suite in a bound branch :)
[08:43] <bialix> spiv: :-)
[08:44] <bialix> let's call this rainy morning an evening
[08:44] <vila> bug #309309 what a lovely number...
[09:01] <lifeless> vila: could you please start setting commit messages in your proposals ? Thanks!
[09:02] <vila> lifeless: you mean when I do the proposal or when it is approved ?
[09:02] <vila> lifeless: by the way, the only thing that blocks me to always use feed-pqm is the lack of --fixes support
[09:08] <lifeless> vila: when you do put it up
[09:08] <poolie> ok i might call it a day
[09:08] <lifeless> vila: how do you mean --fixes?
[09:09] <spiv> poolie: I suggest "Friday"
[09:09] <poolie> hee hee
[09:09] <lifeless> vila: if you mean the #TODO I have in my hydrazine cron branch, patch it :P
[09:09] <poolie> it's the quiet ones you've got to watch :)
[09:09] <vila> poolie: if I land something in bzr.dev can I still target it at 2.2b2 ?
[09:09] <poolie> nup
[09:09] <poolie> well, not truthfully :)
[09:10] <vila> poolie: ?
[09:10] <poolie> i've just sent a merge to pqm from trunk into the 2.2 branch that will be 2.2b2
[09:11] <vila> lifeless: I mean the ability to say that the final commit is the one that really fixes the bug
[09:11] <lifeless> vila: I'm not sure how thats connected to feed-pqm
[09:13] <vila> lifeless: if my mp has been reviewed but doesn't mark the bug as fixed, I merge it into my integration branch, commit with --fixes and pqm-submit it
[09:13] <lifeless> vila: why don't you just commit a no-op --fixes?
[09:14] <lifeless> vila: or even not stress about it :P
[09:14] <bialix> poolie: "call it a day" means EOD or long day fionished successfully?
[09:14] <vila> lifeless: matter of taste I presume
[09:14] <poolie> more of the first in this case, but either
[09:15] <bialix> good weekend for you then!
[09:15] <poolie> you too
[09:15] <vila> poolie: 2.2b3 milestone activated, let's keep 2.2b2 active for a couple of days though
[09:15] <poolie> yep
[09:15] <poolie> i haven't sent something to trunk to bump the version yet,because pqm is a bit queued
[09:15] <poolie> you can if you want
[09:15] <poolie> cheerio
[09:19] <vila> poolie: enjoy your week-end
[09:21] <vila> lifeless: woot ! thanks for approving/submitting my mp :-D
[09:29] <lifeless> vila: tools are good
[10:01] <geser> Hello, I'm looking at updating a python script to use LP API (instead of screen scraping) and while at it to also replace the bzr calls with using the bzrlib module.
[10:01] <geser> Is there any documentation how to "translate" bzr calls to usage of bzrlib?
[10:02] <geser> I've found http://doc.bazaar.canonical.com/bzr.2.1/developers/integration.html which seems to cover most what I need.
[10:04] <lifeless> geser: often, looking builtins.py can show you a great deal about what is going on
[10:13]  * igc dinner
[10:14] <geser> how do I translate "lp:foo" to something I can use as a branch location within bzrlib?
[10:18] <spiv> geser: that should work automatically if you load plugins
[10:18] <spiv> geser: "from bzrlib.plugin import load_plugins; load_plugins()"
[10:19] <geser> ah, thanks
[10:19] <spiv> (The "lp:" namespace is provided by the launchpad plugin)
[10:19]  * spiv -> dinner
[12:23] <putrycy> Hi! I'm looking for some system control software that fits my requirements. I would like to realize the following scenario: I and my few friend are in LAN and we have some project. We would like to have system controlling and backup at once. I.e. every would run server and commit command would send changes not only to local server but to my friends' servers too. Is it possible with bazaar? Could you point me out a piece of doc ragarding that?
[12:26] <jderose> putrycy: a bzr "bound" branch does exactly what you're asking for. if you have bzr installed, see `bzr help checkout` and `bzr help bind`
[12:26] <jderose> putrycy: also see http://doc.bazaar.canonical.com/bzr.2.1/en/user-guide/central_intro.html
[12:27] <putrycy> jderose: thanks, I'll take a look for sure. Tell me just one thing more: If some server is turned off will it be synchronized later?
[12:27] <jderose> yes, but you can to do this manually (this is a feature I'd like to see in bzr)
[12:28] <putrycy> I _can_ or I _have to_?
[12:28] <jderose> when you go offline, you would `bzr unbind`.  when you go back online, you would `bzr bind` and then `bzr update`
[12:28] <jderose> yes, you can certainly flip between bound and unbound, sync later when you are online
[12:28] <jderose> it just doesn't happen automatically
[12:29] <putrycy> OK, I'll dig in doc for details. Thanks a lot once more
[12:29] <jderose> putrycy: no problem, good luck!
[12:33] <quicksilver> I think putrycy was anticipating the changes would go *instantly* to his friends.
[12:34] <quicksilver> that would require a something on the central server pushing to the friends on, perhaps, a commit hook or similar.
[12:34] <quicksilver> there is no particular advantage to doing that
[12:34] <quicksilver> unless you expect the main server to regularly burst into flames.
[12:37] <vila> putrycy: keep in mind that by being distributed you already have a backup: all your friends have a copy of all the revisisions you've shared so far
[12:38] <vila> putrycy: if you add a server in the mix acting as a synchronization point, you get one more copy and a point where you can decide how you share your history
[12:39] <vila> plus a place where everybody can check for new changes and push his own changes of course, but the point is that this central server is not mandatory, you can find other ways to sync
[12:40] <vila> putrycy: bzr itself doesn't provide a way to push to multiple targets automatically.
[12:40] <vila> putrycy: bound branches allows you to push every revision you commit to *one* server
[12:44] <jderose> putrycy: The "Workflows
[12:44] <jderose> " doc give a good overview of the options, in case I didn't understand your needs: http://doc.bazaar.canonical.com/bzr.2.1/en/user-guide/bazaar_workflows.html
[12:54] <putrycy> oh.. I'm a little confused now. Why I would like to have repository on many servers? For safety. I.e. my real environ would contain just two machines: mine and of my friend. So I think it is possible one of them 'burst into flames'
[12:55] <putrycy> In the of my computer corruption I would like to have a copy of my work
[12:55] <putrycy> with all previous versions etc.
[12:57] <jderose> putrycy: as bzr is distributed, when you create a local checkout or branch, you have the full set of revisions and history locally... so it's always on at least each person's machine who is working on it
[12:57] <vila> if you have only two hosts it's simpler, start by reading http://wiki.bazaar.canonical.com/MatthewFuller/SpotDocs/PiecesInBrief , the vocabulary will be clearer
[12:58] <vila> putrycy: as soon as both of you have a branch, you backup each other
[12:58] <putrycy> vila: OK, thanks
[12:58] <putrycy> and with 3 parts?
[12:58] <putrycy> I don't except corruption of two servers but I'm just asking
[12:59] <putrycy> if somebody else would like to participate in our cooperation
[12:59] <jderose> putrycy: the server is *another* backup, but also a potential means of synchronization
[12:59] <vila> putrycy: it's the same, a branch use a repository to store revisions, as soon as you merge changes from your friends, you get  a copy of their revisions
[13:00] <putrycy> oh
[13:00] <putrycy> I think about another scenrario
[13:00] <putrycy> i.e.
[13:00] <putrycy> everyone work on another project
[13:01] <putrycy> and I don't need to explicitly obtain their branches
[13:02] <putrycy> (of course everyone could join to each other project but it's another story)
[13:03] <vila> what do you mean by "I don't need to explicitly obtain their branches" ?
[13:06] <putrycy> I mean a situation: on every sever there is a main dir containing repository. There are three different project: ProjectA, ProjectB, ProjectC. Each project is managed by another man. I think that I can work only on ProjectA. I.e. my server of course have to have a copy of ProjectA, ProjectB and ProjectC but my local workspace would contain only ProjectA
[13:06] <putrycy> (My english doesn't help me to explain what I mean:/)
[13:07] <putrycy> I think about bzr like about SVN... am I wrong?
[13:17] <vila> putrycy: I think so, you *can* share a repository between branches and even between projects, but you interact mainly with branches
[13:17] <putrycy> so
[13:18] <vila> so when you pull or merge from a friend's branch into your branch, you get only the revisions for his branch, not for the other projects
[13:18] <putrycy> when I change something in my branch I would like every of my friend could see that change on his server
[13:19] <vila> putrycy: they will need to pull from your branch
[13:19] <vila> or merge
[13:19] <putrycy> so, cannot I commit to many different servers?
[13:20] <putrycy> to 3 in this case: my local and of my friends
[13:20] <vila> putrycy: you can commit locally and to *one* server by using bound branches
[13:20] <putrycy> OK
[13:20] <putrycy> thanks for youre patient
[13:20] <vila> putrycy: no worries
[13:20] <putrycy> patience
[13:21] <vila> putrycy: you can write a plugin to do so,
[13:21] <vila> putrycy: keep in mind that not all servers will be online 24/7 though
[13:21] <putrycy> I know
[13:21] <putrycy> I know
[13:22] <putrycy> that's why I would like they to be synchronized
[13:22] <vila> putrycy: or you can have a look at multi-pull which allows one to automatically pull (not push) multiple branches
[13:22] <putrycy> when they are on
[13:22] <vila> what OS are you (plural) using ?
[13:23] <putrycy> mainly windows but I'm going to use linux as welll
[13:23] <putrycy> (and perhaps FreeBSD)
[13:24] <putrycy> I have to write cross platform p2p soft
[13:24] <vila> putrycy: hehe, then once you've got the "who is online" sorted out, you can either push or pull :)
[13:26] <putrycy> I don't want to: 1) lost my work 2) wait for long commit (sloooow internet connection) 3) show other my work (for some reasons) neither to pay (like in the case of assembla)
[13:27] <putrycy> vila: you wrote it in a context of plugin? If it's not too hard to write such a soft and I will have some free time then perhaps...
[13:28] <putrycy> Would be usefull, I think
[13:28] <vila> putrycy: yes
[13:28] <putrycy> OK, thanks a lot once again
[13:29] <vila> I think the subject of pushing to multiple places at once has been raised in the past, you may get a larger feedback by writing to the mailing list
[13:30] <putrycy> with my english skills it's a bit dangerous....
[13:30] <putrycy> :D
[13:30] <putrycy> I wonder how did you understand me...
[13:30] <putrycy> ;)
[13:33] <vila> putrycy: you're doing *very* well, and non-native english speakers tend to focus a bit more in their discussions, it helps ;-)
[14:50] <goundy> Hi guys
[14:50] <goundy> I've an ftp that I use as a bazaar repository
[14:50] <goundy> and I'd like to add the possibility to browse the sources online (web-front)
[14:51] <goundy> But, I do only know loggerhead, which is written in python, and works with bazar server
[14:51] <goundy> Is there any simple alternative that browse the source directly from storage ?
[14:51] <goundy> Thank you very much
[14:57] <Daviey> goundy: erm, you can use loggerhead with access to a local bzr repo, don't need to have a bzr server running.
[14:57] <goundy> Daviey, but I still do need python and this is the problem :p
[14:58] <goundy> cuz I own a simple FTP that I got from a free hosting service
[14:59] <goundy> Daviey, isn't there any php based bzr browser ?
[15:00] <Daviey> goundy: http://wiki.bazaar-vcs.org/WebInterfaces <-- is your options :)
[15:00] <goundy> oh didn't see that page
[15:00] <goundy> dude, thank you very much
[15:03] <Daviey> goundy: no worries
[15:35] <jam> morning all
[16:11] <Joyer```> evening at asia~
[17:14] <bialix> ~~~
[17:28] <jelmer> jam: ping
[17:28] <jelmer> hi bigjools
[17:28] <jelmer> *bialix
[17:28] <jam> morning jelmer
[17:28] <bigjools> enjoying your vacation jelmer? :)
[17:28] <jelmer> irssi is trying to be smart since I talk to bigjools more often :-)
[17:29] <jelmer> bigjools: yeahp, thanks :_)
[17:31] <jelmer> jam: I was curious, is there anything I can help to move ~jameinel/bzr/2.2.0b2-pack-collection forward?
[17:32] <jam> you could work on it. :), but nothing specific
[17:32] <jam> I've just been working on other things recently
[19:35] <nphase> "bzr: ERROR: exceptions.ImportError: cannot import name XMLSerializer " <- where can I get XMLSerializer? i'm not seeing much by way of the googles
[19:45] <nphase> yeah. when i run bzr branch
[19:45] <nphase> "ImportError: cannot import name XMLSerializer"
[19:46] <jelmer> I think mthaylor was seeing that problem as well
[19:46] <jelmer> not sure how he resolved it
[19:52] <nphase> hm
[20:12] <nphase> jelmer: if only he was around :(
[20:30] <jelmer> nphase: probably off enjoying his weekend
[20:30] <nphase> jelmer: overrated!
[20:32] <james_w> nphase: one of your files wasn't updated when you installed a newer bzr
[20:32] <nphase> ah
[20:32] <nphase> ill uninstall the old one
[20:33] <james_w> I don't know why it's happening
[20:33] <james_w> we haven't found a hash collision or something have we? :-)
[21:03] <nikin> hy... can someone tell me why bzr-gtk depends on technically everything? including pulseaudio?
[21:03] <nphase> james_w: yep, that did it. thanks :)
[21:03] <james_w> np
[21:49] <goundy> Hi
[21:50] <goundy> Question: I use bazaar in FTP mode, but when I connect to my FTP using an ftp client, I can't see my branches
[21:50] <goundy> but if I do bzr branch ftp://..... I can checkout and push my branches... how come ?
[21:52] <dash> goundy: is there a .bzr directory?
[21:52] <goundy> dash, I can't even see it
[21:52] <goundy> that's really weird
[21:52] <goundy> But I tell ya, my branches are really there lol
[21:52] <dash> does your ftp client hide directories starting with .?
[21:52] <goundy> No I disabled this
[21:53] <goundy> I want this solved to be able to see all branches I create
[21:53] <goundy> since I didn't find a bzr command that lists branches in a shared repository
[21:53] <goundy> that's really weird stuff
[21:57] <lifeless> jam: hi
[21:57] <lifeless> jam: do you have a recipe for getting a meliae dump from a plain old python process that has gone rogue ?
[21:58] <jam> lifeless: hi, I do not. I would presume you can interrupt it using gdb, and then somehow get into a python interpreter
[21:58] <jam> but I don't know how to do that
[21:58] <goundy> dash, no hints ?
[22:30] <slestak> dash: dang, man, you get around
[22:31] <slestak> im having some issues with the current unix (aix) builds of bzr.  I have talked a bit with the maintainer and another maintainer of the package giving me problems.
[22:31] <slestak> it has to do with conflicting python packages.
[22:32] <slestak> i think I am just going to build this from src myself.  I understand the c routines are just additional helpers for speed, not required.  Is that true or are they highly recommended or mandatory?
[22:33] <slestak> or in other words, can I run pure python bzr?
[22:34] <beuno> slestak, yes you can
[22:35] <slestak> ive been around and around with this problem, and just need some bzr.  (or cowbell, not sure which)
[22:35] <dash> slestak: if you've got a C compiler and headers for python it shouldn't be a big deal to build the C extensions
[22:37] <slestak> the problem i was running into is chris requires the use of his 2.6.2 python rpm for his bzr build.  I use mike perzls rpm on 2.6.5.  There is a library difference that makes these two incompatible.  (.a vs .so)
[22:37] <slestak> i could use this liek a month ago, so time to move forward.
[22:38] <dash> sure
[22:39] <slestak> question, I have been using bzr in all kinds of places.  wonder if this is a best practice.  One example I questioned was in my rsyslog.conf and rsyslog.d for a central loggig server.
[22:40] <slestak> since .bzr is hidden, othe rteam member may not be aware that a random file in a dir (/etc) is even versioned at all.
[22:40] <slestak> does that seem liek a misuse to use at that micro-level?
[22:42] <dash> yeah versioning /etc is a nice idea but tricky
[22:43] <slestak> that just seems marginally valuable.  prob need to think of another solution.
[22:43] <fullermd> Eh, I do it.
[22:43] <slestak> i'd really liek to version my icinga configs as well
[22:43] <fullermd> Figure that if nobody else ever uses it but you, that's still at least a LITTLE better than no versioning at all, right?
[22:43] <slestak> fullermd: all of /etc in one repo, or many small repo's?
[22:44] <fullermd> Well, I version the whole thing, sorta, but I only cherrypick maybe the half dozen files that really get edited on any given box.
[22:44] <fullermd> And ignore everything else.
[22:44] <slestak> fullermd: granted.  better than the typical foo.sh, foo011410.sh, foo.sh.bak, foo.sh.dont discard...
[22:44] <fullermd> But places like under /usr/local/etc/ there are usually several small branches.
[22:45] <fullermd> And on boxes that other people admin too, I yell and scream and throw hissy fits until they start checking in their changes.
[22:45] <slestak> interesting commint messages, Jim changes this crap, wish he would log too
[22:46] <fullermd> Yeah, I've made a few of those  :p
[22:46] <slestak> i just wonder if maybe there should be a visual indicator in teh dir that a repo exists.  the tortoise* apps do with emblems.  why is this not necessary/helpful for console users?
[22:47] <fullermd> `touch USE_BZR_FOR_THIS_YOU_IDIOTS`
[22:47] <jelmer> moinmoin fullermd
[22:48]  * fullermd waves at jelmer.
[22:50] <slestak> bom dia
[22:51] <slestak> fullermd: i think that would be sufficient.  May add it as a init hook to make it by default, and add it to .ignore
[22:51] <slestak> hey, a plugin!


[01:06] <hpidcock> thumper: tlm: you both have interest in this https://github.com/juju/juju/pull/11616
[01:10] <tlm> roger
[01:12] <tlm> looks good hpidcock, can you update pki/testing for the test authority to use it ?
[01:13] <hpidcock> tlm: it should already
[01:13] <hpidcock> only the pki package tests with secure keys
[01:14] <tlm> a test would have to bring in testing for the it to apply ?
[01:15] <hpidcock> tlm: true, but that is pretty much all test packages
[01:16] <tlm> can we introduce it into pki/testing to garuntee it ?
[01:16] <tlm> that would be my only feedback
[01:16] <hpidcock> sure
[01:18] <tlm> any idea what the performance is like with rsa 512 V ecdsa 224 ?
[01:19] <hpidcock> probably negligible difference
[01:20] <hpidcock> I can have a look
[01:20] <tlm> all good was just wondering if you knew
[01:20] <tlm> sort out mongo in k8's and we can do the swap for 2.9 maybe
[01:21] <tlm> just did a check and it looks like most dns root zones have swapped over to ecdsa now
[01:24] <tlm> smallish PR if anyone has time https://github.com/juju/juju/pull/11612 (not urgent)
[03:21] <wallyworld> thumper: progress of sorts, i left a comment on the bug. the mechanics of the issue i can see but not yet the root cause
[04:02] <babbageclunk> ugh, is there any way I can handle where I try to restore the snapshot on the controller nodes (ie, move the snapshot dir back) but only some of them succeed?
[04:06] <wallyworld> what's the cause of one of them failing?
[04:17] <tlm> is lxd hanging for anyone else when bootstraping from 2.8-rc ?
[04:22] <wallyworld> not last time i tried
[05:04] <babbageclunk> wallyworld: oops, missed your response - not sure, I'm trying to handle the situation where we need to restore the database snapshots (because the juju-restore process has failed for some reason) but then restoring the snapshots has failed on some number of nodes. I guess at that point we ask the operator to restore them.
[05:05] <wallyworld> i think in some cases it's ok (to start with) to inform what wnet wrong and suggest a manual fix, possibly followed by running restore again after the user intervention
[05:16] <thumper> https://github.com/juju/juju/pull/11617 if someone is feeling bored
[05:16] <thumper> wallyworld: re bug above, I imagine that is a little frustrating
[05:18] <wallyworld> thumper: there's weird stuff happening, success vs failure depends on if the state watcher picks up all changes in one event or two (in the latter case, the worker doesn't seem to see what it needs and the event gets lost), and we seem to be incorrctly watching relation unit changes multiple times
[05:23] <thumper> ugh...
[05:27]  * thumper EODs
[05:27] <thumper> time for cleaning the kitchen and a glass of wine I think
[05:27] <thumper> night all
[08:38] <stickupkid> manadart, updated my PR https://github.com/juju/juju/pull/11611
[08:39] <manadart> stickupkid: Yep. Will look.
[08:53] <manadart> stickupkid: Can further simplify like this: https://pastebin.canonical.com/p/5ZfmWmK9kn/
[08:55] <stickupkid> ooo, like it
[08:55] <stickupkid> let me try it
[09:08] <stickupkid> manadart, done, just did some renaming of stuff and then applied the changes.
[09:22] <manadart> stickupkid: I just approved it, but you can do a QA step on OpensStack to check that a charm with multiple bindings causes a machine to be provisioned with multiple NICs.
[09:22] <manadart> Also need the LP bug in the description.
[09:22] <stickupkid> manadart, fun fun fun
[09:22] <stickupkid> manadart, yeah, this PR grew, I'll sort that out now
[09:23] <stickupkid> manadart, I'll test that we didn't regress AWS as well
[10:07] <stickupkid> manadart, you got microstack installing recently?
[10:07] <stickupkid> mine is just hanging installing rabbitMQ
[10:08] <manadart> stickupkid: Using `--devmode --edge`?
[10:09] <stickupkid> manadart, let me try again
[10:10] <stickupkid> devmode
[10:10] <stickupkid> manadart, thank-you again
[10:13] <stickupkid> manadart, mind if I edit your post for now
[10:13] <manadart> stickupkid: Sure.
[13:14] <stickupkid> achilleasa, https://github.com/juju/juju/pull/11618#pullrequestreview-416899148
[13:34] <achilleasa> stickupkid: it's all spaces now ^^
[13:34] <stickupkid> FIIIIIIIIIIIIIIIGHT
[13:34] <stickupkid> achilleasa, approved
[13:34] <achilleasa> (and 0-width UTF8 chars :-) )
[13:35] <stickupkid> ha, yes!
[13:39] <achilleasa> stickupkid: manadart: unless you remove the systemd service entries when you clean up you will still get the "machine is already provisioned error". I guess I should change my PR to clean them
[13:43] <manadart> achilleasa: Yeah, that's probably from when we removed them from /lib/systemd...
[13:43] <manadart> We should delete them.
[14:04] <achilleasa> stickupkid: updated PR to delete the systemd services. ok to merge?
[14:05] <stickupkid> sure
[14:21] <stickupkid> manadart, https://github.com/juju/juju/pull/11621
[14:22] <stickupkid> manadart, I could update the base branch, so made a new PR
[14:25] <stickupkid> manadart, just realised this needs to land first https://github.com/juju/juju/pull/11622
[14:28] <achilleasa> manadart: my changes broke the manual add-machine. I accidentally filtered out the ovs bridge (the only active NIC in my setup) from the list of usable addresses...
[14:29] <achilleasa> interestingly, the agent did connect briefly to the controller and set its password; then it exploded :D
[14:29] <achilleasa> (the call to network.FilterBridgeAddresses happens later)
[14:33] <manadart> achilleasa: I see.
[14:33] <manadart> stickupkid: Just doing a quick check on that patch. Had to update Go on my notebook.
[14:33] <stickupkid> sure sure
[14:33] <stickupkid> no rush
[14:41] <manadart> stickupkid: Approved 11622.