A release engineering platform
I bought many of the machines in this lab with one project in mind: a small software forge that can build and release across more than the usual two architectures. I shelved it for a few years. This is the place it will come back, if it comes back.
The problem is not code hosting. Code hosting is the easy part. The interesting part starts after the commit: build, test, sign, package, publish, install, rebuild, and explain what happened when one architecture does not behave like another.
The practical change since I first sketched this is that throwaway examples are cheaper to produce. It is now reasonable to generate a set of small, boring programs across languages, packaging styles, and hosting platforms, then use them as test pieces. The examples are not the work. The path they take through the system is the work.
The tooling makes it worse. It assumes hardware younger than five years and treats anything older as obsolete, as though the world had agreed to throw its computers away on a schedule. The world did not agree. A factory runs a controller welded to a machine that cost ten million and is expected to last twenty years, and you do not swap the computer out because some build tool stopped supporting it. There is a reason OS/2 is still running somewhere today. Software outlives the fashions that build it, and someone still has to ship for it long after the tools have moved on.
So the question is still the same: what would it take to do this properly across the architectures that actually exist rather than the two that happen to be convenient?
The answer I am building is a small GitHub-like platform, run on the lab’s own hardware. Code hosting is the dull part. The interesting part is everything downstream of it: building, signing, packaging, and releasing software across SPARC, POWER, RISC-V, MIPS, arm64, and x86-64, architectures that genuinely disagree about byte order, calling conventions, boot paths, and what a working toolchain even looks like.
Status: early. This is not a report on a finished system.
The first useful milestone is deliberately small: one boring program, in a few boring shapes, delivered through the same pipeline until the pipeline itself becomes the thing under test.
The machines are documented one at a time in the hardware section, and a few already have a place marked out here. The Traverse Ten64 is slated as an arm64 build node, with a lot of network in front of it. The heavier boxes — a POWER9 machine, a Dell R740, a SPARC box — are the build capacity behind the hardest experiment I have set myself: compiling a whole Linux distribution for the Genesi Efika, a 400 MHz PowerPC board, using the rest of the lab to do the work it cannot do for itself. That one is a task for later. This is where the account of it will live.