Skip to content

Replace Makefiles with justfiles for improved task automation - #12

Closed
JoeyBF wants to merge 1 commit into
masterfrom
claude/makefiles-to-just-872xjz
Closed

Replace Makefiles with justfiles for improved task automation#12
JoeyBF wants to merge 1 commit into
masterfrom
claude/makefiles-to-just-872xjz

Conversation

@JoeyBF

@JoeyBF JoeyBF commented Jul 1, 2026

Copy link
Copy Markdown
Owner

This PR replaces the project's Makefiles with justfiles, a more modern and maintainable task runner. The just command provides better syntax, improved variable handling, and more intuitive recipe definitions compared to Make.

Summary of Changes

  • Added justfiles: Created ext/justfile, web_ext/sseq_gui/justfile, and web_ext/steenrod_calculator/justfile to replace their corresponding Makefiles
  • Removed Makefiles: Deleted ext/Makefile, web_ext/sseq_gui/Makefile, and web_ext/steenrod_calculator/Makefile
  • Updated CI workflows: Modified .github/workflows/ext.yaml to use just commands instead of make, including setup of the just tool (v1.34)
  • Updated documentation: Modified README files and flake.nix files to reference just commands instead of make
  • Updated development environment: Added pkgs.just to flake.nix for Nix users

Key Implementation Details

  • Justfile syntax improvements: Uses cleaner variable syntax ({{VAR}} instead of $(VAR)) and more readable recipe definitions
  • Conditional logic: Leverages just's if/else expressions for cleaner conditional builds (e.g., WASM_UNWIND handling)
  • Shebang recipes: Uses bash shebang recipes for complex multi-line commands, improving readability
  • Consistent structure: All justfiles follow the same pattern with clear comments explaining complex recipes
  • CI integration: All GitHub Actions workflows now install just v1.34 and use just --working-directory to run commands from appropriate directories
  • Backward compatibility: The functionality remains identical; this is purely a tooling migration

The migration maintains all existing build targets and test commands while providing a more maintainable and user-friendly interface for developers.

https://claude.ai/code/session_01DSAx1G1eMeCYPwNH7WNMVo

Convert the three Makefiles (ext, web_ext/sseq_gui,
web_ext/steenrod_calculator) to justfiles and update every caller.

- ext/justfile: benchmark pattern rules become parametrized recipes
  (bench/bench-concurrent/fix-bench NAME) plus loop recipes over
  examples/benchmarks/*. The benchmark first line is expanded unquoted
  into an inner `bash -c`, reproducing the Makefile's quote-removal of
  the literal "" tokens. Also fixes the long-standing fix-benchmarks bug
  (bare BENCHMARKS instead of $(BENCHMARKS)).
- web_ext/sseq_gui/justfile: WASM_UNWIND becomes a justfile variable
  (override via `just WASM_UNWIND=1 wasm`) driving if/else flag vars;
  test-wasm-unwind re-invokes the lib build with the override.
- CI (.github/workflows/ext.yaml): swap `make -C <dir> <tgt>` for
  `just --working-directory <dir> --justfile <dir>/justfile <tgt>` and
  add an extractions/setup-just step to every job that runs recipes.
- Nix: add pkgs.just to the root flake's devTools (subflakes inherit it)
  and swap make->just in the ext/sseq_gui app run scripts.
- READMEs: update documented commands.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DSAx1G1eMeCYPwNH7WNMVo

JoeyBF commented Jul 1, 2026

Copy link
Copy Markdown
Owner Author

Closing in favor of the upstream PR: SpectralSequences#255. The same branch (claude/makefiles-to-just-872xjz) now targets upstream instead of the fork.


Generated by Claude Code

@JoeyBF JoeyBF closed this Jul 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants