" /> preed's blah-blah-blahg: April 2008 Archives

« March 2008 | Main | May 2008 »

April 29, 2008

The Changing of the Guard

Almost four weeks ago now1, dbaron took some time and separated out the various guts of the old Mozilla tools module, and divvied the contents of the directory2 into two new Mozilla modules: a Build & Release Tools module and a Code Analysis and Debugging Tools module.

I wanted to call this change out, because I think it's a step in the right direction, for a lot of reasons; both of these new modules have seen a lot more activity in the last 2-3 years and I think it really helps to separate them out from a code management standpoint, but also from the standpoint of the way we think about these sets of tools: the guts of any organization's build/release infrastructure and analysis/debugging tools should be first-rate citizens, and this change helps to frame the way those parts of the code are thought about.

So, thank you, dbaron; it's been a long time coming, and I appreciate you taking the time to sort that goop of code all out into [more] logical units.

***
A couple of days after the announcement, I brought up the fact that with Rob Helmer's announcement, the Build & Release module would not have anyone at Mozilla Corporation who could offer reviews for the module, given that rhelmer, Chase and myself were listed as the owners, and there weren't any peers yet.

This obviously makes little-to-no sense.

After a lively discussion about how to best remedy that, I also wanted to note that long-time Mozilla community member Nick Thomas3 is the new module owner for the Build/Release Tools module, with Chase, Rob Helmer, and myself staying around as peers.

Coop was also added as a module peer, whose omission was, let's face it, somewhat ludicrous4. I'm happy to see that got corrected as well.

Congratulations, Nick; you follow a long line of Mozilla Build Engineers, and I know you're going to [continue to] hit it out of the ballpark.

Let me know where to send the bottle of scotch.

_____________________
1 Wow... on my birthday, no less! What a present! :-)
2 which had mostly become an "island of misfit code"
3 also known as the "Build Engineer Formerly Known as CF"
4 No one escapes Mozilla Build/Release, Coop. No one. ;-)

April 15, 2008

Once More Unto the Bleat, Dear Friends

I think it is pretty well known that I am a sheep, and have a natural tendency to follow the crowd.

At home:

[preed@underworld ~]$ uname -a && history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
Linux underworld 2.6.19.7 #14 SMP Mon Nov 26 12:18:50 PST 2007 i686 Intel(R) Pentium(R) D CPU 3.00GHz GenuineIntel GNU/Linux
3870 mtail
1
1110 mutt
965 j
2
717 imtail
3
472 ps
374 fg
313 mocp
142 screen
139 cd
112 mail4

For comparison's sake, at work:

preed@preed-desktop:~$ uname -a && history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
Linux preed-desktop 2.6.22-14-generic #1 SMP Tue Feb 12 02:46:46 UTC 2008 x86_64 GNU/Linux
1043 svn
861 dir
6
836 cd
267 more7
229 ssh
221 ls
200 vi
136 grep
134 fg
119 ps

It would seem I pretty much am only using my workstation for reading email and listening to music. At least my work history has some semblance of related productivity tools.

Apparently, I also use a ton of bash aliases.

Huh.

I think I tend to run "mtail" and "ps" as nervous ticks when I'm thinking about something...

__________________________
1 mtail is a bash alias to tail -n 12 ~/.fetchmail.log ~/.procmail.log
2 j is a bash alias to jobs
3 imtail is a bash alias to parse-timpslog -d ~/timpslog -a, which gives me a log from the AIM proxy I use
4 Not what you think; mail is aliased to mtail1,5
5 First recursive footnote! Booyah!!
6 dir is a bash alias to ls -laih --color; yah, yah... I know.
7 more is a bash alias to less -X -I

April 2, 2008

Should've Been Born A Couple Days Earlier

This comes a day late, but certainly not a dollar short...


Date: April 1, 2008 12:38 PM
From: J. Paul Reed <preed@songbirdnest.com>
To: Songbird Devs
Cc: Songbird QA
Subject: Version control system switch in Q2

Hey all,

I've been asked to evaluate version control systems that we should switch to, to better model our development and build processes.

One of the main goals behind this request is to employ a revision control system that will track changes more effectively, as well as provide a method to seamlessly integrate the agile process (stories, tasks, etc.) right into the version control system itself. We're also looking for advanced branching support, which current systems like Mercurial and git lack.

After some careful consideration of our options, I'm recommending that we switch to IBM's ClearCase.

You can find more information about ClearCase here:

* http://en.wikipedia.org/wiki/Clearcase
* http://www-306.ibm.com/software/awdtools/clearcase/

ClearCase has great support for implementing a complete end-to-end process, as well as great support for a lot of IDEs.

In case any of you have worked with ClearCase before, rest assured that I'll be working with Jan to get a req out for a ClearCase repository administrator. This will, obviously, be a full time position.

I'll be working on conversion scenarios later this week, with the initial import of our source code tree happening next week.

We should plan to be off of Subversion and git by the third week of April. I'll be sending out additional email with where to get your ClearCase client licenses the week of the 21st.

If there are any questions or concerns about this conversion, don't hesitate to send me email.

thanks,
Preed
--
J. Paul Reed
Manager, Build/Release Engineering

So... after people filter in from lunch, a couple of Birders, Peter (pvh, hacking up in Canada) and David (dbradley), have some questions in #songbird (edited for relevance):

