🔧 Remove optional dependency on the unmaintained `commonmark` package (#427) ## Summary Supersedes #401 by @nikolas, whose fork does not allow maintainer pushes; their commit is carried here verbatim with authorship preserved (thank you!). The `commonmark` PyPI package was deprecated in 2022 (last release 2019). #401 dropped it from the `compare` extra but left `benchmarking/bench_packages.py::test_commonmark_py` importing it unguarded, so `tox -e py311-bench-packages` (which installs `benchmarking,compare`) would have errored. This PR removes that benchmark too. The `commonmark-py` row in `docs/performance.md` is **kept**, with a footnote explaining that the package is deprecated, has been removed from the benchmark suite, and that the figures are from the last run that included it. The historical comparison is still informative. A changelog line with the rationale is added. ## Commits 1. `Remove optional dependency on commonmark` — the contributor's commit, unchanged. 2. `🔧 MAINTAIN: Remove remaining commonmark references` — drops the orphaned benchmark, adds the changelog line. 3. `📚 DOCS: Keep the commonmark-py benchmark row, with a deprecation footnote`, plus a changelog wording tweak. ## Verification - All tests pass; all pre-commit hooks pass under the new pins. - Local docs build renders the footnote and adds no warnings over master. - Remaining `commonmark` mentions in `pyproject.toml`, `tox.ini` and `benchmarking/` refer to the CommonMark spec or the `commonmark` preset, none to the package. --------- Co-authored-by: Nikolas Nyby <nikolas@gnu.org> GitOrigin-RevId: a5950caef3434ed83045b43311aefcf7e0578aa3 Change-Id: I825f71718b1eb46179dad9ef20cdab36efd6839b
diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fe152f..e574b3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -5,6 +5,7 @@ * ✨ Add `--enable-tables` to the CLI for file, standard input and interactive parsing in [#422](https://github.com/executablebooks/markdown-it-py/pull/422) * 🐛 Fix CLI interactive mode joining input lines with an extra newline, which split every line into its own paragraph and broke hard line breaks, in [#172](https://github.com/executablebooks/markdown-it-py/issues/172) * 📚 Document the Python renderer constructor contract. +* 🔧 Drop the optional dependency on the `commonmark` package and its benchmark, since the upstream package is unmaintained, in [#401](https://github.com/executablebooks/markdown-it-py/pull/401) ## 4.2.0 - 2026-05-07
diff --git a/docs/performance.md b/docs/performance.md index f0291f4..51747a8 100644 --- a/docs/performance.md +++ b/docs/performance.md
@@ -15,7 +15,7 @@ | mistune[^2] | 3.0.1 | 80.409 | 2.335 | | **markdown-it-py** | 3.0.0 | 97.242 | 4.427 | | mistletoe | 1.1.0 | 99.633 | 4.628 | -| commonmark-py | 0.9.1 | 300.403 | 9.706 | +| commonmark-py[^3] | 0.9.1 | 300.403 | 9.706 | | pymarkdown | 3.4.3 | 387.775 | 10.394 | | pymarkdown (+extras) | 3.4.3 | 646.564 | 11.316 | | panflute | 2.3.0 | 860.105 | 208.607 | @@ -26,3 +26,4 @@ [^2]: `mistune` is not CommonMark compliant, which is what allows for its faster parsing, at the expense of issues, for example, with nested inline parsing. See [mistletoe's explanation](https://github.com/miyuchina/mistletoe/blob/master/performance.md) for further details. +[^3]: `commonmark-py` is deprecated and no longer maintained (its last release was in 2019), so it has been removed from the benchmark suite; the figures shown are from the last run that included it.
diff --git a/pyproject.toml b/pyproject.toml index df44491..de6a855 100644 --- a/pyproject.toml +++ b/pyproject.toml
@@ -35,7 +35,6 @@ [project.optional-dependencies] compare = [ - "commonmark~=0.9", "markdown~=3.4", "mistletoe~=1.0", "mistune~=3.0",