Skip to content

ruff 0.16 format rewrites Markdown — CI will auto-commit .md reformats fleet-wide #57

Description

@thorwhalen

Summary

ruff 0.16's format subcommand now formats Markdown files (it reformats Python code fences inside .md), not just .py. Because the wads CI format step runs in-place and pushes results back to the default branch, any repo with Python fences in its markdown will get auto-committed markdown reformats nobody asked for on its next default-branch merge.

Observed

In i2mint/ij, uvx ruff format . rewrote:

  • PHASE2.md, PHASE3.md, PHASE4.md
  • misc/REASEARCH.md

These were pre-existing drift (confirmed by running the same command against the untouched default branch), so the reformats were reverted out of the PR diff — but they will land the moment that branch merges and CI's format step runs.

Why it matters fleet-wide

  • The wads CI format step is not --check; it rewrites and commits.
  • Docs, READMEs and design notes with python fences are common across the fleet.
  • The resulting commits are noise in the history and can conflict with in-flight branches (the rollout already requires a pull-before-push dance because of the version-bump + format push-back).

Decision needed

Pick one fleet-wide policy:

  1. Exclude markdown from ruff formatting — add *.md to the ecosystem-standard [tool.ruff] exclude block that wads generates, and backfill it into existing repos.
  2. Accept the churn — but then deliberately run a one-time ruff format pass per repo so the reformat lands in a reviewed commit rather than as a surprise CI push-back.

Option 1 is probably right: markdown formatting is a cosmetic concern that should not be coupled to the test/publish pipeline.

Note on ruff pinning

wads actions pin ruff==0.16.0 for uv-stub repos, but uv-inline repos invoke uvx ruff (latest), so inline repos will pick this behaviour up unpredictably as ruff releases.

Surfaced during the 2026-07-30 wave-0 rollout batch. Cross-ref: #51.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions