Skip to content

Update rumdl to 0.3.3 and drop the MyST target workarounds - #1390

Open
laughingman7743 wants to merge 4 commits into
masterfrom
chore/rumdl-0.3.3
Open

laughingman7743 wants to merge 4 commits into
masterfrom
chore/rumdl-0.3.3

Conversation

@laughingman7743

@laughingman7743 laughingman7743 commented Nov 11, 2026 •

Copy link
Copy Markdown
Member

WHAT

  • Pin rumdl 0.3.3 in .mise.toml (was 0.3.2).
  • Remove the three <!-- rumdl-disable-next-line MD044 --> comments on the MyST (sqlalchemy)=, (pyathena)=, and (polars)= targets, and the .rumdl.toml note that pointed to the upstream issue.
  • Enable MD041 (first line must be an H1), completing the markdownlint 0.38 rule set except MD013, MD014, and MD043.
    Its front matter title pattern is set to markdownlint's case-insensitive one.
    rumdl can allow lines of only inline images or inline-linked badges before the first heading, which markdownlint reports; rumdl has no option for this, and the config records it.

WHY

rumdl 0.3.3 fixes rvben/rumdl#983: in the MyST flavor, targets, block breaks, and comments are structural lines, so MD044 and MD041 no longer check them as text.
The MD044 suppressions existed only for that bug (added in #1371, pointer in #1376).
MD041 was off only because docs/*.md files start with a (label)= target before their H1.

TEST

Tested commit: the head of this PR.

  • mise exec -- rumdl check (0.3.3): no issues in 30 files.
  • Control with 0.3.2 on the same tree: 3 MD044 issues on the targets; with MD041 enabled, 16 MD041 issues in docs/*.md. With 0.3.3, MD041 reports none.
  • A root-level canary file starting with prose is flagged by MD041, so the rule is active under the current config.
  • MD041 front matter probes (stdin): Title:, title:, "title":, and TITLE = are accepted; name: and subtitle: without an H1 are reported, matching markdownlint 0.38's ^\s*"?title"?\s*[:=] with the i flag.
  • MD041 preamble probes: an inline image-only or inline-linked badge line before # T passes; reference-style images and badges, an inline image whose URL has parentheses, <div>, <img>, and an image followed by text are reported.
  • just docs lint, just lint: pass.
  • uv run sphinx-build -E -b html docs <out>: no warnings other than the existing ones from inherited SQLAlchemy docstrings.
  • No AWS tests: Markdown and lint configuration only.

🤖 Generated with Claude Code

rumdl 0.3.3 treats MyST `(label)=` targets as structural lines
(rvben/rumdl#983), so MD044 and MD041 no longer check them as text.
Remove the three MD044 disable comments on labels and enable MD041,
which was off only because docs/*.md start with a target.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread .mise.toml
shellcheck = "0.11.0"
actionlint = "1.7.12"
rumdl = "0.3.2"
rumdl = "0.3.3"

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-review round one (behavior and implementation) — CLEAN

Base edfafcf59d4382c9af6d2111816ac1209c46dba7, head 7b96b703800d50bf37ba754d8c55dec28336101e.
Covered: .mise.toml pin, .rumdl.toml enable list and comments, the three removed disable comments in docs/index.md, docs/polars.md, docs/sqlalchemy.md.

  • CI installs rumdl through jdx/mise-action from .mise.toml (.github/workflows/docs-lint.yaml:28,37), and the workflow path filter includes .mise.toml, so CI runs the bumped version.
  • With 0.3.3, rumdl check reports no issues in 30 files; 0.3.2 on the same tree reports the 3 MD044 target issues, so the removed comments were the only suppression needed.
  • MD041 is active under this config (a root-level canary starting with prose is flagged) and reports nothing on 0.3.3, versus 16 docs/*.md hits on 0.3.2.
  • No remaining rumdl-disable comments or references to MyST flavor: targets ((label)=) are checked as text (MD044, MD041) rvben/rumdl#983 in the tree.
  • Sphinx build (-E) shows no new warnings; removing HTML comments before the (label)= targets does not change rendering.

Comment thread .rumdl.toml
"MD025", "MD026", "MD027", "MD028", "MD029", "MD030", "MD031", "MD032",
"MD033", "MD034", "MD035", "MD036", "MD037", "MD038", "MD039", "MD040",
"MD042", "MD044", "MD045", "MD046", "MD047", "MD048", "MD049",
"MD041", "MD042", "MD044", "MD045", "MD046", "MD047", "MD048", "MD049",

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-review round two (claims and compatibility) — CLEAN

Base edfafcf59d4382c9af6d2111816ac1209c46dba7, head 7b96b703800d50bf37ba754d8c55dec28336101e.
Claims checked:

markdownlint 0.38 matches the title key case-insensitively, while
rumdl's default lookup is case-sensitive. Record that rumdl always
allows Markdown images and badges before the first heading.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread .rumdl.toml
"MD025", "MD026", "MD027", "MD028", "MD029", "MD030", "MD031", "MD032",
"MD033", "MD034", "MD035", "MD036", "MD037", "MD038", "MD039", "MD040",
"MD042", "MD044", "MD045", "MD046", "MD047", "MD048", "MD049",
"MD041", "MD042", "MD044", "MD045", "MD046", "MD047", "MD048", "MD049",

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent review (relayed) — FINDINGS

Reviewer: Codex CLI 0.166.0 (gpt-6-astra), codex exec -s read-only, session 01a1caa6-61e1-7902-85c2-f59e0e253645. Static review plus read-only rumdl check / stdin probes on a detached snapshot; no PR description or author conclusions supplied.
Base edfafcf59d4382c9af6d2111816ac1209c46dba7, head 7b96b703800d50bf37ba754d8c55dec28336101e.
Covered: exact diff, mise/CI/just wiring, configured file sets, rule inventory, MyST labels, MD044 enforcement, MD041 behavior and skill front matter, 0.3.2→0.3.3 defaults. Cache-disabled lint passes all 30 files; all 49 intended rules are active (omissions only MD013, MD014, MD043); no other changed defaults need pins.

  1. P2 .rumdl.toml:28 — MD041 permits image preambles outside MyST: README.md with only ![Logo](logo.png), or an image followed by # Title, passes; markdownlint 0.38 reports both. rumdl skips image/badge lines even with allow-preamble = false. Keep a strict check or record the compatibility exception.
  2. P2 .rumdl.toml:28 — front matter title matching: ---\nTitle: Example\n---\n\n## Section is reported by rumdl but accepted by markdownlint 0.38 (case-insensitive). Set MD041.front-matter-title-pattern = '(?i)^\s*"?title"?\s*[:=]'.

Author verification: both reproduced with stdin probes and confirmed against markdownlint 0.38.0 lib/md041.mjs (non-heading content errors when allow_preamble is false) and helpers.cjs frontMatterHasTitle (new RegExp(..., "i")). rumdl flags <div>, <img>, and image-plus-text lines; only image/badge-only lines are skipped, with no option to disable that.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Repaired in dd79c0f.

  1. Accepted as a recorded compatibility exception: rumdl 0.3.3 has no option to stop skipping image/badge-only lines, and no linted file relies on it (README.md starts with # PyAthena after its license comment). .rumdl.toml now states the difference next to the MD041 options. Before this PR MD041 was off entirely, so every other preamble markdownlint reports is now caught.
  2. Fixed: [MD041] front-matter-title-pattern = '(?i)^\s*"?title"?\s*[:=]'. Probes: Title:, title:, "title":, TITLE = accepted; name: and subtitle: without an H1 reported.

Self-review of the repair (behavior and claims): rumdl check --no-cache clean on 30 files, just docs lint and just lint pass; the new comment's claims are the probe results above. MD025 has the same case-sensitive title lookup but no pattern option in rumdl 0.3.3 (Unknown option for rule MD025: front-matter-title-pattern); that is the MD025 difference already accepted in #1360 and stays out of scope.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent follow-up (relayed) — Codex CLI 0.166.0 (gpt-6-astra), codex exec -s read-only, session 01a1caae-98c7-7941-b3f5-be2fef59a297; range-diff edfafcf59d4382c9af6d2111816ac1209c46dba7..7b96b703800d50bf37ba754d8c55dec28336101e → edfafcf59d4382c9af6d2111816ac1209c46dba7..dd79c0f9eedac6a16e2ba6d914c721c83bb7de27. Result: FINDINGS.

Finding 2 resolved: YAML/TOML/JSON title cases match markdownlint 0.38 without over-acceptance. Finding 1's exception is accurate (no rumdl 0.3.3 option; allow-preamble = false still permits them).
P3 .rumdl.toml:76: "always lets Markdown images and badges precede" is too broad — reference-style images (![Logo][logo]) and badges still trigger MD041.

Verified (reference image and reference-link badge reported; inline image and inline-linked badge pass) and repaired in dffac0d: the note now says "lines of only inline images or inline-linked badges"; PR body updated to match. just docs lint passes. Comment-only repair; round-one/two check: the narrowed claim equals the probe results, no behavior change.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent follow-ups (relayed)

  • Codex session 01a1cab6-dd4d-7343-9b03-b08e220f3e2e on dffac0d: FINDINGS P3 — "always" is still too broad; ![Logo](logo(1).svg) before # Title is reported. Verified locally and repaired in 5b33d71 ("always lets" → "can let"; PR body updated). Comment-only; just docs lint passes.
  • Codex session 01a1cab9-6bbe-7383-a9eb-cf4110dd4c6a on 5b33d71: CLEAN — simple inline images and linked badges pass MD041 even with allow-preamble = false, the parenthesized URL case is reported, and "can let" captures this.

Independent review complete for head 5b33d71 (static review with read-only rumdl probes).

laughingman7743 and others added 2 commits November 11, 2026 22:05
Reference-style images and badges are still reported by rumdl.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rumdl still reports some inline images, such as one whose URL has
parentheses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@laughingman7743
laughingman7743 marked this pull request as ready for review November 11, 2026 13:14

This branch has not been deployed

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MyST flavor: targets ((label)=) are checked as text (MD044, MD041)

1 participant