design: v0.1.0 release onto the existing tag + AUR paperdoll-renderer-bin
@@ -541,3 +541,11 @@ glTF texture coordinates have their origin at the top-left of the image (v = 0 i
541
541
## Decision 2026-11-07 (Tim t1009u, licence approved by Tim): bundled default starter bodies
542
542
543
543
Tim's Sketchfab models "Animated walking Male Base Mesh" and "Animated Female Base Mesh" (author assetfactory, Sketchfab Standard licence, approved by Tim) are bundled byte-exact in `assets/default-bodies/{male,female}/` (`.gltf` with the buffer uri fixed by Tim to `male.bin`/`female.bin`, `.bin`, `textures/`, `license.txt`). **Nieuw project** (parent folder + name) copies them into `<project>/assets/body/male/` and `female/` with their `license.txt` and sets them as the male and female body, so a new project renders immediately. The files are embedded in the executable (`include_bytes!`), so every package (AppImage, deb, Arch, AUR, Windows zip) carries them without a separate data path; packages also ship `THIRD_PARTY_NOTICES.md`. The README has an attribution section. The CC0 synthetic test bodies stay in `tests/fixtures/bodies/` and remain the seed for tests, examples and `--preview-fixture`.
544
545
## Decision 2026-11-07 (Tim, v0.1.0 release): publish onto the existing tag, then the AUR
546
547
Rechecked 7 November 2026 against the live `GET /api/v1/openapi.json` and BlueGit master (`release_existing_tag.go`): BlueGit now has `POST /api/v1/repos/{owner}/{repo}/releases/{tag}/assets`, which publishes a new release for a git tag that already exists. It is create-only (an existing release is 409, `replace` is rejected), never creates, moves or deletes the tag, accepts only a job token of a push pipeline of `refs/tags/{tag}`, and takes its assets from successful jobs of that same pipeline. This lifts the limit in section 15. The tag pipeline's `release` job calls this route and nothing else, with the AppImage, deb, Arch package, Windows zip and `SHA256SUMS` as assets (`paperdoll-renderer-<tag>-…`); it never sends `replace` and never calls the tag-creating release route.
548
549
Release tags are annotated `vX.Y.Z` tags pushed by hand on a green master; `v*` is a protected tag pattern, so the protected CI variables are available to the tag pipeline only.
550
551
A `publish:aur` job after `release` (allow_failure, resource_group aur, Arch image) copies the approach of timfa/legacy-cycles (`aur-ssh-setup.sh` + `publish-aur.sh`): AUR package `paperdoll-renderer-bin` (`packaging/aur/paperdoll-renderer-bin/PKGBUILD`), source = the release's `.deb` asset, sha256 of exactly that downloaded asset, pkgver from the tag, `.SRCINFO` via `makepkg --printsrcinfo`, pushed to `ssh://aur@aur.archlinux.org/paperdoll-renderer-bin.git`. It uses exactly the protected variables `AUR_SSH_PRIVATE_KEY_B64`, `AUR_GIT_AUTHOR_NAME` and `AUR_GIT_AUTHOR_EMAIL`. The PKGBUILD installs the binary, the `.desktop` file, the hicolor icons, the `.ppd` MIME package (`paperdoll-project.xml`), metainfo, LICENSE and THIRD_PARTY_NOTICES; it conflicts with/provides `paperdoll-renderer`.
@@ -541,3 +541,11 @@ glTF texture coordinates have their origin at the top-left of the image (v = 0 i541
## Decision 2026-11-07 (Tim t1009u, licence approved by Tim): bundled default starter bodies541
## Decision 2026-11-07 (Tim t1009u, licence approved by Tim): bundled default starter bodies542
542
543
Tim's Sketchfab models "Animated walking Male Base Mesh" and "Animated Female Base Mesh" (author assetfactory, Sketchfab Standard licence, approved by Tim) are bundled byte-exact in `assets/default-bodies/{male,female}/` (`.gltf` with the buffer uri fixed by Tim to `male.bin`/`female.bin`, `.bin`, `textures/`, `license.txt`). **Nieuw project** (parent folder + name) copies them into `<project>/assets/body/male/` and `female/` with their `license.txt` and sets them as the male and female body, so a new project renders immediately. The files are embedded in the executable (`include_bytes!`), so every package (AppImage, deb, Arch, AUR, Windows zip) carries them without a separate data path; packages also ship `THIRD_PARTY_NOTICES.md`. The README has an attribution section. The CC0 synthetic test bodies stay in `tests/fixtures/bodies/` and remain the seed for tests, examples and `--preview-fixture`.543
Tim's Sketchfab models "Animated walking Male Base Mesh" and "Animated Female Base Mesh" (author assetfactory, Sketchfab Standard licence, approved by Tim) are bundled byte-exact in `assets/default-bodies/{male,female}/` (`.gltf` with the buffer uri fixed by Tim to `male.bin`/`female.bin`, `.bin`, `textures/`, `license.txt`). **Nieuw project** (parent folder + name) copies them into `<project>/assets/body/male/` and `female/` with their `license.txt` and sets them as the male and female body, so a new project renders immediately. The files are embedded in the executable (`include_bytes!`), so every package (AppImage, deb, Arch, AUR, Windows zip) carries them without a separate data path; packages also ship `THIRD_PARTY_NOTICES.md`. The README has an attribution section. The CC0 synthetic test bodies stay in `tests/fixtures/bodies/` and remain the seed for tests, examples and `--preview-fixture`.544
545
## Decision 2026-11-07 (Tim, v0.1.0 release): publish onto the existing tag, then the AUR546
547
Rechecked 7 November 2026 against the live `GET /api/v1/openapi.json` and BlueGit master (`release_existing_tag.go`): BlueGit now has `POST /api/v1/repos/{owner}/{repo}/releases/{tag}/assets`, which publishes a new release for a git tag that already exists. It is create-only (an existing release is 409, `replace` is rejected), never creates, moves or deletes the tag, accepts only a job token of a push pipeline of `refs/tags/{tag}`, and takes its assets from successful jobs of that same pipeline. This lifts the limit in section 15. The tag pipeline's `release` job calls this route and nothing else, with the AppImage, deb, Arch package, Windows zip and `SHA256SUMS` as assets (`paperdoll-renderer-<tag>-…`); it never sends `replace` and never calls the tag-creating release route.548
549
Release tags are annotated `vX.Y.Z` tags pushed by hand on a green master; `v*` is a protected tag pattern, so the protected CI variables are available to the tag pipeline only.550
551
A `publish:aur` job after `release` (allow_failure, resource_group aur, Arch image) copies the approach of timfa/legacy-cycles (`aur-ssh-setup.sh` + `publish-aur.sh`): AUR package `paperdoll-renderer-bin` (`packaging/aur/paperdoll-renderer-bin/PKGBUILD`), source = the release's `.deb` asset, sha256 of exactly that downloaded asset, pkgver from the tag, `.SRCINFO` via `makepkg --printsrcinfo`, pushed to `ssh://aur@aur.archlinux.org/paperdoll-renderer-bin.git`. It uses exactly the protected variables `AUR_SSH_PRIVATE_KEY_B64`, `AUR_GIT_AUTHOR_NAME` and `AUR_GIT_AUTHOR_EMAIL`. The PKGBUILD installs the binary, the `.desktop` file, the hicolor icons, the `.ppd` MIME package (`paperdoll-project.xml`), metainfo, LICENSE and THIRD_PARTY_NOTICES; it conflicts with/provides `paperdoll-renderer`.