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;
-
.envis 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: docx → mermaid → python → latex.
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
-
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. ↩