Notes/RMQA

RMQA Joins the Studio to Check a Release Before It Goes Out

RMQA is the studio’s thirty-second project. Its program, rmqa, checks a software release before it’s published. A CI run can be green while the arm64 download holds the amd64 build, the Windows zip lacks its license file, or one archive still carries last week’s version. rmqa opens every archive and checks it against a small manifest: every platform there, each program built for the right system and processor and marked executable, the version inside, no .env files or private keys, and checksums that cover every file. The launch post walks through it.

0.1.0 writes a first manifest from a release you know is good, checks a folder or a draft GitHub release, and prints plain text, JSON, GitHub annotations or Markdown. It also comes as a GitHub Action. The use cases cover a wrong build in a Go CLI’s arm64 archive, Rust-style target names, lost executable bits, secrets in archives and Ukue’s real 0.1.0 release, which passes with no errors.

The testing breaks a freshly built release in 24 ways and checks that each is caught with the right code, then combines several at once: 300 releases with 671 problems in the recorded run, every one reported. rmqa checks its own releases before they’re published, and the first time it did, it failed rmqa itself over a version check that Go’s string packing tripped. That was fixed before release. Two independent reviews followed on launch day, and 0.1.1 and 0.1.2 act on them: rmqa now keeps only programs and the first bytes of other files in memory, so in the recorded run a 1 MB archive that unpacks to 1 GiB peaks at 12 MB and one of 150,000 tiny files at 60 MB, and hard links and chains of symlinks that lead outside the folder are caught. The GitHub Action is now tested on Linux, macOS and Windows runners.

Open source under Apache 2.0, one Go binary for Linux, macOS and Windows, from the latest release.