Skip to content

Release Notes

Rod Christiansen edited this page Sep 3, 2026 · 2 revisions

Release Notes

What has shipped, newest first. Read this when you are deciding whether to move your fleet to a newer build, or when you are trying to work out which behaviour change explains something you are seeing on a Mac.

Versioning and where releases are published

Versions are date-based: YYYY.MM.DD.HHMM, taken from the build timestamp. Git tags carry the same string with a leading v, for example v2026.06.22.1234. Pushing such a tag is what triggers a release; there is no separate release branch. The scheme and its split into CFBundleShortVersionString and CFBundleVersion are described on Building and Signing.

Each release is published as a GitHub release on this repository with one asset, the installer package BootstrapMate-<version>.pkg. That package is unsigned and un-notarized — the public repository holds no Developer ID. Sign and notarize it in your own pipeline before deploying it.

Because the version string the CLI prints is generated at runtime rather than at build time, do not use --version to identify which release a Mac is running. Read the installed bundle instead:

defaults read /Applications/Utilities/BootstrapMate.app/Contents/Info CFBundleShortVersionString

v2026.09.02.2149

Tagged commit f116e2c, 2026-09-02.

  • Stamp every log line, including captured script output (1f01b46). Output captured from rootscript and userscript items now carries the same timestamp and level prefix as the rest of the log, so a script's output can be correlated with the surrounding run. See Logging and Reporting.

v2026.09.02.0801

Tagged commit a829cf5, 2026-09-01.

  • Align log file format with the shared convention and add 30-day retention (a829cf5, PR #9). Log files are named from the run's start time and a new file is written per run; files older than 30 days are deleted when the logger initialises.

v2026.06.22.1234

Tagged commit 7c2f00d, 2026-06-22.

  • Rename CLI binary to managedbootstrapinstall and consolidate staging on /Library/Managed Bootstrap (7c2f00d, PR #6). This is the change that moved the on-disk paths documented in Deployment and Troubleshooting and Gotchas.
  • Fetch bootstrap data uncached so manifest hash diffs always self-heal (132b0aa, PR #2). The URL session no longer keeps a cache, so a stale copy cannot defeat the SHA-256 check.
  • Post a vendor-neutral run summary on completion (5464b52, PR #5). See Logging and Reporting.
  • Verify installer package signatures before running as root (c64d3f0, PR #3). See Security and Package Verification.
  • Rename MDM detector and references to Management (a39ea15, PR #4).
  • Upgrade GitHub Actions to Node24-compatible versions (08f9b47).
  • Strip user attribution from generated release notes (a309a59).

v2026.06.09.2146

Tagged commit 65f3561, 2026-06-09.

  • CI: build on macos-26 with Xcode 26 for the Liquid Glass SDK (65f3561).

v2026.06.09.2141

Tagged commit ef046ff, 2026-06-09. The first tagged release.

  • Add unsigned release workflow; Munki pipeline signs the pkg downstream (ef046ff). This established the current arrangement: the public repository builds and publishes an unsigned package, and signing happens in a private downstream pipeline.

Before the first tag

Development up to that point is untagged. Grouped by theme, from the commit log:

  • Structure. Refactor to standard Swift Package Manager structure (e14fc5a), add packaging source directory (3471ca8), add test suite structure (398f247), update build system configuration (13ab0cc), add GitHub Actions CI workflow (37c314f), rename source code folders (31ecc0e).
  • Manifests and configuration. Implement support for YAML manifest formats (8ada997), add a configuration file for deployment settings (2089a6c), add cache directory constant (dbf4682), add example configuration files (bd7e45f), organise examples and scripts into a resources directory (6f271c6).
  • Run behaviour. Make the bootstrap daemon one-shot and stop reaping the userland run (401c042), run userland regardless of setupassistant item failures (286bf8a, PR #1), handle SIGTERM to terminate SwiftDialog gracefully on exit (bc0e9e9).
  • GUI. Add LogView, RunView and SettingsView (2b6ddae), auto-save and manifest preview in the settings view model (05d0318), a TextEditor for loaded content (e0d0b25), a save keyboard shortcut (ba29179), window size and debug output filtering (11831bc).
  • Packaging and assets. Icon compilation and Info.plist app-icon support (4c22f45), icon artwork (263ac59, 4465b6b).
  • Documentation. Documentation and configuration templates (e7a4162), documentation cleanup (341944d), README description (f9f51ed).

How to read this page

Each tagged release gets its own section here, newest first, listing the changes that landed since the previous tag with the commit subjects as evidence. When a new tag is pushed, add a section for it above the current top one rather than editing an existing section — released notes describe what shipped and should not be rewritten afterwards.

See also

Clone this wiki locally