| Ticket Hash: | 58be9f8e4a3681128398a4a7a2b032b8bb3de4b9 | ||
| Title: | Versioned static-asset publishing: co-hosted artifacts repo using Fossil uv, replicated per-arch via sync --uv | ||
| Status: | Active | Type: | Feature_Request |
| Severity: | Important | Priority: | Medium |
| Subsystem: | Resolution: | ||
| Last Modified: |
2026-09-20 14:43:06 51.7 days ago |
Created: |
2026-08-31 19:11:17 71.5 days ago |
| Version Found In: | |||
| Description: | ||||
|
Maintainer-initiated plan (2026-08-31). Goal: well-version-controlled publishing of large build artifacts (first consumer: bq2 seed rootfs tarballs) for BOTH x86_64 and aarch64 builds, cutting deployment time and giving mirrors an in-system replication path.
Shape agreed so far: - A dedicated co-hosted artifacts repo (e.g. bq2-artifacts.fossil) served beside the project repos — NOT uv in the primary bq2 repo (keeps primaries lean; contention isolated to artifact operations). - Fossil unversioned storage (uv) as the mechanism: digest-addressed, versioned, HTTP-served, replicates with `fossil sync --uv` (aarch64 backup node and other mirrors pick artifacts up automatically). - MEASURED baseline on this host: `fossil uv add` of a 500MB incompressible file = 16.7s local (mostly zlib attempting to compress incompressible data) — seconds, not minutes; no build-aside/swap needed for publishes at this scale. Earlier "minutes" concern was wrong. - Naming should carry arch + version (e.g. bq2-rootfs-<ver>-<arch>.tar.gz) so both architectures publish side by side. - dl.beagle.cc becomes a public face fed FROM the artifacts repo rather than a separate manual upload target. Open design points: retention/GC policy for old artifacts; who may publish (daemon post-build vs human); whether the publish step joins the job pipeline as a bounded fossil child (see 36bc75236c envelope). | ||||