Details
-
User Story
-
Resolution: Unresolved
-
P1: Critical
-
None
-
None
-
None
Description
Requirements
Qt creates a partner product specific installer that provides access to pre-selected content:
-Qt Creator,
-Qt Design Studio,
-QBSP for the target board - including demo launcher-application and cherrypicked individual demonstrations
-Qt scales installer creation for multiple partners and multiple partner products
-Qt creates installers for all supported host environments: Linux, Windows, macOS
-Qt validates created installer on the host automatically (tools installed properly)
-Partner OR Qt validates created installer on the target manually (demolauncher startable, demonstrations runnable with adequate performance)
-User installs Qt tools and QBSP for the partner product with no or minimal interactions
-User authenticates themselves using Qt Account
-Installer informs user of any errors occurring during installation (expecting reasonable technical competence)
-Installer informs user of installation completion (would be nice to have a GUIDe-specific “boot up the board and see the demonstrations”-CTA/instructions)
Assumptions
Partner provides the necessary software components for BSP creation to Qt
Qt creates the installer, not the partner
Installers are online, not offline (this allows easier updating of the installable components)
Solution in a nutshell for the user
-Installation flow
--User starts installer
--User logs in to Qt account
--Package selection either manually or automatically
--Installer provides progress information about the installation
--Installer announces the completion of the installation
-Execution of demonstrator
--Magic happens
-Package selection
--Alternative 1: manual - user selects what to install
installer shows only the required repositories
whitelisted explicitly
--Alternative 2: automatic - user does not select what to install
installer does not enable the user to affect the package selection at all
the files to be installed are explicitly listed (either one by one, or by using an alias-package for convenience)
Installer parametrization
--Alternative 1: Extend installer with scripting in a file
When the installer starts, if there’s one or more ifw-*.ini file present in the installer the package, it will run the files in alphabetical order and process the arguments one by one
Alternative 2: Provide command line arguments to the installer
Bundle command line arguments to the installer binary
macOS: use applescript to marshall the arguments
windows: create a shortcut and add arguments to it
linux:
When the installer starts, it processes the command line arguments one by one