Daniel Pocock's personal blog

Software engineer, Free/Open Source Software Innovator, Debian Developer

About

Contact

Free/Open Source Software activities

Gitlab

Github

4 October 2020

A distributed packaging workflow

by

At the beginning of the twentieth century, Ford Motor Company famously produced each Model T in just 93 minutes using the Assembly line technique.

Henry Ford himself is often credited with the idea, even though other industries had already used similar methods. Nonetheless, the Wikipedia article on the subject opens with a quote from Ford:

The principles of assembly are these:

  1. Place the tools and the men in the sequence of the operation so that each component part shall travel the least possible distance while in the process of finishing.
  2. Use work slides or some other form of carrier so that when a workman completes his operation, he drops the part always in the same place—which place must always be the most convenient place to his hand—and if possible have gravity carry the part to the next workman for his own.
  3. Use sliding assembling lines by which the parts to be assembled are delivered at convenient distances.

Is the production of the Model T really that different from the production of a GNU/Linux-based operating system such as Fedora or Debian?

One opportunity that presents itself today is the Interplanetary File System (IPFS).

Each file distributed in IPFS is identified by a Content ID (CID), a hash, similar to the way commits are identified in Git.

Think about IPFS as a giant conveyor belt: the upstream developer puts two files there to begin with, the tarball and a GPG signature.

Another volunteer does a license analysis on the tarball and publishes their findings. Maybe they use the DEP-5 file format from Debian. Their findings are published as a separate object in IPFS with a distinct CID.

The critical insight here is that in Ford Motor Company's assembly line, each worker would focus on a single area, for example, the wheels. In this IPFS-based assembly line approach, a contributor doesn't focus on a single package, they are empowered to do a single task for any package.

Another example that is relevant across platforms is the development of patches for a package. In some cases a single patch is useful across many distributions. These patch files can also be published as objects in IPFS to facilitate sharing.

This idea may sound disruptive but it is worth remembering that key statistic, in 1913, each Model T could be assembled in just 93 minutes.

tags: promote