"THE BUILD IS BROKEN. BRENDAN BROKE THE BUILD."

Tinderbox was our second or third most important export, neck-and-neck with Bugzilla.

Farewell to Tinderbox, the world's 1st? 2nd? Continuous Integration server

In April 1997, Netscape Release Engineers wrote, and started running, the world's first? second? continuous integration server. Now, just over 17 years later, in May 2014, the tinderbox server was finally turned off. Permanently.

This is a historic moment for Mozilla, and for the software industry in general, so I thought people might find it interesting to get some background, as well as outline the assumptions we changed when designing the replacement Continuous Integration and Release Engineering infrastructure now in use at Mozilla.

Previously, previously, previously.

Tags: , ,

8 Responses:

  1. I like telling wide eyed young programmers of the bad old days when the start of every day consisted of 1) update code 2) compile for an hour 3) see your build fail because someone checked in broken code 4) go back to step one until it works

  2. Nick Thompson says:

    Yeah it was totally green like that image.

  3. Nick Lamb says:

    The vertical columns of green reminded people of trees, giving rise to the phrase “the tree is green”

    Er, I wasn't at Netscape in 1997, but I don't think it takes this weird leap of imagination to go from the source code tree (which definitely isn't a vertical column of anything) or the version tree to the phrase "the tree is green"...

    While I'm here: CI is one of a family of development tools that I've talked about at length elsewhere, which take an obviously good idea (in this case "Let's check everything actually builds" but can be extended "... and passes unit tests" or even "... and doesn't leak too much RAM in a 24 hour soak test") and automates it so that it gets done rather than perpetually being on someone's TODO list. It occurs to me that for a project with a lot of churn it might be worth having the CI system be smart enough to, when a build breaks, automatically use git bisect or equivalent tooling to find which recent change broke the build.

    • jwz says:

      Yeah, that's complete nonsense. It was called "the tree" for the obvious reason.

      We had an earlier tool called "Bonsai" that was a web interface to CVS (for "pruning the tree"). It was called Tinderbox so we could make the joke, "the tree is on fire". Puns are very important in naming tools. I think at one point the red boxes had animating flame GIFs in them, but I might be misremembering that.

    • njs says:

      > It occurs to me that for a project with a lot of churn it might be worth having the CI system be smart enough to, when a build breaks, automatically use git bisect or equivalent tooling to find which recent change broke the build.

      An even better idea is to simply make the CI system the gatekeeper to integration -- people submit changes to the CI system, and when they pass the CI system bumps trunk forward to include them. This way the build simply never breaks. (And if you have a high enough churn rate that you can't test each submission individually, then the fact that your queued changes are parallel rather than sequential gives you a lot of flexibility in choosing how to get them in.)

      Ironically, the existence and design of modern content-addressed chained-hashing DVCS's started with an attempt to make this kind of system work, but while DVCS took over the world this hasn't at all yet...

  4. Don Hopkins says:

    Brendan... Isn't he that smug sociopathic bigot whose's infamous for misunderstanding the meaning of equality, campaigning against world wide wedding open access and interoperability, and whose own marriage is such a hopeless sham that he resorted to unapologetically destroying other people's happy marriages, just so he didn't feel so alone? What ever happened to him after Netscape? I haven't heard about him in a while, which is a relief. ;)

  5. Don Hopkins says:

    Brendan... Isn't he that smug sociopathic bigot whose's infamous for misunderstanding the meaning of equality, campaigning against world wide wedding open access and interoperability, and whose own marriage is such a hopeless sham that he resorted to unapologetically destroying other people's happy marriages, just so he didn't feel so alone? What ever happened to him after Netscape? I haven't heard about him in a while, which is a relief. ;)

  • Previously