#21 Reduce initial setup redundancy
Closed 2 years ago Opened 2 years ago by catanzaro.

We should reduce redundancy between anaconda and gnome-initial-setup

Change proposal:

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

Current status:

  • Notified desktop@.
  • Notified anaconda-devel-list@redhat.com. Message awaiting moderator approval.
  • Marked change proposal ready for wrangler... hate to do this without prior discussion, but deadline is tomorrow.

Metadata Update from @pfrields:
- Issue tagged with: meeting

2 years ago

Metadata Update from @pfrields:
- Issue untagged with: meeting

2 years ago

Metadata Update from @pfrields:
- Issue tagged with: meeting

2 years ago

The Change is moving forward. @catanzaro is going to contact the Anaconda devs directly due to the moderators being locked out of their mailing list currently. Key point being we want to engage proactively and make sure to mitigate any foreseeable issues with these edition-specific changes.

This is going to be pushed back to F28 since the testable change deadline was last Monday. The schedule was much tighter than I'd thought!

The Anaconda developers have seen my mail but didn't respond. That's fine for now, since this is no longer urgent. I will land our side of the change -- disabling anaconda spokes -- in rawhide shortly after F27 is branched, with heads-up to Adam Williamson as no doubt it's going to break every OpenQA test ever. Then I'll prod the Anaconda developers again once that lands.

Metadata Update from @catanzaro:
- Issue untagged with: meeting

2 years ago

I've re-proposed this for F28. It must be re-approved by FESCo.

Although FESCo previously approved this change for F27, it had to be re-approved for F28. This time FESCo rejected the change. We have been instructed to remove redundant pages from gnome-initial-setup instead. See https://pagure.io/fesco/issue/1803.

That means we need to remove the (a) welcome and language selection, (b) keyboard layout, and (c) timezone pages from gnome-initial-setup.

The workflow for existing user mode will be:

  • The privacy page
  • The additional software sources page
  • The online accounts page
  • The completion page

