Login
View Ticket
Login
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).