docs: move the root-level build docs under docs/build/
build-release.md, build-desktop-packages.md and build-windows.md sat at the docs/ root while docker.md and build-builder-image.md were already in docs/build/, so "where do build docs live" had two answers. They now have one. Referrers updated: README.md, docs-site/SUMMARY.md, and the ../ links inside the moved files themselves, which each gained a level of depth — Dockerfile, Dockerfile.arch, packaging/arch/PKGBUILD, CHANGELOG.md, README.md, src-tauri/src/lib.rs and src/lib/services/webviewAudio.ts. Every one of those was caught by check-doc-links.sh rather than by reading, which is the point of having it. Two referrers are left for their owners: CLAUDE.md line 173 and the comment at scripts/build-windows-cross.sh line 11.
This commit is contained in:
@@ -42,7 +42,7 @@ For the full set of build, test, and Android helper scripts, see
|
|||||||
|-------|----------|
|
|-------|----------|
|
||||||
| Architecture overview & subsystem docs | [docs/architecture/](docs/architecture/) |
|
| Architecture overview & subsystem docs | [docs/architecture/](docs/architecture/) |
|
||||||
| Requirements, traceability & technical debt | [docs/requirements.md](docs/requirements.md) |
|
| Requirements, traceability & technical debt | [docs/requirements.md](docs/requirements.md) |
|
||||||
| Build & release process | [docs/build-release.md](docs/build-release.md) |
|
| Build & release process | [docs/build/build-release.md](docs/build/build-release.md) |
|
||||||
| Docker builds | [docs/build/docker.md](docs/build/docker.md) |
|
| Docker builds | [docs/build/docker.md](docs/build/docker.md) |
|
||||||
| Traceability tooling & CI | [docs/traceability.md](docs/traceability.md), [docs/traceability-ci.md](docs/traceability-ci.md) |
|
| Traceability tooling & CI | [docs/traceability.md](docs/traceability.md), [docs/traceability-ci.md](docs/traceability-ci.md) |
|
||||||
| Release checklist | [docs/release-checklist.md](docs/release-checklist.md) |
|
| Release checklist | [docs/release-checklist.md](docs/release-checklist.md) |
|
||||||
|
|||||||
@@ -71,10 +71,10 @@
|
|||||||
|
|
||||||
# Build & Release
|
# Build & Release
|
||||||
|
|
||||||
- [Build & Release](build-release.md)
|
- [Build & Release](build/build-release.md)
|
||||||
- [Release Checklist](release-checklist.md)
|
- [Release Checklist](release-checklist.md)
|
||||||
- [Desktop Packaging](build-desktop-packages.md)
|
- [Desktop Packaging](build/build-desktop-packages.md)
|
||||||
- [Windows Build](build-windows.md)
|
- [Windows Build](build/build-windows.md)
|
||||||
- [Defect Windows](defect-windows.md)
|
- [Defect Windows](defect-windows.md)
|
||||||
- [Docker](build/docker.md)
|
- [Docker](build/docker.md)
|
||||||
- [Builder Image](build/build-builder-image.md)
|
- [Builder Image](build/build-builder-image.md)
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ run in Docker so no host toolchain setup is required. Outputs land in `./dist`.
|
|||||||
## One builder image (shared with CI)
|
## One builder image (shared with CI)
|
||||||
|
|
||||||
The deb/rpm and Windows-cross flows build on the **unified registry builder**
|
The deb/rpm and Windows-cross flows build on the **unified registry builder**
|
||||||
([../Dockerfile.builder](../Dockerfile.builder) →
|
([../Dockerfile.builder](../../Dockerfile.builder) →
|
||||||
`gitea.tourolle.paris/dtourolle/jellytau-builder`), the same image CI uses. It
|
`gitea.tourolle.paris/dtourolle/jellytau-builder`), the same image CI uses. It
|
||||||
carries every packaging tool: Android SDK/NDK, `rpm`/`file` (Linux bundler),
|
carries every packaging tool: Android SDK/NDK, `rpm`/`file` (Linux bundler),
|
||||||
`cargo-xwin` + `lld` + `llvm` + `nsis` + the `x86_64-pc-windows-msvc` rust target
|
`cargo-xwin` + `lld` + `llvm` + `nsis` + the `x86_64-pc-windows-msvc` rust target
|
||||||
(Windows). There is **one** dependency source of truth — no per-stage tool
|
(Windows). There is **one** dependency source of truth — no per-stage tool
|
||||||
installs.
|
installs.
|
||||||
|
|
||||||
The desktop stages in [../Dockerfile](../Dockerfile) are thin `FROM
|
The desktop stages in [../Dockerfile](../../Dockerfile) are thin `FROM
|
||||||
${BUILDER_IMAGE}` environments; the actual build runs at container-run time on
|
${BUILDER_IMAGE}` environments; the actual build runs at container-run time on
|
||||||
your bind-mounted source (like the `dev` service), so source edits need no image
|
your bind-mounted source (like the `dev` service), so source edits need no image
|
||||||
rebuild.
|
rebuild.
|
||||||
@@ -28,7 +28,7 @@ docker build -f Dockerfile.builder -t jellytau-builder:latest .
|
|||||||
BUILDER_IMAGE=jellytau-builder:latest bun run docker:build:windows
|
BUILDER_IMAGE=jellytau-builder:latest bun run docker:build:windows
|
||||||
```
|
```
|
||||||
|
|
||||||
Arch uses a separate `archlinux` image ([../Dockerfile.arch](../Dockerfile.arch))
|
Arch uses a separate `archlinux` image ([../Dockerfile.arch](../../Dockerfile.arch))
|
||||||
because `makepkg` is Arch-specific — it is not part of the unified builder.
|
because `makepkg` is Arch-specific — it is not part of the unified builder.
|
||||||
|
|
||||||
| Target | Format | Docker command | Functional? |
|
| Target | Format | Docker command | Functional? |
|
||||||
@@ -40,7 +40,7 @@ because `makepkg` is Arch-specific — it is not part of the unified builder.
|
|||||||
## Linux: deb + rpm
|
## Linux: deb + rpm
|
||||||
|
|
||||||
Tauri's bundler produces these natively. The build runs on the existing Ubuntu
|
Tauri's bundler produces these natively. The build runs on the existing Ubuntu
|
||||||
builder image ([../Dockerfile](../Dockerfile), `desktop-linux-build` stage):
|
builder image ([../Dockerfile](../../Dockerfile), `desktop-linux-build` stage):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bun run docker:build:linux # deb + rpm -> ./dist
|
bun run docker:build:linux # deb + rpm -> ./dist
|
||||||
@@ -58,8 +58,8 @@ transcoded video). The deb/rpm declare these.
|
|||||||
|
|
||||||
**Tauri has no `pacman` bundle target** (as of tauri-cli 2.9.x — valid targets
|
**Tauri has no `pacman` bundle target** (as of tauri-cli 2.9.x — valid targets
|
||||||
are deb/rpm/appimage/msi/nsis/app/dmg). So we ship a hand-written PKGBUILD in
|
are deb/rpm/appimage/msi/nsis/app/dmg). So we ship a hand-written PKGBUILD in
|
||||||
[../packaging/arch/PKGBUILD](../packaging/arch/PKGBUILD) and build it with
|
[../packaging/arch/PKGBUILD](../../packaging/arch/PKGBUILD) and build it with
|
||||||
`makepkg` on an Arch base image ([../Dockerfile.arch](../Dockerfile.arch)):
|
`makepkg` on an Arch base image ([../Dockerfile.arch](../../Dockerfile.arch)):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bun run docker:build:arch # .pkg.tar.zst -> ./dist
|
bun run docker:build:arch # .pkg.tar.zst -> ./dist
|
||||||
+2
-2
@@ -294,8 +294,8 @@ bun run tauri build # Local build test
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
1. Update [CHANGELOG.md](../CHANGELOG.md) with changes
|
1. Update [CHANGELOG.md](../../CHANGELOG.md) with changes
|
||||||
2. Update [README.md](../README.md) with new features
|
2. Update [README.md](../../README.md) with new features
|
||||||
3. Document breaking changes
|
3. Document breaking changes
|
||||||
4. Add migration guide if needed
|
4. Add migration guide if needed
|
||||||
|
|
||||||
+3
-3
@@ -12,10 +12,10 @@ job / SMTC lockscreen), but it runs and plays media.
|
|||||||
h264 fine. No Windows-specific code.
|
h264 fine. No Windows-specific code.
|
||||||
- **Audio-only (music)** — the native audio backends are libmpv (Linux) and
|
- **Audio-only (music)** — the native audio backends are libmpv (Linux) and
|
||||||
ExoPlayer (Android); neither exists on Windows. Instead
|
ExoPlayer (Android); neither exists on Windows. Instead
|
||||||
`create_player_backend()` in [../src-tauri/src/lib.rs](../src-tauri/src/lib.rs)
|
`create_player_backend()` in [../src-tauri/src/lib.rs](../../src-tauri/src/lib.rs)
|
||||||
uses `WebviewAudioBackend` on non-Linux/non-Android targets: it hands the stream
|
uses `WebviewAudioBackend` on non-Linux/non-Android targets: it hands the stream
|
||||||
URL to a webview `<audio>` element (see
|
URL to a webview `<audio>` element (see
|
||||||
[../src/lib/services/webviewAudio.ts](../src/lib/services/webviewAudio.ts)),
|
[../src/lib/services/webviewAudio.ts](../../src/lib/services/webviewAudio.ts)),
|
||||||
which reports state back through the same `player_report_*` round-trip the video
|
which reports state back through the same `player_report_*` round-trip the video
|
||||||
path uses. Pure Rust + Tauri events.
|
path uses. Pure Rust + Tauri events.
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ Tauri CLI bundle the **NSIS installer from a Linux host**.
|
|||||||
> `--runner cargo-xwin --target x86_64-pc-windows-msvc` is what flips it into
|
> `--runner cargo-xwin --target x86_64-pc-windows-msvc` is what flips it into
|
||||||
> Windows mode and enables the `nsis`/`msi` bundlers on Linux.
|
> Windows mode and enables the `nsis`/`msi` bundlers on Linux.
|
||||||
|
|
||||||
The builder image ([../Dockerfile.builder](../Dockerfile.builder)) bakes in the
|
The builder image ([../Dockerfile.builder](../../Dockerfile.builder)) bakes in the
|
||||||
whole toolchain: the `x86_64-pc-windows-msvc` rust target, `cargo-xwin`, `lld`,
|
whole toolchain: the `x86_64-pc-windows-msvc` rust target, `cargo-xwin`, `lld`,
|
||||||
`llvm`, and `nsis`.
|
`llvm`, and `nsis`.
|
||||||
|
|
||||||
Reference in New Issue
Block a user