Requirements and dependencies¶
This chapter records the software Prodockit uses, the version floors declared
by the package, and the external tools that Python package installation cannot
supply. Authors normally do not need to select these versions individually:
use prodockit pins whenever a project must be returned to the supported,
tested combination.
The supported preparation route uses Python 3.14. The package's technical
floor is Python 3.11, and installation is tested on 3.11, 3.12, 3.13 and
3.14; pip refuses older versions before import.
Installed with Prodockit¶
Everything in this section is pulled in automatically by
pip install prodockit, except where noted.
Table 9.1 lists the runtime dependencies installed with Prodockit and explains why each one is needed.
1. Requirements installed with Prodockit
| Requirement | Needed for |
|---|---|
Markdown (>= 3.10.3) |
every extension |
zensical (>= 0.0.73) |
Zensical integration and prodockit.zensical_macros |
| PyMdown Extensions (>= 12.0.1) | prodockit.steps and prodockit.tree are built directly on the PyMdown Blocks API; prodockit.pdf also preserves the output of PyMdown features |
beautifulsoup4 (>= 4.12) |
prodockit.pdf |
click (>= 8.0) |
the prodockit command-line tool |
PyYAML (>= 6.0) |
prodockit adopt support for Zensical projects that retain a compatible mkdocs.yml or mkdocs.yaml configuration filename |
packaging (>= 24.0) |
comparing an adopted project's recorded Prodockit version floor with the installed release |
pypdf (>= 4.0) |
prodockit.pdf |
tomlkit (>= 0.13.2) |
editing Adopt's TOML configuration and review ledger while preserving existing comments and formatting |
pathspec (>= 0.12) |
respecting .gitignore when collecting documentation sources outside a Git repository |
The floors in Table 9.1 are declared in
pyproject.toml, and a test keeps the table in step with them. They are
compatibility floors, not a recommendation to assemble a toolchain from each
minimum independently. Run prodockit pins to select the supported set.
Installed on first PDF use¶
pdk pdf creates pdf-requirements.txt on first use if it is absent; projects
may commit it separately from website requirements. On macOS and Linux,
pdk pdf installs its WeasyPrint declaration
into the active project environment on first use, validates the native loader,
and records the requirements and environment fingerprint beneath
.prodockit/cache/pdf/python/. An unchanged warm build does not invoke pip.
When the document enables a back-of-book index, the same preparation adds
PyMuPDF (>= 1.24); otherwise it is not installed. Windows x64 uses the verified
standalone WeasyPrint runtime and ignores the Python WeasyPrint declaration.
Not installed by pip¶
The requirements in this section are not supplied by
pip install prodockit, and they differ in kind.
Table 9.2 identifies the external tools that pip cannot install and the features that use them.
2. Not installed by pip
| Requirement | Needed for |
|---|---|
pandoc (3.10.1) |
prodockit.pdf, and prodockit.bibliography even without a PDF build. Prodockit downloads the verified official archive into the project cache on first use; Windows ARM64 runs the reviewed Windows x64 executable through Windows 11 app emulation for website citations. |
| Inter 4.1 and JetBrains Mono 2.304 | prodockit.pdf. pdk pdf assembles and verifies a minimal project-local OFL font bundle; host font installation is not used. |
mathjax-full (Node >= 22) |
TeX maths in the PDF and website verification |
| Chrome or Chromium | website verification for MathJax; default Mermaid PDF rendering does not use it |
A citation style (.csl) |
only prodockit.bibliography. The standard style is fetched and validated by Bootstrap or Adopt; custom styles remain author-owned - see below |
The citation style is a download rather than a Python package. Pandoc resolves
harvard-cite-them-right.csl from the directory it runs in. Bootstrap fetches
that standard style for a new template project, and Adopt now offers the same
validated download when an existing project's configuration names it but the
file is missing. Adopt retains its validated download in Prodockit's native
download cache, so a later offline Adopt run can restore a known-good copy.
The style is deliberately not committed: it is third-party content with its
own licence and release cadence. Adopt preserves an existing file and never
guesses a source for a differently named custom style; obtain that chosen
style yourself and place it at the path configured by csl_style. A manual
installation can fetch the supported standard style with:
Pandoc is version-sensitive in a way that changes output rather than breaking
the build: a major version below 3 renders code blocks as justified prose, and
3.x releases have disagreed about the same source. PDF and bibliography paths
therefore resolve the same absolute executable from .prodockit/cache/pdf/;
Bootstrap, Adopt, PATH, and the project's virtual environment do not select it.
See Version pinning and
drift.
See PDF generation for how prodockit.pdf locates these tools and
Known limitations for why the Node tools are needed.
A build with neither Mermaid diagrams nor maths needs neither of them, and no
browser.