Functional System Requirements
Horizon UI
The Horizon UI is the wizard-style user interface component of Project Horizon. The system takes the input of the user and creates a HorizonScript. The resultant HorizonScript is either executed on the running system when started in an installation environment, or saved for later use when started in a runtime environment.
User Language Selection
Prerequisites
UI.Language.Prerequisites
The system must have more than one language translation available for use.
Functional Requirements
UI.Language.List
The system shall present the User with a list of natural languages, in the form of: "Install Adélie using English", "Installer Adélie en français".
UI.Language.Button
For this screen only, the system shall present the "Next" button as a single right-facing arrow. The system shall not present the Cancel button on this screen.
UI.Language.Enable
When the User chooses a language from the list, the system shall enable the Next button to be clicked.
HorizonScript Keys
Script.Key.language
language — The locale identifier of the chosen language.
Initial Introduction
Functional Requirements
UI.Intro.Describe
The system shall present the User with a greeting message including a high-level overview of the installation process. The system shall reassure the user that the installation process will not modify any data until the final step.
UI.Intro.Elements
The system shall describe the UI elements common to each screen, including the Help button, the Back/Next buttons, and the Cancel button.
UI.Intro.Tools
The system shall allow the User to start a tool from the following list before beginning the installation.
A terminal.
An external partition editor.
A lightweight Web browser.
Firmware Setup
Prerequisites
UI.Firmware.Prerequisites
The system must have firmware support compiled in.
Functional Requirements
UI.Firmware.Prompt
The system shall ask the User whether or not to load binary firmware, stressing that security-sensitive systems must not choose this option.
UI.Firmware.Load
If the User chooses to load binary firmware, the system shall add the APK Fission repository and the linux-firwmare package to the installed environment.
UI.Firmware.ImmediateLoad
If the User chooses to load binary firmware immediately, the system shall add the APK Fission repository signing key and the linux-firmware package to the running installer environment.
HorizonScript Keys
Script.Key.firmware
firmware — Whether to load firmware.
Networking Setup
Prerequisites
UI.Network.Prerequisites
The system must have at least one non-loopback network interface detected by the kernel.
Package and Package Set Selection
Horizon Runner
The Horizon Runner is the component of Project Horizon that configures a computer to match an input HorizonScript.