ChangeLog

0.4.0 (2026-04-04)

  • Added support for running tutorials in Vagrant.

  • Initial context variables are now rendered.

  • Alternatives now allow specific context and environment variables.

  • The JSON schema is now available here and can be used in IDEs such as PyCharm.

  • Add ability to specify required executables that are checked before running a tutorial.

  • Rename tutorial_root to root.

  • Alternatives can now be skipped in documentation.

  • Changing the working directory moved out of doc/run blocks as it is common functionality.

  • chdir can now be False to switch back to where the tutorial started.

0.3.0 (2025-12-26)

  • Add support for Sphinx 9.0.

  • Tutorials can now be configured to pass a clear environment to all processes.

  • Tutorials can now configure additional environment variables passed to all processes.

  • Single commands can now update the environment for all subsequent commands. Values are rendered as templates, so you can add (parts of) the output of a command to the environment by combining a test for the command output that uses a named pattern in a regular expression for the output.

  • parts.{commands}.{command}.run.{chdir} is now a template. This allows you to change the directory based on the output of a previous command.

  • Bugfix: Individual commands marked as skipped for documentation, are now actually skipped.

0.2.0 (2025-12-23)

Documentation

  • Continue reworking the documentation.

  • Add option to render extra text before/after a part. The text is rendered as a template.

  • Parts can now have an ID that you can reference when rendering parts to make sure that you render what you actually think you render (useful for longer tutorials).

  • Add structured_tutorials_context option to pass extra context variables to a tutorial.

  • Rename the tutorial_root option to structured_tutorials_root.

  • rename the structured_tutorial_command_text_width option to structured_tutorials_command_text_width.

Command-line

  • Add option --define {key} {value} to pass extra context variables.

  • Greatly improve error handling.

  • Parts can now have a name that is shown before running a tutorial part.

  • Add option to clear the environment for a command.

  • Add option to add extra environment variables for a command. Environment variables are rendered as templates.

  • Add ability to pass input to a process.

  • Command output can now also be tested for line or character count. You can specify an exact match, or a minimum and/or maximum.

0.1.0 (2025-12-22)

Initial version.