13:17 <pvh> preed: wow, clearcase, eh?
13:17 <preed> pvh: it's the best system out there
13:17 <pvh> preed: so good it requires a fulltime repo admin?
13:18 <preed> "job security"
13:18 <pvh> preed: i'm not saying it's bad -- all i know about it is what's in
the wp article you linked
13:21 <pvh> preed: how are we going to do community version control / do you think we should stop doing community version control?
13:22 <preed> pvh: I think what we're gonna do is offer paid ClearCase licenses for people who want to contribute
13:22 <preed> and nightly tarballs for people who just want to write a patch or two
13:22 <pvh> preed: what about for people who just want to track HEAD?
13:22 <preed> yah, nightly tarballs
13:22 <pvh> preed: that kinda sucks, but i don't think it's a dealbreaker
13:22 <pvh> preed: so i can just mount my repo as a filesystem?
13:22 <pvh> preed: that's pretty cool
13:22 <preed> yeah
13:23 <preed> and if you're running Linux, you need a kernel module
13:23 <preed> it's really the version control system of the future
13:23 <preed> "the future is here... today!"
13:23 <pvh> what about my offline laptop?
13:23 <pvh> preed: i spend a lot of time working w/o net access
13:24 <pvh> preed: and over low bandwidth links
13:24 <preed> pvh: would hourly tarballs help?
13:24 <preed> I think we could do that
13:24 <pvh> preed: no, not for me
13:24 <pvh> preed: since i need to be *in* the VC system
13:25 <preed> pvh: maybe rdiff, then?
13:25 <pvh> preed: oh, i see at the bottom of the WP article
13:25 <preed> I can keep a copy checked out on my machine
13:25 <preed> and you can pull that?
13:25 <pvh> preed: dynamic views not available w/o net access
13:25 <pvh> preed: that sucks muchly for laptoppers and remotes
13:25 <preed> pvh: you know, you might have trouble using ClearCase anyway...
13:26 <pvh> preed: why's that?
13:26 <preed> I don't think there's a Canadian English translation of it yet
13:26 * pvh slaps preed with a salmon
13:26 <pvh> preed: is there an OS X version?
13:26 <preed> think so
13:26 <preed> maybe I could FedEx you the diffs?
13:26 * stevel agitates for hg or git
13:26 <preed> on floppy?
13:26 <redfive> I thought they stopped on OS 9
13:27 <preed> stevel: as my email explained, hg/git don't have the advanced branching capabilities we need.
13:27 <steve_k> preed: i think the kernel module only works with the 2.4.x kernels, damn binary code
13:27 <preed> steve_k: do they have an OpenSolaris kernel module?
13:27 <steve_k> well, i think there is a 2.4.x ubuntu
13:28 <steve_k> so we're probably OK
13:28 <stevel> preed: clearly not. :)
13:28 <pvh> http://www-1.ibm.com/support/docview.wss?ratlid=cctocbody&rs=984&uid=swg21161662 ?
13:28 <pvh> preed: no offense, but this sounds like an absolutely horrible idea at this point
13:28 <preed> pvh: well... I did spend a week researching it...
13:28 <pvh> preed: i'm not saying i can't be convinced, but i really see a lot more shortcomings than advantages so far
13:28 <steve_k> i don't mind, the 2.4 kernels have always been much more stable
13:29 <preed> I think it's the best solution available.
13:29 <pvh> preed: since it doesn't work on my platform, and doesn't work for me remotely, i might be somewhat biased against it
13:29 <pvh> preed: but presumably once it's set up and working it's super great
13:29 <preed> it really is...
13:29 <preed> maybe we can get you a better machine?
13:30 <pvh> preed: a non mac?
13:30 <preed> pay for DSL or something?
13:30 <erikstaats> Maybe we can set up a system with VNC for using ClearCase.
13:30 <preed> erikstaats: oh, that's a good idea
13:30 <preed> pvh: would that work?
13:30 <preed> I'll put it in a VM
13:30 <preed> it'll be superfast.
13:30 <erikstaats> So what is the best platform to run ClearCase?
13:31 <pvh> preed: maybe?
13:31 <preed> erikstaats: win32, I think
13:31 <preed> which, let's face it, is always the answer to the question "What is the best platform to do X?"
13:31 <dbradley> erikstaats: Unix'ish is probably the most common server
13:31 <erikstaats> OK, I'll set my win32 VM with it then.
13:31 <redfive> preed: maybe we can leverage some mozilla expertise
13:33 <dbradley> preed: So we're going to get an open license version?
13:33 <dbradley> preed: unlimited user I mean
13:34 <preed> dbradley: no, we'll get the exact number of licenses we need
13:35 <preed> they're very particular about that, for some reason
13:35 <pvh> :(
13:35 <pvh> preed: tell me some good things about clearcase
13:35 <dbradley> preed: Just wondering how external people are going to get code in
13:35 <preed> dbradley: patches, like always
13:36 <pvh> oh you son of a bitch
13:36 <mattc> HAAA
13:36 <pvh> preed: you worthless son of a bitch
13:36 <preed> :-)
13:36 <stevel> rofl
13:36 * pvh crawls under his desk
13:36 <steve_k> LULZ
13:36 <redfive> rotflmao
13:36 * pvh EPIC FAIL
13:36 * preed whispers... "gotcha"
13:36 -!- pvh is now known as pvh-shame
13:36 <stevel> and the office erupts in laughter

I think what amazes me the most is that this "switching to ClearCase" Fool has more or less worked the first April Fool's Day I've been at every job I've had.

(Mozilla Corp. was, admittedly, a tougher sell...)

This year was definitely the best one yet, though... thanks to pvh and dbradley. ;-)