[02:39] <rozzin> Is it possible to do a lightweight checkout of a remote git branch using bzr-git?
[02:39] <SamB> I heard bzr-git was unfinished, with no plans to finish it
[20:27] <zyga> hi, I ran the trunk test suite on 14.04 and got 8 failures, is that expected?
[20:28] <zyga> this is a part of the failure log (gee, thanks gnome-terminal for insane default of 512 lines of backlog): http://paste.ubuntu.com/6728629/
[20:52] <rozzin> I'm not even sure how to read that log and identify what the 8 things are.
[20:58] <zyga> rozzin: I'm getting a fresh run with all of the failures
[20:59] <zyga> rozzin: a few were caused by missing python-lzma, now installed
[21:00] <zyga> rozzin: what remained now are tests related to gpg
[21:00] <zyga> rozzin: note, this is stock trunk on python2.7, nothing fancy yet
[21:05] <zyga> full failure log: http://paste.ubuntu.com/6728825/
[21:30] <rozzin> zyga: It looks like the ones that failed due to missing python-lzma were excluded from the `8' count, though.
[21:31] <rozzin> zyga: Do you know which 8 tests are actually the ones referred to be "failures=8"?
[21:32] <rozzin> zyga: I'm not really all that familiar with how any of this is implemented, but I'm willing to dig in and try to help. I used to be a Python programmer.
[22:04] <zyga> re
[22:04] <zyga> rozzin: I guess each of FAIL is one test
[22:21] <jderose> zyga: so i wont have time to dig into anything till this weekend, but i'm highly excited about your python3 porting effort :)
[22:22] <jderose> zyga: also, those failures seem (mostly) related to python-gpgme, so i'd first see if its tests pass on trusty - http://packages.ubuntu.com/search?keywords=python-gpgme
[22:22] <jderose> possibly related to gpg 1.4.15 being in trusty, dunno - http://packages.ubuntu.com/search?keywords=gnupg
[22:23] <zyga> jderose: thanks, I was suspecting the same thing
[22:25] <zyga> jderose: I'm looking at the code now, I think the first attempt will cut a lot of functionality, I'm quite surprised by how much stuff is inside bzr, I think that some strong decisions to drop things could make the (huge) effort doable but I'm not yet sure about what to consider dropping
[22:25] <jderose> if it is a python-gpgme issue, you should ping James Henstridge (dunno his IRC nick) - https://plus.google.com/u/0/+JamesHenstridge/posts
[22:25] <zyga> jderose: I'm currently removing lazy imports so that 2to3 can be more productive
[22:25] <zyga> jderose: once I get --help to run I'll post my code
[22:25] <jderose> sweet :)
[22:26] <jderose> i think there are areas that should probably be trimmed, but dropping support for any old formats kinda scares me :P
[22:27] <zyga> jderose: this is a fork, you can still use bzr --upgrade for old stuff
[22:27] <jderose> true
[22:27] <zyga> jderose: and the game is lost anyway, so it's not about keeping what we have, it's about making something that people want
[22:27] <jderose> good point
[22:27] <zyga> jderose: or what we can still *have*
[22:28] <jderose> does bzr still use pyrex? (been a while since i've looked at the bzr code)
[22:28] <zyga> jderose: yeah
[22:28] <zyga> jderose: more scary stuff for me ;)
[22:28] <jderose> how's that as far as python3?
[22:28] <jderose> hehe
[22:28] <zyga> jderose: not sure, I never wrote any, I'm considering dropping that if needed
[22:28] <zyga> jderose: as there are pure python versions too
[22:28] <zyga> jderose: right now I want to see bzr --help
[22:29] <jderose> might be something that would be better replaced with c extensions
[22:29] <jderose> yeah
[22:29] <jderose> sorry, getting ahead of myself... especially considering that fact that i haven't done anything yet :)
[22:29] <zyga> jderose: hey, I didn't do anything at all :) I just want to :>
[22:30] <jderose> i'm pretty sure you're a lot closer to `bzr --help` than i am :P
[22:32] <zyga> I wonder if some parts of bzr could be dropped/replaced by existing libraries, I feel that a lot of bzr is actually now available as readily-available modules that we don't have to maintain
[22:32] <zyga> especially a lot of the network code
[22:32] <fullermd> I'd not worry overmuch (at least at the moment_ about the server shutdown failure.  I think that's a somewhat touchy area in general, so...
[22:32] <zyga> fullermd: thanks!
[22:32] <zyga> fullermd: as long as trunk fails the same way as my neutered version I'm happy
[22:33]  * zyga reads the launchpad plugin code
[22:33] <fullermd> And the builddeb stuff...  well, shoot, nobody uses that "deb" thing anyway.
[22:33] <zyga> the single most important plugin
[22:33] <jderose> fullermd: yeah, speak for yourself :P
[22:34] <fullermd> Naturally; I always speak for all right-thinking people   :P
[22:34] <jderose> zyga: i think for the HTTP/HTTPS transport stuff, yes, the standard lib could replace a lot of things. BTW, I have a lot of experience with the Python3 `http.client` module.
[22:34] <zyga> OOHHH
[22:34] <jderose> hehe
[22:34] <zyga> so lp_api_lite
[22:34] <zyga> that's so sweet, no lauchpadlib
[22:35] <zyga> jderose: for all networking I was hoping to use requests, it's nice and shiny and has lots of usage, it seems to handle auth very well out-of-the-box
[22:35] <jderose> zyga: but there is also the custom SSH implementation (can't recall the python package name)... that might be a lot harder to replace
[22:35] <zyga> jderose: paramiko
[22:35] <zyga> jderose: yeah
[22:35] <jderose> right
[22:35] <fullermd> paramiko isn't actually used most of the time.
[22:35] <zyga> jderose: I haven't looked at that yett
[22:35] <jderose> zyga: er, requests? is that part of httplib2?
[22:36] <fullermd> Only on Windows sometimes I think, unless you forcibly call it.  Usually just calls the command-line ssh.
[22:36] <zyga> jderose: I don't think so: http://docs.python-requests.org/en/latest/
[22:36] <jderose> fullermd: so even when using the SSH transport (say, with launcphad), paramiko isn't used all the time?
[22:36] <fullermd> Er, wait, maybe paramiko is still used for sftp.
[22:36] <zyga> fullermd: ah, good, something that can be dropped then
[22:36] <fullermd> But yeah, bzr+ssh calls ssh(1).
[22:36] <zyga> fullermd: TBH, I only care about lp and local work, everything else is gone
[22:37] <jderose> gotcha, then that's easy to replace
[22:37] <fullermd> Or even putty or something on Win, I think.
[22:37] <zyga> fullermd: I don't care for windows yet, lots of issues for no gain for now
[22:37] <fullermd> But thinking about it, it probably IS used for sftp.  How common that still is, I dunno; it's probably mostly OBE when the smart server came in, but I'll bet there are still niches.
[22:37] <jderose> fullermd: what is this "Win" you right-thinking people speak of? :P
[22:38] <zyga> jderose: the thing with metal bars ;)
[22:38] <fullermd> It's a recursive toy.  You get Win so you can toss it out a Win, for the Win   :p
[22:39] <jderose> fullermd: i think if you have a launchpad account, most tend to use SSH as the transport. stuff like lp:foo automatically gets transformed into a bzr+ssh URI when you've set your launchpad username
[22:39] <jderose> hehe
[22:39] <fullermd> Oh, sure.  I'm not even sure LP still supports sftp (though of course it used to)
[22:39] <fullermd> But people do once in a while use bzr on something other than LP   :p
[22:40] <jderose> launchpad definitely supports SSH still
[22:40] <fullermd> You mean sftp, or bzr+ssh?  They're two vastly different things.
[22:40] <jderose> er, yeah, i mean bzr+ssh:// not sftp://
[22:40] <jderose> not sure about the later
[22:41] <fullermd> Yeah, bzr+ssh [almost] always calls out to a command-line ssh(1) if it can.  Pretty sure sftp is all done via paramiko though.
[22:41] <jderose> interesting... i would have guessed the oposite
[22:41] <jderose> but dropping a dependencies is always good :)
[22:41] <fullermd> Well, over ssh it just uses it as a tunnel to blat bytes over.  It could probably be made to support bzr+rsh in about 2 minutes if somebody wanted to.
[22:42] <fullermd> But sftp, you'd have to interactively script a program or something to call out like that, which is icky.
[22:42] <jderose> gotcha
[22:43] <fullermd> I'm not sure that e.g. OpenSSH's sftp(1) even lets you do all the stuff bzr tries behind the scenes.  The sftp protocol is hyuge compared to the 2 or 3 things 99% of the uses do.
[22:43] <zyga> mmm
[22:43] <zyga> I'm quite interested in what github did
[22:43] <zyga> with their move to abandon git:// and ssh and use https for everything
[22:43] <zyga> they still support that but actively discourage it
[22:43] <fullermd> Obviously, got hold of some very good drugs.  They went with git, after all.
[22:44] <zyga> fullermd: indeed
[22:44] <zyga> git has a very simple model and no content type conflicts ;)
[22:44] <jderose> plus their excellent security track record :D
[22:44] <zyga> jderose: who cares, they are being used
[22:45] <jderose> i'm pretty sure these days you can replace "who" with "governments, large companies, non profits, etc..." :P
[22:46] <zyga> jderose: the same ones that run java and winxp
[22:46] <fullermd> No, I'm pretty sure nobody cares about security, just like the last 20 years...
[22:46] <zyga> jderose: I agree that security is good but secure dead software is not useful
[22:46] <jderose> true
[22:47] <zyga> they care about wiretaps but they don't really care that $vendor got owned $number of times as everyone gets owned once in a while
[22:47] <zyga> jderose: if security was important we'd be running solaris, not linux ;)
[22:48] <fullermd> Nah, I'd vote for AIX.
[22:48]  * zyga is too young for that
[22:48] <fullermd> When I _adminned_ an AIX box, I could never get it to do what it was supposed to.  How's somebody who's not root gonna pull it off?
[22:49] <zyga> btw, is knit a word I should know or some fancy invention?
[22:50] <fullermd> Well, I'd expect you to know it as a word in general.  The application into version control is a bit of an analogical invention.
[22:50] <zyga> fullermd: I'm not familiar with it
[22:50] <zyga> fullermd: what does it mean?
[22:50] <jderose> fullermd: knit was a specific repository format, right?
[22:50]  * zyga is google lazy while reading python on the next monitor
[22:51] <fullermd> The way you make socks and sweaters and scarves and such?
[22:51] <zyga> aaah
[22:51] <zyga> from tiny threads and such?
[22:51] <fullermd> In bzr, it was a history storage format, succeeding weaves.
[22:51] <jderose> fullermd: is knit the current history format then?
[22:51] <fullermd> (hence the choice of naming; knits are like weaves, but append-only instead of constantly re-weaving, and since you knit purely from a top end...)
[22:52] <fullermd> No, [pure-]knit was replaced by pack-0.92 which used knits internally, and that was replaced by 2a.
[22:52] <jderose> ah, gotcha
[22:52] <fullermd> I still come across pack-0.92 stuff occasionally, but it's gotten pretty rare.
[22:53] <jderose> ah, i remember when pack-0.92 was the new hotness :P
[22:53] <fullermd> The re-weaving with weaves was crazy expensive.
[22:54] <fullermd> I remember back when bzr.dev was still in weaves, and I had to carefully time my daily pulls, because they would nail up the CPU for about 20 minutes.
[22:54] <jderose> hehe
[22:54] <fullermd> (the crazy-slow reputation bzr still carries may be almost totally historical, but it sure was earned at one time...)
[22:55] <jderose> yeah, i do remember those days
[22:56] <fullermd> knits were a huge improvement.  packs made a number of things better too; for one thing, I could take annoying hacks out of my Apache config to avoid interpretting the knit filenames.
[22:56] <zyga> well
[22:56] <zyga> it's not crazy slow
[22:56] <zyga> but noticeably slower than git on anything
[22:56] <zyga> and pushing is dead slow
[22:56] <fullermd> Try it with weaves; you'll get a great appreciation for how fast it is now  :p
[22:56] <zyga> not sure if lp or bzr are to blame there
[22:56] <zyga> hehe
[22:57] <zyga> I remember all the old versions of bzr
[22:57] <fullermd> But it is python, so stuff like startup is always gonna be way slower.
[22:57] <zyga> I was using it from the start, almost
[22:57] <zyga> way before I joined Canonical
[22:57] <fullermd> Those lazy imports you were talking about were a major improvement in that.
[22:57] <zyga> yeah, I know
[22:57] <zyga> now I'm just killing the magic to get 2to3 to see stuff
[22:57]  * fullermd pictures you with a 7 foot spear standing over a dead unicorn...
[22:58] <zyga> fullermd: but they are full of candy inside
[22:58] <zyga> ;)
[23:01] <fullermd> I have vague memories of 2to3 experiments a couple years ago.  Seems like a few bumps were hit and then it was set aside due to nobody caring enough at the time.
[23:02] <fullermd> Probably far enough back now that whatever lessons were learned are pretty stale.
[23:02] <zyga> fullermd: I think that 2 and 3 codebase is hard
[23:02] <zyga> fullermd: especially since bzr still supports really old code syntax
[23:03] <fullermd> I think the really old stuff is gone (or at least not necessary); think the last few major releases have been 2.6+ only.
[23:03] <fullermd> (3 being a major reason behind that)
[23:04] <zyga> fullermd: the code is full of 3.0 incompatible syntax though
[23:04] <zyga> fullermd: one thing I learned to like about recent pythons
[23:04] <zyga> fullermd: is that I can drop hacks
[23:04] <fullermd> Oh, sure.  But dropping 2.4 meant we could dump a lot of _required_ 3.0 incompatible stuff.
[23:04] <zyga> fullermd: drop static copies of stuff I needed but wasn't around
[23:04] <zyga> fullermd: and that my code kept getting smaller and easier to follow
[23:05] <zyga> fullermd: I think that 3.2+ is good enough though 3.3 could be sweeter as it has even more goodies that can replace bzrlib home-grown code
[23:05] <fullermd> I'd bet there's a lot of stuff hiding around in bzrlib that's still 2.4 compatible but doesn't have to be.
[23:05] <zyga> yeah
[23:06]  * zyga just read 'this is not present in python2.2 so here's a copy' in one file
[23:06] <zyga> 2.2
[23:06] <zyga> configobj.py
[23:07] <fullermd> Hey, it's a palindromic version.  Gotta support those.
[23:07] <zyga> what is rio
[23:07] <fullermd> Serialization format, I vaguely remember?
[23:07] <zyga> hmm
[23:07] <zyga> relevant?
[23:08] <fullermd> I _think_ it was something from old formats, like pre-pack knits and before.  But that's very vague memory.
[23:08] <zyga> one thing I always liked about bzr is that it was a promise of pythonic api for vcs'es
[23:08] <zyga> but it was so complex that I never really got to like it or felt it was simple
[23:09] <zyga> and the layers of layers of indirections were a major factor each time I tried following the code
[23:10] <fullermd> Hey, don't tell that to me; I'm the guy who doesn't like OO wholesale   :p
[23:11] <zyga> python2.4 support is alive and strong in some files :)
[23:15] <fullermd> Looks like it was the 2.4 release series that officially dropped py2.4 and 2.5 support.  Appropriate.