Files
gig-line/Docs/toolchain.md
T
zwitschi 8c73d16a39 docs: record git-lfs/clang/cmake/ninja install and flag the stale QGIS flatpak
git-lfs 3.7.1 with an active lfs filter, clang 23.1.4, cmake 4.3.0, ninja
1.13.2. The flathub lts branch installed QGIS 3.28.9 on an EOL Qt5 runtime, so
it is recorded as an invalid pin with the replacement path.
2026-11-06 21:41:16 +01:00

41 lines
3.9 KiB
Markdown

# Toolchain
Pinned versions for this project. Record the exact build string a tool reports, not just the version family, and re-record it after every upgrade. The most common cause of scale, material, and import mismatches is silently mixing two versions of the same tool.
Audited 2026-11-06 on the development workstation.
## Pins
| Component | Pinned | Source | Status |
| --- | --- | --- | --- |
| Bazzite | `45.20261105` (Kinoite, `bazzite-dx-nvidia`), kernel `7.2.15-ogc1.1.fc45` | `ujust update` / `rpm-ostree upgrade` | Booted and default. `44.20261026` retained as rollback. |
| NVIDIA driver | `615.78.08`, open kernel module | Bazzite image | Verified: desktop session renders through the RTX 5070 Ti; Vulkan GPU0 is the RTX 5070 Ti on driver `615.78.08`, conformance `1.4.3.3`. |
| Unreal Engine | `5.8.x` — pin one exact build | Epic (license required) | Not installed. |
| Unreal Linux toolchain | engine-bundled clang | Engine source tree | Not installed. Do not substitute the system compiler. |
| Blender | `5.2` LTS (upstream patch `5.2.3`) | Flatpak `org.blender.Blender` | Installed. |
| MPFB | `2.0.18` (extension `mpfb`, declares Blender >= 4.2) | Blender extensions platform | Installed. Load-and-export check on 5.2 still pending. |
| Blosm | latest release at install time | blosm.com / Gumroad | Not installed. Version must be recorded before first use. |
| QGIS | `3.44.15` LTR targeted; installed flatpak is `3.28.9` | qgis.org / flathub | **Not a valid pin.** The `lts` flatpak branch is 3.28.9 on an end-of-life Qt5 runtime. Replace via `stable` or distrobox, then pin. See [environment.md](environment.md). |
| Git | `2.56.0` | Bazzite image | Installed. |
| Git LFS | `3.7.1` | `rpm-ostree` layer | Installed; `git lfs install` run, lfs filter active. |
| Host build tools | `clang 23.1.4`, `cmake 4.3.0`, `ninja 1.13.2` | `rpm-ostree` layer | Installed. These are host tools, not the engine toolchain. |
| distrobox | `1.8.2.5` | Bazzite image | Installed. |
| Python (tooling) | `3.14.8` system | Bazzite image | Installed. Use a venv for geo/tool scripts. |
| ffmpeg | `8.1.3` | Bazzite image | Installed. |
Unreal Engine 5.9 is in preview and Unreal Engine 6 has been announced as of November 2026. Neither is a pin candidate for `0.x`. One engine family per milestone; a family change is a breaking change and belongs in `CHANGELOG.md`.
## Pin rules
- One engine build per release. Record the launcher or source build, the patch version, and the build date in this file and in the release entry.
- Blender stays on an LTS family (`5.2`). Every add-on version used for a shipped asset is recorded here.
- Upgrading a pinned tool mid-milestone requires re-running the scale test and the Blender→Unreal import check before further asset work.
- Never install a tool from an unverified source. Record the download origin next to the version.
## Open compatibility risks
1. **Blosm on Blender 5.2.** Blosm versions historically lag Blender releases. Verify Blosm against the installed Blender 5.2 before the blockout step. If it fails, add a side-by-side Blender 4.5 LTS Flatpak and convert that step's output only; do not mix Blender versions within one asset.
2. **MPFB 2.0.18 on Blender 5.2.** The extension declares Blender >= 4.2 but predates 5.x. The acceptance test is the `0.1.0` requirement to export one MPFB character with baked materials and a deform skeleton and import it into Unreal.
3. **QGIS flatpak tracks a stale LTR.** The flathub `lts` branch is `3.28.9` (2022) on `org.kde.Platform 5.15-21.08`, which is end-of-life. A 2022 QGIS still converts CRS and edits vectors correctly, but its PROJ/GDAL data and processing algorithms are four years behind the current LTR, and the runtime gets no security fixes. Replace it before the geo pipeline depends on it; record whichever version ends up pinned.
4. **Driver and Vulkan validation on Bazzite.** Not an officially supported Unreal distribution. Validate before asset production, as `ROADMAP.md` requires.