guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GSoC] Draft proposal for an Install Wizard for Guix


From: myglc2
Subject: Re: [GSoC] Draft proposal for an Install Wizard for Guix
Date: Sun, 27 Mar 2016 14:30:22 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Thomas Ingram <address@hidden> writes:

> On 03/26/2016 07:39 AM, Ludovic Courtès wrote:
>> Personally, I would like to view the “wizard” as a helper, and not as
>> something that hides everything and turns people into “end users.”

Wow, Ludo, what do you have against "end users"?

>> I don’t know how this could translate in the design of the tool.
>> Perhaps showing the ‘operating-system’ declaration as you suggest is one
>> thing, and making it easy to view the section of the manual that
>> corresponds to a particular item, or to jump to the code that defines a
>> specific service (say), would be helpful too.
> Yes as much as it is an installer it should also be an
> introduction. Something that not only lets a user easily input their
> options but also shows them how their settings will be put into
> config.scm, I'm trying to come up with some clever ideas of how to do
> this in a graceful way.

I disagree about teaching config.scm. When I install Debian all I care
about is:

1) does it let me do what I want?
2) how long does it take?
3) does it leave my machine in a "good" state?

I don't really care how it does it. config.scm is a thing of beauty, but
how important is it really for a GuixSD user to learn? Once GuixSD is
installed, will they ever look at it again? Won't they be using package
management to install the software they want?

A more fundamental issue you need to think about is that the Debian
installer installs packages globally for all users whereas "Guix-style"
is to not address the user-level package needs in config.scm. This means
that a GuixSD installer needs to get the machine up and running on
GuixSD and then come back for a second pass to help the user install
some packages.

> Thinking about this has lead me to think more about Danny
> Milosavljevic's suggestion
>> Yeah, personally I'd like to have an emacs form which just displays
>> config.scm (and stores it as a normal file) and has some inline
>> documentation on what is what and maybe a treeview instead of
>> visible S-Expression parens - and a validation process whether the
>> stuff makes sense. When you exit, it just instantiates the system.
>>
>> The partitioning & file system type should also be specified in a
>> declarative way in the config [and arguably it already is].
>>
>> Basically not a lot different from now but just more user-friendly
>> and catching more mistakes before instantiation.
>>
>> ncurses actually isn't as flexible - although it has the benefit that
>> the average user is familiar with how it looks.
> Basically I was thinking of doing that with an ncurses UI that shows
> the user their config.scm with some documentation and then walks users
> through changing each option. But maybe an emacs installer makes more
> sense as this is the type of interface emacs does very well.

I encourage you to pursue the emacs approach.

> The reason I had avoided proposing an emacs installer previously is I
> worry about confusion from users who are unfamiliar with emacs and how
> to use it.

People are unfamiliar with emacs, but have you used aptitude? No one
started out familiar with aptitude, but it is happily used by Debian
admins (many of which, by the way, hate emacs).

> Should we be concerned with that when so many of Guix's
> great features that can be accessed through emacs.

IMO the Guix emacs interface already exceeds aptitude's, so leverage it
rather than re-inventing any of it.

> Perhaps there could be a simple introduction to emacs in the installer
> as well?

Don't try to teach emacs to the user. And what ever you do, DO NOT tell
them to type C-h!

Instead create a top-level menu that drops them into various guix-
functions to get the job done. An example of this is the notmuch emacs
interface.

Then, make sure each "guix-<function>" you use supports typing "?" to
figure out what the heck is going and and how to get stuff done.

By going this route, you will leverage what is already developed,
enhance the usablity of the Guix emacs interface, and probably end up
with a dynamite installer. - George

> On the
> other hand if a user has no experience with emacs throwing that at
> them along with config.scm could be overwhelming.

Agreed. An IMO not necessary as stated above.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]