.. _installation:
Installation
============
This page explains how to add ``scaldys-project`` as a development dependency
of **your own Python project**. ``scaldys-project`` is a build-time tool — it
automates your Windows distribution pipeline but is never shipped as part of
your application.
.. note::
If you are setting up a development environment for ``scaldys-project``
itself (cloning the repo, running tests, publishing), see
:ref:`contributing` instead.
Requirements
------------
- Python 3.13 or newer
- `uv `_ (recommended) or ``pip``
- Windows (for the ``build windows`` commands; the tool itself installs on any platform)
Installing as a development dependency
---------------------------------------
With **uv** (recommended)::
uv add --dev scaldys-project
With **pip**::
pip install --index-url https://pypi.org/simple/ scaldys-project
Optional extras
---------------
The core package installs only the CLI framework and Rich console output.
Install the extras for the build features you need:
.. list-table::
:header-rows: 1
:widths: 20 40 40
* - Extra
- What it adds
- Install command
* - ``cython``
- Cython and setuptools for compiling Python modules to ``.pyd``
- ``uv add --dev "scaldys-project[cython]"``
* - ``windows``
- PyInstaller for bundling a standalone Windows executable
- ``uv add --dev "scaldys-project[windows]"``
* - ``docs``
- Sphinx and the RTD theme for building HTML documentation
- ``uv add --dev "scaldys-project[docs]"``
To install all extras at once::
uv add --dev "scaldys-project[cython,windows,docs]"
Using a local development version
-----------------------------------
If you are working on a fork or local patch of ``scaldys-project`` and want
to test it from a consuming project before publishing, point that project
directly at the local source tree::
uv add --dev "scaldys-project @ path/to/scaldys-project"
Or install in editable mode so changes to ``scaldys-project`` are reflected
immediately without reinstalling::
uv add --dev --editable "path/to/scaldys-project"
.. note::
If you are contributing to ``scaldys-project`` itself (not just consuming
it), see :ref:`contributing` for the full development setup.
Verifying the installation
---------------------------
After installation the ``scaldys-project`` script is available in your
environment::
scaldys-project --help
You should see the top-level help message listing the available subcommands.
External tool dependencies
---------------------------
Some build steps rely on external tools that must be installed separately and
available on ``PATH`` (or in their standard installation locations):
.. list-table::
:header-rows: 1
:widths: 25 40 35
* - Tool
- Required for
- Notes
* - Sphinx (``sphinx-build``)
- ``build docs``, ``build all``
- Installed via the ``[docs]`` extra
* - PyInstaller (``pyinstaller``)
- ``build windows``, ``build all`` — ``pyinstaller`` mode only
- Installed via the ``[windows]`` extra
* - Inno Setup (``ISCC.exe``)
- ``build windows``, ``build all`` — ``pyinstaller`` and ``pyruntime`` modes
- Download from `jrsoftware.org `_;
must be installed to the default ``%ProgramFiles%`` location or be on
``PATH``
The ``build all`` command performs pre-flight checks before starting
and reports clearly which tools are missing.