Support and compatibility¶
This page is for anyone deciding whether prodockit fits a project or checking whether their platform and tool versions are covered. It describes the public support and compatibility boundary; implementation-specific constraints remain in Contributor internals.
Maturity and stability¶
prodockit is currently classified as Alpha and uses pre-1.0 versions. Its document features and publishing tools are functional and tested, but there is not yet a formal, versioned public API stability contract. A pre-1.0 upgrade can therefore include a breaking change when the change is needed to make the public configuration consistent. Such changes are identified in the release notes.
The future stability contract is tracked in issue #7.
Required versions¶
Installing prodockit installs these Python dependencies automatically:
The current test matrix covers Python 3.10, 3.11, 3.12, and Python 3.13. The documentation build currently pins Zensical 0.0.55 and pymdown-extensions 11.0.1 so changes to either renderer arrive as reviewed version changes rather than silently altering published output.
| Requirement | Supported or tested range | Why it matters |
|---|---|---|
| Python | 3.10–3.13 tested | The package requires Python 3.10 or later |
| Zensical | 0.0.55 or later | Site configuration, rendering, navigation, macros, and icons |
| Python-Markdown | 3.10.3 or later | The extension engine used by every authoring feature |
| pymdown-extensions | 11.0.1 or later | PyMdown Blocks is the direct foundation for prodockit.steps and prodockit.tree; the PDF pipeline also preserves PyMdown output |
PyMdown Blocks is particularly important when evaluating the authoring model. The numbered-steps and directory-tree extensions are specialised Blocks API implementations, so their slash fences, nesting rules, and option layout follow PyMdown's block syntax. They are not separate parsers that only resemble it.
Pandoc, WeasyPrint, Node tools, fonts, and other optional publishing requirements depend on the output being built. See Installation for that complete tool-by-tool boundary.
Platforms and test depth¶
The platform testing described here covers Linux, macOS, and Windows.
Bootstrap has now completed
manual end-to-end testing on Ubuntu Linux, Windows, and macOS against both the
University of Surrey's GitLab (gitlab.surrey.ac.uk) and GitHub.com.
Two complete document workflows were exercised:
- Start a new document: prepare the machine with bootstrap, create a new document repository on the selected host, and reach a working local build.
- Adopt an existing document: take an existing online repository, install it locally on the prepared machine, and reach a working local build.
This is practical integration testing across the three operating systems, two hosts, and both common starting points. It verifies that the stages work together in real environments, beyond unit tests or inspection of generated commands. It is not an automated cross-platform regression matrix, however:
| Platform | Regression test coverage | Manual bootstrap coverage |
|---|---|---|
| Ubuntu Linux | Full test suite on every push and pull request using ubuntu-24.04 |
Both repository workflows on Surrey GitLab and GitHub.com |
| macOS | The full test suite is also run locally on macOS; there is no hosted macOS job | Both repository workflows on Surrey GitLab and GitHub.com |
| Windows | No hosted test job | Both repository workflows on Surrey GitLab and GitHub.com |
The manual matrix gives confidence in installation and first-use integration, but it is a point-in-time result. The locally run macOS suite adds full regression coverage on that platform, although it is not enforced by a hosted pull-request gate. Windows can still regress between manual runs because it does not yet run the full suite for every change.
Windows requires native libraries for PDF generation that pip cannot
install. It also uses different default text encodings. The known setup steps
are documented under PDF requirements, and
prodockit bootstrap checks the corresponding tools. Report a Windows-only
failure rather than assuming it is local configuration; it may expose a real
coverage gap.
Bootstrap also recognises GitLab.com, but the completed manual platform matrix described above covers Surrey GitLab and GitHub.com. See Set up a machine for the host boundary.
Supported surfaces¶
| Surface | Current support |
|---|---|
| Markdown extensions | All nine registered extensions are documented and tested |
| PyMdown Blocks integration | prodockit.steps and prodockit.tree directly use the Blocks API |
| Zensical website macros | Implemented and tested; tied to some pre-1.0 Zensical internals |
| PDF and source bundles | Implemented and tested with Pandoc and WeasyPrint; external renderer versions can affect layout |
| GitHub and GitLab publishing | Maintained through the annotated workflows in prodockit-template |
| Repository and template commands | Implemented and tested; commands that write files provide a report or dry-run path first |
For observable constraints such as live-reload staleness, unsupported citation forms, and differences between browser and PDF rendering, see Known limitations. If the behaviour is not listed there, search or open a GitHub issue.
Upgrade safely¶
Read the release notes before changing a pinned version. Build
the site with zensical build --clean --strict, build the PDF if the project
publishes one, and run its built-output checks before merging. Template-based
projects should also review changes reported by
template-sync.