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

Delete this message

Reply to this message
Author: sajolida
Date:  
To: The Tails public development discussion list
Subject: Re: [Tails-dev] [RFC] UX for ISO verification + Tails Installer + full upgrades
intrigeri:
> sajolida wrote (07 Feb 2015 14:03:15 GMT) :
>> https://tails.boum.org/blueprint/bootstrapping/installer
>>
>> 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.


Please keep in mind that I discussed all those points initially with you
before writing anything down, and then asked u for her agreement. I know
that I don't have the technical insight to judge how much work this
represents so I'm barely proposing and expecting you to tell me what's
acceptable. I'm sorry it too so long and we know have to rollback.

> 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 :)


Understood.

>> - 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.


Understood.

> => 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".


Agreed.

>> - 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.]


You were :)

>> - 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".


Agreed. Tchou will be disappointed :)

> 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.


I've seen that :(

> 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.


I fully agree on that plan, thanks for coming up with it. Please
implement it on Redmine and in the blueprint and I'll review.