Releases: frhuelsz/tailor
Release list
tailor-v1.2.0
Full Changelog: tailor-v1.1.0...tailor-v1.2.0
tailor-v1.1.0
Full Changelog: tailor-v1.0.2...tailor-v1.1.0
tailor-v1.0.2
Full Changelog: tailor-v1.0.1...tailor-v1.0.2
tailor-v1.0.1
Full Changelog: v1.0.0...tailor-v1.0.1
v0.8.0
v0.7.0
v0.6.0
v0.5.0
v0.4.0
tailor v0.4.0 adds tailor export — render-ahead of your images' Image Customizer configs into committed YAML that a pipeline can build without tailor — plus a CLI override for the per-cell build scratch directory.
This is a preview (0.4.x) release; the config surface can still change between minor versions. There are no breaking changes from 0.3.
Highlights
tailor export(configs-only) +tailor export --check. Render each cell's merged IC config to a committed directory (one<slug>.yamlper cell), so a build pipeline that cannot run tailor can build the images directly from the checked-in YAML.--checkis a zero-argument drift gate for a pre-commit hook or CI: it fails on any changed, missing, or stale file. Configure it once intailor.yamland both commands take no arguments.tailor build --build-dir-base <PATH>. Overrideruntime.buildDirBasefrom the command line — the same override pattern as--engine/--host/--log-dir— so CI can point per-cell build scratch at a pool-specific filesystem without editing the committedtailor.yaml. The fail-closed build-dir guard is unchanged (the directory must not be/or on the same filesystem as/).
Added
export:block intailor.yaml—outputDir(committed output directory), optionalscope(defaults toconfigsOnly), and optionalimages(subset). Its presence makestailor export/tailor export --checkargument-free.tailor export [images...]— writes<outputDir>/<slug>.yamlper selected cell and prunes stale files a removed cell/axis left behind. Offline and pure: no base/toolchain resolution, no Docker. The exported config is byte-identical totailor render's golden.tailor export --check— verifies the committed exports match freshly rendered configs and exits non-zero on drift (changed / missing / extra), writing nothing.tailor build --build-dir-base <PATH>— CLI override forruntime.buildDirBase.
Why export
The exported <slug>.yaml is only the Image Customizer config; the base image, --rpm-source, --tools-dir, output format, and signing are Image Customizer invocation arguments the consuming pipeline supplies. Because those are not in the config, tailor export always succeeds for any cell and the pipeline owns the invocation with its own machinery — useful when tailor cannot run in a trust-sensitive pipeline. See the new Export configs for a pipeline how-to.
Docs
- New how-to: Export configs for a pipeline;
exportand--build-dir-baseadded to the CLI reference; theexport:block added to thetailor.yamlreference.
Full changelog: v0.3.0...v0.4.0
Full Changelog: v0.3.0...v0.4.0
v0.3.0
tailor v0.3.0 makes arm64 (aarch64) Image Customizer builds reliable end to end: a successful build now exits 0 with its scratch fully cleaned up, and post-build log lines are attributed to the right source. It also ships a versioned, hosted documentation site.
This is a preview (0.3.x) release. The config surface can still change between minor versions. There are no breaking changes from 0.2.
Highlights
- arm64 builds are reliable end to end. On an arm64 host, a successful build now exits
0and removes its scratch, instead of failing during post-build cleanup with a spurious non-zero exit and root-owned leftovers. - Hosted, versioned documentation. A MkDocs Material site is published to GitHub Pages, versioned per release, and linked from the README: https://frhuelsz.github.io/tailor/
Fixed
- arm64 janitor architecture (404). The post-build ownership-cleanup janitor launched its container as
linux/amd64regardless of host architecture, so on an arm64 host Docker returned a 404 (does not provide the specified platform (linux/amd64)) andtailor buildexited non-zero and left root-owned scratch behind — even though Image Customizer succeeded and the image was written. The janitor now runs at the host's native architecture. This also fixes cross-archtailor clean, which has no single cell arch to key on. - Janitor "Device or resource busy" on every successful build. Cleanup bind-mounted each target directory to itself and then
rm -rf'd it, so the target was an active mountpoint:rmcleared its contents but could not remove the busy top directory, leaving an empty stub and a non-zero exit after an otherwise fully successful build. Cleanup now binds each target's parent and removes the target as an ordinary child, so it is removed top-and-all and the build exits0. - Cleanup log attribution. The janitor's own output (e.g. an
rmwarning) was printed with theic:prefix, mislabeling it as coming from Image Customizer. Janitor/cleanup lines now use ajanitor:target, soic:-tagged lines are only ever real Image Customizer output.
Docs
- New versioned MkDocs Material documentation site published to GitHub Pages via
mike(per-release versions plus alatestalias), linked from the README. - New Installation page, a homepage overview, project logo/branding, and an orange theme.
Full changelog: v0.2.0...v0.3.0
Full Changelog: v0.2.0...v0.3.0