Skip to content

Add pinned JuliaFormatter tooling and CI format check#58

Draft
garrison wants to merge 1 commit into
mainfrom
add-pinned-formatter-tooling
Draft

Add pinned JuliaFormatter tooling and CI format check#58
garrison wants to merge 1 commit into
mainfrom
add-pinned-formatter-tooling

Conversation

@garrison

Copy link
Copy Markdown
Member

What

Adds a pinned formatting setup so contributors and CI all format with the exact same JuliaFormatter version, regardless of what's installed globally.

Changes

  • format/ — a self-contained environment that pins JuliaFormatter to 2.8.5 (Project.toml [compat] = "=2.8.5" + a committed Manifest.toml). Mirrors the existing gen/ pattern.
  • Makefile — short task runner:
    • make format — format the repo with the pinned formatter
    • make format-check — fail (non-zero exit) if anything is unformatted; used by CI
    • make test, make gen — convenience wrappers for the existing commands
  • .github/workflows/CI.yml — new Format check job (Linux-only, since formatting is platform/version independent) running make format-check on PRs and the merge queue.
  • AGENTS.md — documents the format/ env and the make targets.

Why

The old instruction julia -e 'using JuliaFormatter; format(".")' relied on whatever JuliaFormatter happened to be in the user's global environment, giving inconsistent results across contributors and CI. Pinning in a dedicated env removes that drift without polluting anyone's global environment.

Notes / follow-up

  • To make this a hard merge gate, "Format check" still needs to be added to the required status checks in branch protection / merge-queue settings for main.
  • To bump the version later: edit format/Project.toml [compat], run julia --project=format -e 'import Pkg; Pkg.update()', and commit the updated format/Manifest.toml.

🤖 Generated with Claude Code

Add a self-contained format/ environment that pins JuliaFormatter to an
exact version (mirroring the gen/ pattern), so formatting results no longer
depend on whatever JuliaFormatter is in the user's global environment.

- format/Project.toml + format/Manifest.toml pin JuliaFormatter 2.8.5
- Makefile provides short `make format` / `make format-check` (plus test, gen)
- CI.yml gains a "Format check" job running `make format-check` on PRs and
  the merge queue
- AGENTS.md documents the format/ env and the make targets

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coveralls

coveralls commented Jun 18, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 76.4%. remained the same — add-pinned-formatter-tooling into main

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