1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# Changelog
All notable changes to this project are documented here. Format follows
[Keep a Changelog](https://keepachangelog.com/), versioning is
[SemVer](https://semver.org/).
## [1.1.2] - 2026-09-22
Disk exhaustion on the build host, from three directions. The nightly
`-current` chain had been failing for ten nights with "no space left on
device", and because each stage is gated on the previous one's digest, the
later stages skipped silently: the `-current` tags sat six days stale while
`15.0` rebuilt fine and nothing reported an error.
### Added
- `image-builder/registry-gc.sh`: reclaim unreferenced blobs from the
registry store, which never shrinks on its own. Stops the registry for a
stable blob graph, refuses to run against OCI-index manifests (distribution
2.8.x deletes their children), and verifies a tag still resolves afterwards.
- `image-builder/crontab.example` and `image-builder/fstab.example`: reference
copies of the host schedule and storage layout, recorded so a rebuilt VM is
reproducible. They previously existed only on the VM.
### Changed
- Each build now prunes its own superseded image right after pushing, instead
of leaving it resident until a daily prune. A replaced `sbo-full:current` is
~33G of dead weight that the next variant had to build around.
- The registry store belongs on a different disk from the docker volume. It
grows with every push while the build needs a large transient peak at a
fixed hour; sharing one volume pits a slow leak against a hard failure.
`fstab.example` documents the layout, including the dockerd mount-namespace
trap when moving an existing store.
- The README points at `crontab.example` rather than repeating the schedule,
which is how the inline copy had gone stale.
### Fixed
- `bootstrap.sh`, `build-full-image.sh` and `build-sbo-testbuild.sh` abort
early when the docker daemon is unreachable, instead of failing deeper in
with a less obvious error.
## [1.1.1] - 2026-07-16
### Fixed
- Symlinks in the SlackBuild dir (e.g. a host-side `sbodl` source cache pointing
at `~/sbodl-cache`) are no longer copied into the build container. They copied
in dangling and made `wget -c` fail with DOWNLOAD-FAILED. The container now
copies the dir with `rsync --no-links` and downloads the source fresh; a host
warning names each ignored symlink.
## [1.1.0] - 2026-07-16
### Added
- `test-build --local-deps`: also resolve deps from the target's own repo (its
grandparent dir), prepended before the SBo tree, for packages whose deps are
siblings in the same repo and not on SBo (e.g. huggingface_cli).
- `test-build-slackbuild` agent skill teaching an agent to drive `test-build`.
### Changed
- Renamed the agent skill from `using-test-build` to `test-build-slackbuild`.
## [1.0.0] - 2026-07-13
### Added
- Initial release: the `test-build` tool and the `image-builder/` scripts,
extracted from the sbo-slackbuilds `.extras/` dir into a standalone repo.
- SemVer versioning via a baked `PROJECT_VERSION` const in every script.
|