https://fedoraproject.org/wiki/Changes/AnacondaWebUIforFedoraWorkstation

This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.


== Summary ==
The new PatternFly-based UI has been developed by the Anaconda team
for some time now and we would like to make it available for users of
Fedora to enhance and modernize installation experience. As the first
step in this user adoption process, we are targeting Fedora
Workstation only.

== Owner ==

* Name: Anaconda team ([[User:jkonecny| Jiří Konečný]])

* Email: jkone...@redhat.com
* Name: Fedora Workstation SIG
* Email: desk...@lists.fedoraproject.org


== Detailed Description ==
The Anaconda team has been working on a new web-based UI for the OS
installer for some time. We would like to give users the fruits of our
work and get feedback so that we know what we need to improve or where
we should focus.
To make the adoption as painless as possible, the Fedora Workstation
was chosen as the first target so we have better control over the
environment and can have a focus. Also, Fedora Workstation has a
smaller featureset than other installation media. The adoption for the
other media later is planned too, but the exact date will be based on
feedback and our capacity allowance.


=== What will '''not''' change with the new Web UI? ===
The new UI will mostly use already existing functional code (some
modifications are necessary), so the stability should be similar. The
Anaconda specific kernel boot parameters are also staying almost
unchanged. The Anaconda team aims to reduce functionality that is not
used but still put a maintenance burden on the team. This should
result in much easier future extensions and stability of the
installer. The current approach is to start from what is known to be
required and used, then add future features based on the feedback.


=== What is going to change with the new Web UI? ===
The new web UI is not just a change of the UI technology, which is
based on the React and Cockpit framework, but also a complete overhaul
of the user experience. The new UI is trying to be easier to use by
removing most of the complexities but still leaving possibilities to
do everything you might need to do. We are trying to achieve a state
where even users who don’t have previous experience with the Linux
operating system will be able to do the installation smoothly.

List of what is part of the new UI:
* Wizard solution instead of hub and spoke
* New welcome screen to select language (will be preselected from a
language configured in system)
* Timezone and date configuration
* Disk selection
* Guided partitioning
* Review configuration
* Installation progress
* Build-in help

Let’s go over the  important sections from the UI.

==== Use of wizard ====
Anaconda was a hub&spoke solution where users entered spoke to
configure an aspect. The benefit of this solution is that you can skip
what you don’t need. However, the drawback is that it’s much more
information at once and harder to use when you are not familiar with
what you need. For that reason, the team decided to go with an easier
to use solution, the traditional wizard. See here for more details
https://communityblog.fedoraproject.org/anaconda-is-getting-a-new-suit-and-a-wizard/
.


==== Guided partitioning ====
The current (GTK) Anaconda UI approach is to have three types of partitioning.
* Automatic - do everything automatically
* Custom - you can do everything with top-down approach where users
work on mount points and specified what technology they want to use
and how
* Blivet-gui - added later as bottom-up approach which enables users
to create the partitioning stack themselves manually

These methods are giving great freedom but each of these has its
issues. For automatic, the issue is almost no customizations and not a
clear output. For custom and blivet-gui, you need to understand the
Linux storage really well to know what you are doing, which could be
intimidating.
Because of those issues, we decided to choose another approach, which
we are calling guided partitioning. This type of partitioning is
giving users paths with explanations of what will happen but does not
overload them with too many options at once. These paths could be then
customized. This solution was taken as the best compromise between the
automatic (no customization) and custom/blivet-gui, which was too
heavy and hard to maintain.

We will provide the recommended solution and improved customization
based on the users feedback. However, in case someone is not happy
about the recommended solution, we are going to provide a way to guide
users, to create their partitioning themselves (with a tool of their
choice) and then tell Anaconda how to use it. This method could be
also used for easy re-installation of the existing system and we are
planning to improve the experience in the future even more.


==== Build-in help ====
Another pain point of the current UI is problematic help content.
Currently, it’s a button that will show a lot of text from the
documentation, which might be misleading because it’s not part of the
feature development. To improve the state, the help side panel was
added, which will provide specific help for what the user wants to
know directly in a UI. For example, if you are in the guided
partitioning screen you can find a link (blue text) with “learn more
about the…” and after clicking on this you will find details about the
given guided path. Another benefit of the new help solution is that it
is part of the source code so it changes with the feature work and
could be localized (harder to achieve before).


