Notes/BXM

BXM Memo 0.4 Gets a GitHub Action and Locks That Keep Parallel Builds From Caching Half-Written Files

BXM 0.4 is a Memo release. Until now, two runs writing the same output folder at once, such as two parallel steps sharing a cache, could leave one storing a file the other was halfway through rewriting, and every later hit restored that copy. Memo 0.4 makes runs whose outputs overlap take turns. The second run waits, then finds the first one’s result and gets a hit, so the command runs once instead of twice.

An independent review caught two problems before the release. Runs writing a folder and a file inside it didn’t see each other, and a command run by Memo that wrapped its own output waited for its parent forever. Each output now also holds a shared lock on the folders above it, a nested run on its parent’s output fails at once, and no wait lasts more than an hour. A cache that can’t hold locks still works and says so.

The new GitHub Action, softdevstudio/bxm/[email protected], installs bxm-memo from its own release, checks it against the checksums and keeps the cache between workflow runs, tested on Linux, macOS and Windows runners. Canon is unchanged. The release has the binaries, and the launch note covers both tools.