About this project¶
sphinx-pyrunblock is a hard fork of sphinx-autorun by Hugo Osvaldo Barrera,
itself several generations descended from the original
sphinxcontrib-autorun by Vadim Gubergrits. Full acknowledgement of
that lineage lives on this page; LICENCE and AUTHORS in
the repository root carry the legal/contributor record.
Lineage¶
Oldest to newest, verified against this repository’s own git history where the line passes directly through it (marked verified below), and from research at the time of the 2026 rename otherwise:
sphinxcontrib-autorun (Vadim Gubergrits, starting 2010-03-04 (verified: first commit
1b76446), hosted on the old Bitbucket-basedsphinx-contribcollection). Michael McNeil Forbes contributed to this original project too (verified: commitbe1cbd3, 2012-11-19).sphinxcontrib-autorun2 (David Wolever, 2014) – a parallel fork published under a new name rather than a continuation; sphinx-contrib forks were commonly released this way rather than via commit rights to the original. Not part of this project’s direct line.
sphinx-autorun-ng (Hugo Osvaldo Barrera, 2017) – dropped the
sphinxcontribnamespace, moved off Bitbucket. Released once, then immediately renamed.sphinx-autorun (same Hugo Osvaldo Barrera, 2017 onward, i.e.
WhyNotHugoon GitHub (verified: this repository’s own git history contains Hugo’s “Fork into sphinx_autorun” commit,dc9c315, 2017-01-10) – this is the project still actively maintained today, and the one thesphinx-autorunname on PyPI resolves to.A separate one-off side-branch, sphinx-autorun-ebs (Endre Bakken Stovner, 2018, one release), also exists but was never touched again and isn’t part of this line.
sphinx-pyrunblock (Peter Corke) – this project. Forked from
WhyNotHugo/sphinx-autorun2020-10-26 (verified: first commit2549daa, “Eliminate the line buffering error”). The fix was also submitted upstream the same day, as PR #19 – it sat open for over four years and was eventually closed 2025-01-02 in favour of PR #65, a different, simpler fix for the same underlying bug submitted by another contributor and merged that same day.No further commits landed in this fork until a rewrite arrived 2025-01-12, replacing the original subprocess-per-block execution with a single, shared, in-process interpreter – the change this project’s speed comes from. That rewrite was motivated by real docs-build time becoming a pain point during the push to ship Robotics Toolbox for Python and Machine Vision Toolbox for Python, both of which use this extension to execute live code examples during their own documentation builds.
Why a hard fork¶
sphinx-autorun was never published to PyPI under that name from this
line of descent – sphinx-autorun on PyPI is, and remains, Hugo
Osvaldo Barrera’s actively-maintained project. Publishing this project’s
own substantially rewritten execution engine under an unrelated,
already-claimed name wasn’t viable, hence the rename to
sphinx-pyrunblock and a clean detachment from the GitHub fork
network it started in. The directive name (.. runblock::) is
unchanged, and existing conf.py autorun_languages configuration
carries over – only the package/import name differs.