Tutorial SDK
A declarative, reproducible tutorial packaging system and command-line tool that bridges the gap between technical content and stable containerized runtimes.
💡 Focus on teaching. We'll handle the runtime.
Tutorial environments tend to drift over time: Dockerfiles diverge from notebooks, dependencies go unpinned, and validation is left to CI pipelines assembled by hand. tutorial-sdk addresses this by driving the full lifecycle — resolving and locking dependencies, synthesizing deterministic Dockerfiles, validating notebooks locally and inside built containers, and publishing images through a standardized CI workflow — all from a single declarative config.
Online Documentation: https://bnl-peso-hub.github.io/tutorial-sdk/
Key Features
- Declarative Configuration (
tutorial.yml): Declare the whole tutorial surface - metadata, contents, package environments, and validation rules - in a single, Pydantic-validated YAML file. - Deterministic Environment Synthesis: Generates cache-friendly, reproducible Dockerfiles matching the exact dependency graph specified in your config.
- Notebook-Aware Container Validation: Runs comprehensive local checks (assets, dependencies, notebook error detection) as well as full container validation (verifying built containers start successfully and that JupyterLab runs flawlessly inside).
- GitHub Actions Integration: Built-in support for standard, thin CI workflows (
tutorial-sdk ci) that validate, build, test, and publish images from pull requests and releases. - Extensible Scaffolding Templates: Starter templates to quickly spin up beginner workshops, notebooks, course modules, or custom lab exercises.
Acknowledgments
This project was inspired by and carries the core ideas of the ExaWorks project and the subsequent implementation of the Tutorials management approach (radical-cybertools/tutorials) developed by the RADICAL Research Team.
License
This project is licensed under the Apache License, Version 2.0.
Metadata
Release files for tutorial-sdk 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| tutorial_sdk-0.1.2.tar.gz | 1.5 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tutorial_sdk-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / tutorial_sdk-0.1.2.tar.gz
| Download URL | tutorial_sdk-0.1.2.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8a2a23e675c0714f67d98134f86a0e4f7f1360a5acecde89db43569fe38c818
|
|
BLAKE2b-256 checksum How to use checksums |
65a14cccc6506b8f4147558e2d692243ffbb5683ef6451b6909c81ee522962f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logRelease files / tutorial_sdk-0.1.2-py3-none-any.whl
| Download URL | tutorial_sdk-0.1.2-py3-none-any.whl |
|---|---|
| Size | 43.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1b19322600aad4e30a99f75c1c62f1d23377fb55d7fabae4170e516bf7ef2c7d
|
|
BLAKE2b-256 checksum How to use checksums |
6b09aaafbbd439910724bfc06e3dfc598201c7c21ab6c54789406199ef41b970
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logSecurity for tutorial-sdk 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for tutorial_sdk-0.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.