Skip to content

task: replace markdownlint with rumdl for markdown linting #1138

Description

@dgarros

Need

Markdown linting currently relies on markdownlint-cli2, which is run through
npx and therefore drags a Node.js/npm toolchain into what is otherwise a
Python project. This adds setup friction locally and in CI (the dedicated
markdown-lint job), and it is slower than the newer Rust-based alternatives.

We want to move markdown linting to rumdl, a
fast Rust-based markdown linter, to remove the Node dependency for this check,
speed up linting, and align markdown tooling with the project's preference for
self-contained, Rust-backed tooling (as with ruff).

Context

markdownlint is wired into several places today, all of which are affected:

  • .markdownlint-cli2.yaml and docs/.markdownlint.yaml — configuration
  • tasks.pylint_markdownlint task and the docs-generate --fix step
  • .github/workflows/ci.yml — the markdown-lint job
    (DavidAnson/markdownlint-cli2-action)
  • AGENTS.md / .agents/commands/pre-ci.md — contributor-facing references

The existing markdown style rules (see AGENTS.md "Markdown style") and the
current set of linted globs/exclusions should be preserved through the switch.

The rumdl configuration should live in pyproject.toml rather than a separate
config file, keeping tooling config consolidated with the rest of the project.

References

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions