Re: [Tails-dev] [RFC] UX for ISO verification + Tails Instal…

Delete this message

Reply to this message
Author: intrigeri
Date:  
To: The Tails public development discussion list
Subject: Re: [Tails-dev] [RFC] UX for ISO verification + Tails Installer + full upgrades
Hi,

[and sorry to reply this late. only looking at the Tails Installer
bits for now. I'll try hard to look at the browser extension thing in
the next 2 days.]

sajolida wrote (07 Feb 2015 14:03:15 GMT) :
> Tails Installer
> ---------------


> https://tails.boum.org/blueprint/bootstrapping/installer


> We designed scenarios for Tails Installer outside of Tails, and are
> proposing interface improvements for 2015, and later. This covers #7064:
> Design scenario and features for a Tails Installer package in Debian.


Congrats, and thanks for developing and sharing this vision! I like it
very much :)

> u, please have a look at the section called "2015" and tell us what you
> think. Do that seem feasible to you.


I must say I'm surprised to see all these proposed changes and new
features trying to be included into a deliverable that was initially
way simpler, that is: making Tails Installer work on Debian with the
least possible amount of efforts. This process feels a bit awkward to
me. There are enough expected stumbling blocks on the way to do what
one committed too (see e.g. #8980), to warrant lots of carefulness
when raising the bar here and there.

So I've had a closer look, since I know the code base quite well
already, which isn't the case for u yet => she may not be the best
person to judge (yet!) how much unexpected additional work this
proposal actually means.

By writing this email, my hope is that we can find a consensus that
doesn't make u's task any more involved than she committed to
initially, while still making good progress towards the great vision
you had. I bet we share this goal, so we shall succeed in the end :)

> - Instead of having to write a custom splash screen for Tails Installer
> outside of Tails we are proposing to get rid of it and have a "Clone"
> button on the main interface when running inside Tails. This changes
> a bit the work that was planned so far, but I'm not sure whether this
> is actually *more* work.


Yes, it's substantially more work. Let me elaborate.

The way this work was envisioned initially, the only change to do was:
simply replace "Clone and [...]" in the splash screen with "Install
from ISO". That's trivial.

Instead, this proposal still implies to support "Install from ISO" too
(of course, otherwise we can't bootstrap from Debian :), but it also
implies to change some parts of the code in depth: the "clone" feature
is currently implemented as a command-line option, and quite a few
things are done differently depending on whether it's set or not, e.g.
in the LiveUSBDialog class constructor => they will now need to be
done differently *dynamically*, after the UI has been set up and the
target device has been chosen, which very different.

=> I propose that u. does the trivial bits what she committed to do,
and #8859 (get rid of the splash screen) is moved to "Bonus for 2015".

> - The autodetection logic for Tails USB stick is already in Tails
> Installer, we're proposing to use it in a different code path.


I wasn't able to find this existing code, so that's more work too.
Not much, I think, thanks to GPT and partition labels :)

It's almost useless without removing the splash screen too, though, so
I propose this is moved to "Bonus for 2015" as well.

[I know *I* might have let you believe that we have this code
already -- sorry if that's the case. IIRC I meant to say that it's
easy to add.]

> - The command line interface wouldn't be a blocker but I think that it
> exist already and might need a bit of refresh.


I confirm it does exist. Not sure how much work it would be to make it
actually work, as it may be that we broke it in various ways when
making this piece of software evolve over the last N years, without
taking that use case into account. I'm almost sure we've stuffed too
much Tails logic into gui.py, which would make this task seriously
more involved that one may think initially. I would argue that the
"Debian Hacker" scenario should definitely not be blocking the work u.
has committed to do anyway => I propose it's moved to "Bonus for
2015".

Now, taking a step back, I realize that I've proposed to move to
"Bonus for 2015" every single new feature and substantial change you
proposed. This is probably no surprise, since well, they weren't
accounted for when u. committed to do this work, and a large part of
the margin we had for unexpected additional work has already been
eaten by the Qt 4 deprecation in Debian (my fault, I should have seen
it coming). Still, I guess you may be very disappointed at this point.

But let's be optimistic, and say she'll be faster than planned.
Let's plan for the best case, and try to prioritize these 3 changes,
in case she has time left. It's not easy, since removing the splash
screen depends on adding the autodetection feature (right?). Still,
I'm trying to find something that can be done incrementally and still
benefit users. I would say:

1. Add the autodetection feature (not visible for the user yet, but
that's one left thing to do for the next steps)
2. Simplify a bit the splash screen thanks to #1: merge "Clone and
Install" and "Clone and Upgrade" into one single "Clone" button.
And then, depending on whether the destination device has already
Tails installed or not, dynamically change the label of main action
button to "Install" or "Upgrade", or whatever you prefer. (Note
that this breaks the "re-installing Tails from scratch" use case,
but IIRC we already have documented how to uninstall Tails, so
that's no big deal).
3. Remove the splash screen.
4. Support command-line upgrade.
5. Support command-line initial installation.

Thoughts?

Cheers,
--
intrigeri