What each project's Makefile hooks run. Versions are the ones pinned in the repository
(lockfile, Containerfile, or CI).
Purpose
Tool
Unit tests
minitest 6.0.6 (a bundled gem, so it is listed in each Gemfile)
Lint
RuboCop 1.92.0
Format
RuboCop --autocorrect
Dependencies
Per-project Gemfile and committed Gemfile.lock (exact versions and checksums); the tools themselves use only the standard library and run without Bundler
Build output (BIN_DIR)
src/bin/: an extensionless #!/usr/bin/env ruby launcher
Install
Copies src/bin and src/lib to $(LIBDIR)/rb/<project>/ and writes a #!/bin/sh launcher to $(BINDIR)
A project is implemented once it is listed in IMPLEMENTED in the repository's root
Makefile. CI then builds, lints, and tests it in the container and natively on Linux,
macOS, and Windows.