Tags give the ability to mark specific points in history as being important
  • 0.9.6   Release version 0.9.6
    8eb40de4 · Update CHANGELOG ·
  • 0.9.5   Release version 0.9.5
    82d754f0 · Release version 0.9.5 ·


    • Remount EFI vars directory correctly during UEFI bootloader installation.

    • Force creation of ext4 file systems.

    Image Creation

    • Dracut is now called inside the chroot, making it easier to create foreign architecture media.

    Qt UI

    • An issue with installing bootloaders has been fixed.

    • The Wi-Fi network selection page has been redesigned to be easier to use, and now has a help file.

    • It is now possible to format partitions from the manual mount selection page.

    • A build issue with unstable versions of Qt has been fixed. Note that non-LTS versions of Qt are still officially unsupported. If you have issues using a self-built version of Horizon, please build against Qt 5.12 before reporting.

    • It is now possible to build the Runtime Environment wizard for Macintosh.

    • The manual mount code was rewritten to perform faster in complex scenarios.

    • Dracut will now be installed to the target when the bootloader is selected.

  • 0.9.4   Release version 0.9.4
    4260dc64 · Release version 0.9.4 ·

    Boot to Horizon

    • Add gfxdetect oneshot, to reassure the user that System Installation is starting.


    • Create Apple Partition Map disk labels correctly.


    • The JSON schema used by hscript-fromjson has been documented in Chapter 4 of the HorizonScript Reference Manual.

    HorizonScript Library

    • Work around a bug in Alpine Linux that prevents /dev/stdin from being canonicalised.

    • Add initial support for MIPS. This does not include an automatic partitioner, which is required for Tier 1 support.

    Image Creation

    • CDs now use Dracut for initramfs instead of the custom init from 2016. This also means that live media can load modules instead of relying on only built-in kernel drivers.


    • If a service has already been enabled via an external process, such as having an entry in /etc/runlevels from the packaging itself, the svcenable key will no longer cause script execution to fail.

    • The bootloader key now takes two parameters, with the first one being a required device specification for where to install the system bootloader. The second parameter is identical to the original specification of bootloader, except that the false value is no longer valid.

    Qt UI

    • All references to ConsoleKit have been replaced with elogind.


    • Several tests were added to ensure continued correctness of various metadata keys, including:

      • Non-alphanumeric hostname s should fail.

      • Correctness of the version key implementation.

      • Various usages, valid and invalid, of the bootloader key.

  • 0.9.3   Release version 0.9.3
    69b86bd6 · Release version 0.9.3 ·

    Boot to Horizon

    • Set X11 root window colour to calming blue.

    • Disable compositing in KWin, which can cause issues in Qemu.

    Build system

    • Only search for the BCNM library when building the Qt UI for Installation.

    • Add BUILD_ISO toggle for building the ISO backend for Image Creation.

    HorizonScript Library

    • Ensure mount directory tree exists before attempting to create the actual directory.

    • Recursively bind-mount /dev and /sys in the target.

    • When using the ImageOnly flag, don't ensure mountpoint devices are available.

    • Fix issue where installation on live media failed due to network state.

    Image Creation

    • Add 'keep' option for ISO backend to preserve target dir between runs.

    • Ensure init binary is executable in ISO initramfs.

    • Correctly read scripts from stdin.


    • Add service node support, which corresponds to the svcenable key.


    • Add new bootloader key, to control installation of bootloaders.

    • Fixes for EFI installations.

    • Add optional runlevel parameter to svcenable key.


    • Allow hostnames to start with numeric characters. This represents a potentially breaking change to systems that require RFC 952 compliance.

    • Add new pppoe key for configuring PPPoE links.

    Qt UI

    • Properly flush log file to disk.

    • Add workaround for network issue.

    • Install SDDM for graphical installation types.

    • Use bootloader key when a bootloader is requested.

    • Fix various minor issues in custom package selection screen.

    • Use vfat instead of fat32 for ESP filesystem type.

    • Correctly enable udev when udev is selected.

  • 0.9.2   Release version 0.9.2
    2ed5e528 · Release version 0.9.2 ·
    Release 0.9.2

    Boot to Horizon

    • Added resources to enable booting to the System Installation Wizard.


    • Update keymap to use kbd instead of console-setup.

    Qt UI

    • Ensure log is opened properly when built in Release modes.

    • Fix up signing keys, installed packages, and enabled services.

  • 0.9.1   Release version 0.9.1
    364b50fe · Release version 0.9.1 ·
    Release 0.9.1


    • Don't build the printowner utility in the Runtime Environment.

    HorizonScript Library

    • Add new ScriptLocation object to more accurately report warnings and errors.

    • Target mounts are no longer hardcoded to be a subdirectory of /target.

    • APK --keys-dir argument is now relative.

    • Files downloaded from the network are written properly before execution continues, ensuring partial writes do not corrupt installation state.

    • Execution of user keys works in cross-architecture script execution contexts.

    Image Creation

    • Run prepare before script execution.

    • A root mount is no longer required to generate an image.

    • The target is now a subdirectory of the IR dir, instead of the IR dir itself.

    • Backends can now accept options via -b.

    • An ISO backend has been added, allowing generation of Live CDs.


    • Add the svcenable key, allowing configuration of default services.

    • Add the version key, allowing the version of Adélie to be selected.

    • hostname: Create /etc in the target if it does not yet exist. This is required to properly generate Alpine Linux images.

    • timezone: Remove the existing /etc/localtime in all cases.

    Qt UI

    • Fix building for Runtime Environment.

    • Properly support High DPI screens.

    • Properly check length of root passphrase.

    • Allow mountpoints to be specified in the Runtime Environment.

    • Generate a valid installfile if no packages are selected in Custom mode.

    • Use QString helper to avoid GCC warning about snprintf bounds.

  • 0.9.0   Release 0.9.0
    9f9bcaad · Release version 0.9.0 ·
    Release 0.9.0


    • The BCNM check is now functional.


    • HFS+ has been added as a supported file system.

    • disklabel: MBR support has been fixed.

    • partition: Add 'bios' and 'prep' flags.

    • partition: Type codes are now handled properly.

    • partition: Ensure the first partition isn't too close to the first sectors.

    • fs: Undo files for e2fs are no longer created.

    • mount: Each mount key no longer overwrites /etc/fstab in the target.


    • A new library for probing disk information, DiskMan, has been written.


    • All tools and libraries, except libhscript, have been documented with manual pages.

    HorizonScript Library

    • Introspection support has been added to the Script class.

    • Refactored Keys to be owned by a Script, so Keys can access the values of other keys.

    • The target directory is now configurable.

    • /dev, /proc, and /sys are now mounted in the target.

    Image Creation

    • A new system for creating images using the Horizon system has been written.


    • arch: New key added, including specification and implementation.

    • repository: Fixed defaults when 'firmware' is set to true.

    • timezone: Fixed issue when target already contained /etc/localtime.


    • Configure network interfaces inside the Install Environment when 'network' is set to true.

    • netconfigtype: New key added, including specification and implementation.

    • Existing network configuration on the Installation Environment system is now properly handled.


    • APK Tools are now invoked more efficiently.

    • --keys-dir is now passed to APK Tools during base installation.


    • A Code of Conduct has been added.

    • A YANG model, describing a JSON schema for representing a HorizonScript, has been written.


    • A test has been added for IPv4 subnet -> CIDR conversion.


    • Use Boost's program_options instead of vendoring clipp. Thanks to Calvin Buckley.

    • Messages have been unified between the CLI tools, to ensure consistency.

    • A new tool, hscript-fromjson, has been added to convert JSON representations of HorizonScripts to HorizonScript.


    • The Qt 5 UI has been added. It is not yet fully implemented, but basic installations should work.


    • userpassphrase: Ensure simulated runs don't actually set passwords.

    • All user keys now run shadow commands in the target, instead of the Installation Environment system.


    • Factor subnet -> CIDR conversion to util function.
  • 0.2.0   Project Horizon release 0.2.0
    b5ada058 · Add CHANGELOG ·
    Release 0.2.0


    • lvm_pv, lvm_vg, and lvm_lv execution are now implemented.


    • keymap execution is now implemented.

    • language: An issue with execution of the language key has been fixed.

    • signingkey: Firmware keys are now installed when firmware is true.


    • hostname: dns_domain_lo is now properly set in target /etc/conf.d/net.

    • nameserver execution is now implemented.

    • netaddress: OpenRC services are now added for configured interfaces.


    • New utility 'hscript-printowner' added, which prints the owning UID of a given path.


    • User account creation is now fully implemented.
  • 0.1.0   Horizon 0.1.0
    Release 0.1.0

    This is the initial MVP for Horizon. It's still not usable by end users, but is implemented enough to have more external development and scrutiny.

    Have fun!