Evaluate rumdl as a possible replacement for markdownlint

Proposal

rumdl is a relatively new tool that aims to offer the same features as markdownlint, but written in Rust with huge speed improvements and additional features.

In initial tests, rumdl appears to be extremely fast and has additional rules built-in that we could make use of.

Let's start evaluating rumdl more seriously, as a potential replacement to our current tooling.

Background

We have been using markdownlint for over 6 years now, and it has served us well. This was a replacement to mdl which is a ruby gem that had false positives and was quite slow in comparison.

In 2024, we switched from markdownlint to markdownlint-cli2, as it was the backend used in the VS Code plugin and better suited to our needs (but not a major difference):

Benefits

rumdl seems to have some big benefits over markdownlint:

Drawbacks

Evaluation proces

Steps we can consider taking in the future when we want to evaluate rumdl:

  1. Start testing rumdl in docs-gitlab-com
    • Add minimal .rumdl.toml file, with anything not default being carefully considered.
    • Add rumdl to mise.toml file.
    • Add rumdl to the docs linting image.
    • Add job to docs-gitlab-com to run rumdl against Markdown files in that project.
    • Results:
  2. Repeat for team-tasks.
    • Results:
  3. Repeat for gitlab-development-kit, to see how it goes for a bigger set of docs. Consider gitaly project too, or other smaller projects.
    • Results:

When evaluating the results, include:

  • Speed comparison
  • Anything edge cases (more caught, more missed)
  • Configuration that needs to be considered.
Edited by Marcel Amirault