Skip to content

Quick start

Install Tools

If mise is installed, use it as the shortest path to the required Python, uv, and Task versions:

mise trust
mise install
mise run setup
mise run check

After that, run the main commands through mise run build, mise run test, or directly through task.

Install Task Manually

The project uses Task as the single entry point for builds and helper commands.

Windows:

winget install Task.Task

macOS or Linux with Homebrew:

brew install go-task/tap/go-task

Any platform with Node.js:

npm install -g @go-task/cli

If these options do not fit your environment, use the official installation guide: https://taskfile.dev/docs/installation.

Check the installation:

task --version
task --list

If Python is not installed yet but you need to check the project state, download diploma-latex-check.exe from GitHub Releases, put it into the project root, and run:

.\diploma-latex-check.exe

Build

Before the first run

  • Docker is installed;
  • Task is installed, or the manual commands are ready;
  • .env is created if the build needs local paths to source code;
  • the title page, assignment, and diagrams can be rebuilt from source.

Run the full Docker build:

task build
uv run python scripts/build_all.py

The scripts/build_all.py script runs profiles in this order: docxmermaidpythonlatex.

First run

The first build will take a while because Docker downloads base images and builds the environment. The script runs profiles through docker compose run --build, so Docker checks image freshness before each profile.

To preview and remove generated build artifacts, use:

task clean:dry
task clean

Run Python tests:

task python:test

All helper Python scripts are started the same way on Windows, Linux, and macOS.1

task build
task mermaid
task diagrams
uv run python scripts/build_all.py
uvx --from git+https://github.com/ethercod3/compile_mermaid.git compile-mermaid
uv run python scripts/compile_python_diagrams.py

  1. Mermaid diagrams are best rebuilt in the same environment where the original was prepared: when built through Docker, the font for KaTeX expressions can differ from the Windows result.