And, somewhere in there, the network selection page. (Not sure where; I didn't want to check on a laptop.)

However, this unfortunately this means we will need to continue to maintain two separate ways to create the initial user account, as Anaconda will presumably continue to allow skipping user account creation. In new user mode, there are many more pages, including the page that allows configuring enterprise login. Of course, almost nobody will ever see these pages, because almost everybody will create the initial user account in Anaconda.

Lastly, note that we'll need a new welcome page, as the privacy page is really not suitable for the welcome page.

However, this unfortunately this means we will need to continue to maintain two separate ways to create the initial user account, as Anaconda will presumably continue to allow skipping user account creation. In new user mode, there are many more pages, including the page that allows configuring enterprise login. Of course, almost nobody will ever see these pages, because almost everybody will create the initial user account in Anaconda.

I'm going to propose we request that initial user account creation become mandatory in Anaconda for Workstation, so that we can stop maintaining new user mode for Fedora. That's a shame, but there's no point in doing so now, as the only way to access it would be for the user to ignore the user account creation prompt in Anaconda, and set only a root password instead. It's unlikely that users will take this path unless they are Fedora developers who are testing it.

Metadata Update from @catanzaro:
- Issue tagged with: meeting

2 years ago

That means we need to remove the (a) welcome and language selection, (b) keyboard layout, and (c) timezone pages from gnome-initial-setup.

Of course, that's pretty similar to my original proposal. The real difference is that we cannot hide everything from Anaconda, so we cannot force new user mode on first boot.

This has repercussions for existing user mode after creating new user accounts, as well. We have heretofore not distinguished between existing user mode for the first user account and existing user mode for subsequent user accounts. Now we will need to add such a distinction, otherwise we won't be able to run the language and keyboard layout pages for newly-created user accounts, where those pages are desirable and not redundant.

Let me boil this down to two options:

  • I can patch our gnome-initial-setup to skip the redundant pages, as requested by FESCo.
  • I can also simply withdraw the change proposal, and we keep the status quo.

The former option is not desirable, as we'll be hacking out most of gnome-initial-setup. It remains to be seen if I'll be able to design a decent-looking welcome screen with the language selection removed. I will certainly not propose any of these changes for upstream.

The later option seems even less desirable, though, as then we'll be stuck with this redundancy indefinitely.

This feels like a technical committee making design decisions about the user experience. That does not work, and we should not support it. Keep the status quo, as far as I'm concerned.

Keep the status quo, as far as I'm concerned.

As one of the 3 Fedora users (there really can't be that many of us, given how hidden this is) who avoid creating their user in Anaconda specifically because the "new user mode" of g-i-s is nicer, I'd agree with that.

The status quo is a better UX than any of the options suggested here after the FESCo decision, as well as the FESCo decision itself.

For the record I would be fine with delegating keyboard setup to Anaconda but gnome-intial-setup still needs to setup Input Methods for users, but we could hardcode the choice based on locale.

Anyway it seems too late to do this for F28 now anyway given that upstream Gnome is already frozen?

These changes, as previously-approved, are already implemented in rawhide (as of a day or two ago, I had just gotten around to it). Keyboard setup and input method selection are intrinsically related as they're both handled by gnome-initial-setup's keyboard page; we can't reasonably have an input method selection page that does not do keyboard setup. Part of the redundancy elimination entailed showing language and keyboard layout selection only in anaconda. I don't think FESCo is likely to be pleased if we try to backtrack on that now; consider it a compromise to allow us to get away with removing anaconda panels.

So, to solve the problem, we should (a) improve anaconda's keyboard page to handle input methods (which seems like a major, obviously-required feature; it's surprising that this is missing), or (b) push forward on our longer-term plans to do language and keyboard layout selection even earlier. My vision for (b) is: when booting the live installer for the first time, we don't go straight to the desktop session, instead we jump into an application where you configure language, keyboard layout, and input methods. Only after setting language, keyboard layout, and input methods is the user is taken to the live session. And then in Anaconda, neither the language nor the keyboard layout spokes are presented. We could even implement (b) using gnome-initial-setup itself! But I don't have time to work on this, unfortunately, and it needs integration with gdm.

Yep, thanks, I realised that after commenting but then got diverted by other F28 display server issues...

Okay I like your ideas - I need to think them through more carefully.

However for F28 we could still hardcode Input Method selections in gnome-initial-setup, which would actually provide a better experience over the previous handling, since keyboard layouts and Input methods should be selected separately - so now I actually see this as a step forward in the right direction.

Tested Fedora 28 compose today. Found every new user created showed all the pages in gnome-initial-setup but then when I ran it again "/usr/libexec/gnome-initial-setup" why do it skipped language and keyboard selection pages?

Tested Fedora 28 compose today. Found every new user created showed all the pages in gnome-initial-setup but then when I ran it again "/usr/libexec/gnome-initial-setup" why do it skipped language and keyboard selection pages?

Part of the deal with reducing redundancy was that language and keyboard layout would be skipped in new user mode, which is what you get when you run /usr/libexec/gnome-initial-setup without --existing-user. There are two modes: new user and existing user. The terminology is confusing. New user mode is where there is no user account and g-i-s offers to create your user account for you. Existing user mode is used when you have just created a new user account (that exists before g-i-s runs). We want to offer language and keyboard layout in existing user mode, because these are additional new user accounts on a workstation that already has a user account, and maybe the new user wants to use a different locale or keyboard layout. But we don't want to offer it in new user mode, because the user is guaranteed to have selected these earlier in anaconda.

In this weeks Workstation WG meeting, consensus was to watch upstream progress at:
https://bugzilla.gnome.org/show_bug.cgi?id=794166
and pull in any changes into fedora (via new release or patch)

@pwu's patch was reviewed and merged upstream by @catanzaro and already built for F28, I believe, thanks! :)

https://bodhi.fedoraproject.org/updates/FEDORA-2018-39587c6b32

Just for the record: existing-user mode is only there because anaconda insists on offering to create a user. The designed user experience is that the installer is installing the OS, and the initial setup tool creates the user and sets up the account.

I don't think further meeting time is required here: everything is implemented and (hopefully) working fine. I'm going to close this, and remove the meeting tag since the next meeting's agenda is looking pretty tight. Let me know if there are further questions or concerns.

Just for the record: existing-user mode is only there because anaconda insists on offering to create a user. The designed user experience is that the installer is installing the OS, and the initial setup tool creates the user and sets up the account.

It also runs for new user accounts created from gnome-control-center: that's why I went to the effort of preserving language selection and keyboard layout in existing user mode.

Metadata Update from @catanzaro:
- Issue untagged with: meeting
- Issue status updated to: Closed (was: Open)

2 years ago

Adam has pointed me to https://www.happyassassin.net/nightlies.html and says this should be testable in 0406.n.0, which is not available quite yet.

@pwu was a huge help in making sure we have a good solution for enabling input methods, and also fixed a bug that caused the keyboard layout to be dropped (present in the beta release). Thanks a bunch!

@catanzaro, Thanks for the help on code writing and review!

Login to comment on this ticket.

Metadata