Overview
What scaldys-project does for you
You write Python. scaldys-project takes care of turning that code into
something you can hand to a Windows user.
Running a single command from your project root:
scaldys-project build all
produces, in order:
HTML documentation — every documentation unit under
docs/built to HTML, with configured units bundled into the installer for offline use.A Windows distribution — the exact form depends on the
deployment_modeyou choose inscaldys-project.toml:wheel_only (default): only a binary distribution wheel is produced. Use this for packages distributed via
piporuv.pyinstaller: PyInstaller bundles the application into a self-contained directory that runs on any Windows machine without a Python installation.
pyruntime: a managed Python virtual environment is deployed alongside the application. Use this when your app must coexist with Quarto, Jupyter, or another tool that requires a real Python interpreter.
In all modes, a
.pyd-only distribution wheel is built from compiled sources. Optionally, selected modules are first compiled to native.pydextensions with Cython for performance or to avoid shipping plain source code.A Windows installer (
pyinstallerandpyruntimemodes) — an Inno Setup.exethat installs the application, the documentation, launcher scripts, and example files; adds Start Menu and Desktop shortcuts; and handles uninstallation cleanly.
The end result is an artifacts/installer/ folder containing a single
setup.exe that you can ship directly to users, and a dist/
folder with the distribution wheel.
The build pipeline at a glance
Your project
│
▼
┌─────────────┐ Sphinx ┌──────────────────────────┐
│ docs/ │ ────────────────▶│ build/<name>/html/ │
│ manual/ │ └──────────────┬───────────┘
│ dev_guide/ │ │
└─────────────┘ │ public_doc_dirs → installer
┌─────────────┐ Cython (opt.) ┌─────────────────────────────┐
│ src/ │ ───────────────▶│ build/compiled/ │
│ myapp/ │ └───────────────┬─────────────┘
└─────────────┘ │
│ Mode 1: PyInstaller
│ Mode 2: wheel + uv venv
│ Mode 3: wheel only
▼
┌──────────────────────────────┐
│ dist/ │
│ myapp-1.2.3-...win_amd64.whl │
└──────────────────────────────┘
┌──────────────────────────────┐
│ artifacts/portable/ (Mode 1&2)│
│ bin/ ... documentation/ │
└──────────────┬───────────────┘
┌──────────────────┐ Inno Setup (Mode 1 & 2) │
│ packaging/ │ ────────────────────────────▶
│ windows/ │
│ myapp.iss │ ┌────────────────────────────┐
└──────────────────┘ │ artifacts/installer/ │
│ setup.exe │
└────────────────────────────┘
Getting started quickly with scaldys-template
Setting up all the required files (Sphinx project, Inno Setup script,
launcher scripts, scaldys-project.toml, pyproject.toml, GitHub Actions
workflows, …) from scratch takes time. scaldys-template is a ready-to-use project
template that already has everything wired together:
A
src-layout Python package with a Typer-based CLI entry pointscaldys-project.tomlpre-configured with an example Cython module anddeployment_mode = "pyinstaller"packaging/windows/with a complete.issscript, auto-detecting launcher scripts, and an application icondocs/manual/with a working Sphinx project (freely renameable)pyproject.tomldeclaringscaldys-project[cython,windows,docs]as a dev dependencyGitHub Actions workflows for CI, PyPI publishing, and release management
Use scaldys-project init to scaffold a new project from the template in
one step — the interactive wizard downloads the template, substitutes all
placeholder names, and optionally runs git init and uv sync:
scaldys-project init
For a detailed walkthrough of every wizard prompt and option, see Project Initialisation.
Where to go next
- Starting a new project from scratch?
Run
scaldys-project init— it downloads scaldys-template and scaffolds a fully configured project directory from an interactive wizard. See Project Initialisation or jump straight to Quick Start.- Adding ``scaldys-project`` to an existing project?
Start with Installation to add it as a dev dependency, then follow the Quick Start to set up the required files and run your first build.
Already set up and looking for reference information?
CLI Reference — complete command reference
Configuration —
scaldys-project.tomloptionsProject Layout — expected directory structure and build output
In-Depth Guides — in-depth guides for each build step