devenv: a real project in one command (12 processes, readiness checks, devenv test, CI)
blickflick
0:00 / 0:00
devenv: a real project in one command (12 processes, readiness checks, devenv test, CI)
11 просмотров · 2 дня назад
blickflick
7 подписчиков
11 просмотров · 2 дня назад
Make a real project's "one command" work on a machine that isn't its author's. This episode takes hashpool, an open-source Bitcoin mining pool with twelve processes started by devenv up, to a fresh machine, traces each failure to something that came from outside the project, and pins it in the project or puts a check on it.
What you'll learn:
A newer devenv on a 2025 lock: one setting to get in, then devenv update (new modules, Rust 1.86 to 1.98)
A cargo git dependency that hangs on SSH: an insteadOf rewrite set in the project's environment, and git in packages, since the shell falls through to the machine's own tools
Running isn't ready: devenv processes wait, the built-in process manager, after instead of wait loops, and exec ready checks
A test anyone can run: --clean, devenv test with enterTest and the git hooks, and a mint broken on purpose
A coding agent on the stack: background start, wait, logs and restart as commands, and a Stop hook that runs a quick cargo check
A Mac and CI: sha256-TODO hashes filled with nix store prefetch-file, a GitHub Actions workflow run locally, and devenv gc after finding the GC root that kept the old Rust
Chapters:
00:00 Intro
02:04 Somewhere new
04:42 One command
05:38 Ready for whom?
08:10 A test
09:27 The agent
10:20 There, too
11:37 Left behind
12:27 Recap
Shown with devenv 2.4.0, recorded on Linux. Project: hashpool by vnprc, https://forge.anarch.diy/vnprc/hashpool (commit a5b5610).
Previous: The handoff: package, image.
Unofficial tutorial, not affiliated with Cachix, the devenv project or hashpool. Docs: https://devenv.sh