==== Changes not directly related to UI ====
The Anaconda team is in contact with Fedora Workstation SIG and
actively working with them to get the best user experience for users.
Together, we agreed on building the approach with the support of Gnome
Initial Setup as part of the Fedora Workstation Live environment,
which will prompt you for language and keyboard layout. Configuration
from the system is then used by Anaconda. This way, Anaconda doesn't
need to ask a second time for language (maybe just confirmation) and
keyboard layout which will be converted from the live system into the
installed system. This should result in a much better user experience.


=== Additional information ===
* We are not planning to add support for spins with this change, they
will use the existing GTK UI.
* We don’t support remote connections to the WebUI yet.


== Feedback ==
Currently we mainly discuss this with Fedora Workstation SIG and have
their support for this change. We also have feedback from our preview
builds https://fedoramagazine.org/anaconda-web-ui-preview-image-now-public/
. The feedback was mostly positive even though there are some
concerns.

Other than that we also reached to Fedora QE team and [[User:Mattdm|
Matthew Miller]] and more.

For more details about the feedback here are some tickets:

* https://pagure.io/fedora-workstation/issue/362
* https://pagure.io/fedora-workstation/issue/366
* https://pagure.io/fedora-workstation/issue/367
* https://pagure.io/fedora-workstation/issue/368
* https://pagure.io/fedora-workstation/issue/371
* https://pagure.io/fedora-workstation/issue/375
* https://pagure.io/fedora-workstation/issue/377
* https://github.com/rhinstaller/anaconda/discussions/categories/web-ui

== Benefit to Fedora ==
Fedora Workstation installation will have a more comfortable and
better user experience, especially for the new-to-distro users. We are
also targeting to have a consistent look and feel with Cockpit and
Image Builder projects, so that users might be more familiar with the
new Anaconda.
By this, we would be more aligned with Fedora Workstation SIG goals of
simple and easy-to-use solutions, and hide the complexities to make
the installation experience more robust.
It should be easier for users to reinstall the existing system.
It will also allow the Anaconda team to make the extensions to the UI
faster than it was before and should be less prone to errors compared
to the current UI.

== Scope ==
* Proposal owners:
** Anaconda team
** Fedora Workstation SIG

* Other developers: Should not have impact out of the Fedora
Workstation Live environment.

* Release engineering: Will be added

* Policies and guidelines: N/A (not needed for this Change)

* Trademark approval: TBD

* Alignment with Community Initiatives:


== Upgrade/compatibility impact ==
No upgrade or compatibility impact.



== How To Test ==
Standard installation testing of Live installation always before. We
already reached the Fedora QE team to discuss an impact on them and
ideally set the test day for more comprehensive testing with more
details.

Steps:
* Download the ISO image (not yet available - WIP)
* Start a VM with this ISO image
* Run the installation
* See journal log and/or browser console in case we missed error in the Anaconda

Bugs should be filed to [https://bugzilla.redhat.com/ Red Hat
Bugzilla] on the Anaconda component.



== User Experience ==
Installation of the system should provide a much better and more
polished user experience. Compared to the current UI users should be
fine without the familiarity of the complexities of OS installation.


== Dependencies ==
None packages should be impacted by this change. The current GTK UI
will still be available for other uses.


== Contingency Plan ==
* Contingency mechanism: Return back to the current GTK UI by changing
packages to build the ISO.
* Contingency deadline: Beta freeze
* Blocks release? No, we can ship without the new web UI

Another solution for the contingency plan which we would like to have
is support for the current GTK UI as a second UI on the same Live ISO.
That should be doable easily and if the new UI would be really a
blocker for someone, they can provide us feedback and until resolved
use the GTK UI instead.


== Documentation ==
Documentation will be expected especially for custom partitioning
replacement but not only that.


== Release Notes ==




-- 
Aoife Moloney

Product Owner

Community Platform Engineering Team

Red Hat EMEA

Communications House

Cork Road

Waterford
_______________________________________________
devel-announce mailing list -- devel-announce@lists.fedoraproject.org
To unsubscribe send an email to devel-announce-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to