The openSUSE project developers have published a plan for the development of the new Agama installer (formerly D-Installer), designed to replace the classic SUSE and openSUSE installation interface, and notable for separating the user interface from the internal components of YaST. Agama allows for the use of various front-ends, including a front-end for managing installations via a web interface. Live builds are being formed for the x86_64 and ARM64 architectures to support the installation of the continuously updated openSUSE Tumbleweed build, as well as editions of SUSE ALP, openSUSE MicroOS, and openSUSE MicroOS Desktop, built on isolated containers.
This year, two significant Agama updates are planned. The first is expected to be presented in mid-April, and the second in mid-July. The July update will focus on increasing the flexibility and functionality related to automated installations conducted without human intervention. The goal of the development is to bring Agama to a point where it can be used as an alternative to the AutoYaST toolkit.
The April update is notable for the discontinuation of the use of ready-made modules developed by the Cockpit project in favor of utilizing a more independent framework and a modernized user interface. Moving away from dependency on Cockpit will eliminate additional external dependencies and remove constraints that hinder the implementation of certain ideas. For instance, Cockpit includes dependencies on components written in Python and C, while Agama uses Ruby and Rust languages. The discontinuation of Cockpit will also free developers from the limitations they faced when attempting to implement automatic installation mode and rework the repository configuration interface to achieve an optimal balance of simplicity for beginners and functionality for experienced users.
At the current stage of development, the new installer already provides the necessary capabilities to address tasks such as selecting an initial set of applications, configuring network connectivity, language, keyboard, time zone, and localization settings, preparing storage devices and partitioning, and adding users to the system. Among the key development goals for Agama, the removal of existing graphical interface limitations, enhanced functionality for using YaST features in other applications, moving away from a single programming language dependency (the D-Bus API will allow creating extensions in various languages), and encouraging community representatives to create alternative settings are mentioned.

To install packages, check hardware, partition disks, and perform other installation-related functions, Agama continues to utilize YaST libraries, over which service layers abstract access to the libraries through a unified D-Bus interface. The installer employs a multiprocess architecture, which prevents the user interaction interface from being blocked while other tasks are being executed.
The basic interface for managing the installation is built using web technologies and includes a handler that provides access to D-Bus calls via HTTP, along with the web interface. The web interface is written in JavaScript using the React framework and PatternFly components. The service for binding the interface to D-Bus, as well as the built-in HTTP server, is written in Ruby.
Source: opennet.ru
