Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows installer is unclear and has redundant settings #90989

Closed
Codeberg-AsGithubAlternative-buhtz mannequin opened this issue Feb 23, 2022 · 7 comments
Closed

Windows installer is unclear and has redundant settings #90989

Codeberg-AsGithubAlternative-buhtz mannequin opened this issue Feb 23, 2022 · 7 comments

Comments

@Codeberg-AsGithubAlternative-buhtz
Copy link
Mannequin

BPO 46833
Nosy @pfmoore, @tjguk, @zware, @zooba, @Codeberg-AsGithubAlternative-buhtz
Files
  • python3_9_10_install_wizard_page1-3.png: Screenshot of all 3 installer wizart pages at once
  • py_installer.pdf: drafts of 4 variants of an alternative install wizard
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = None
    created_at = <Date 2022-02-23.08:22:08.475>
    labels = ['expert-installation', 'OS-windows', '3.11']
    title = 'Windows installer is unclear and has redundant settings'
    updated_at = <Date 2022-02-26.15:00:05.612>
    user = 'https://github.com/Codeberg-AsGithubAlternative-buhtz'

    bugs.python.org fields:

    activity = <Date 2022-02-26.15:00:05.612>
    actor = 'eric.araujo'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['Installation', 'Windows']
    creation = <Date 2022-02-23.08:22:08.475>
    creator = 'buhtz'
    dependencies = []
    files = ['50638', '50640']
    hgrepos = []
    issue_num = 46833
    keywords = []
    message_count = 6.0
    messages = ['413777', '413793', '413809', '413818', '413932', '414081']
    nosy_count = 6.0
    nosy_names = ['paul.moore', 'tim.golden', 'zach.ware', 'steve.dower', 'buhtz', 'h30-04213']
    pr_nums = []
    priority = 'normal'
    resolution = None
    stage = None
    status = 'open'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue46833'
    versions = ['Python 3.11']

    @Codeberg-AsGithubAlternative-buhtz
    Copy link
    Mannequin Author

    Hello together,
    this is is about the installer of Python 3.9.10 on Windows 10 64bit.

    I have problems to interpret the installer wizard/dialog. And my argument is that no matter if there are good reasons for the current options some of the users are confused by it.

    The goal should be to make the installer more clear about what this options do.

    Lets see the "Install for all users" option:
    This appears on all three pages.
    I am not sure but would say that the first two options are related to the py-launcher not the the python interpreter itself. OK, but why two options?
    The third option is for the interpreter?
    And I do not see an advantage in making a difference between launcher and interpreter for that option.

    Lets see about PATH/environment variables:
    This appears on the first page ("Add Python 3.9 to PATH") and on the third page ("Add Python to environment variables").
    I do not understand why.

    And all this options are not synchronized. It means when I Enable "Add Python 3.9 to Path" on the first page the "Add Python to environment variables" on the third page is not updated (enabled) also.

    Again:
    I am sure there are very good reasons for this separated options. But the wizard should make this reason clear to the user (or her/his admins) so that she/he can make an well informed decision.

    @zooba
    Copy link
    Member

    zooba commented Feb 23, 2022

    I am not sure but would say that the first two options are related to the py-launcher not the the python interpreter itself.

    You correctly read the options, so we'll need a suggestion on how to make it more clear without becoming impenetrable. Maybe changing the third one to say "Install Python for all users" would suffice?

    Possibly we should link to the install docs from the front page for people who want more help.

    OK, but why two options?

    The py.exe launcher is totally separate from the version of Python you're installing, and if you previously installed it for all users (including if you previously installed Python 3.4 or earlier), you have to install it for all users again or it won't work.

    The option is on the front page so that non-admins can easily disable it and still install everything.

    This appears on the first page ("Add Python 3.9 to PATH") and on the third page ("Add Python to environment variables").

    So that users can change it without having to go through the advanced install. This is the most common option to enable, even though we recommend against it unless you know what you're doing, so putting it on the front page saves _many_ users from having to go through all the other pages.

    all this options are not synchronized

    That sound like a bug. And I can't reproduce it, so we might need more info.

    If you go through setup a few times (without ever actually installing) and fiddle with the options, it will still produce a log file in %TEMP% that should explain which settings were modified, so we can see why they may not be updating in the UI for you.

    @Codeberg-AsGithubAlternative-buhtz
    Copy link
    Mannequin Author

    Thank you very much for your quick replay and for taking my problems and thoughts into account.

    I have to dive deeper into the topic but still have some ideas how to re-design the wizard.

    IMHO the primary problem is that on the first page the decision between "normal" and "advanced" is mixed with the settings for "normal".

    @Codeberg-AsGithubAlternative-buhtz
    Copy link
    Mannequin Author

    In the attachment you will find a PDF with variants A to D on each side.

    I tried to think into the design decisions made by the team who created the current installer. I am not sure of course but I tried to take this (assumed) decisions into account.

    Variant A:
    This is nearest to the current release version.

    • The settings on page 1 are moved onto that page directly to the bottom of "Install Now" and before(!) "Customize installation".
    • The "all users" option is now available for the interpreter and launcher.
      Modifying the position of the two checkboxes make‘s it more clear to which decision way (simple or customized/advanced installation) they belong.

    Variant B:
    The same as A but Page 2 and 3 (from A) are joined together. If there is enough room on the wizard dialog this would be OK. But very important is to visually separate the two sections "Interpreter" and "Launcher" on that one dialog. You could do that with bigger bold text like headings or you could use a horizontal bar.

    Variant C (would be my second favourite):
    Page 1 is more minimal. The user only have to make a decision between simple installation and advanced/customize installation.

    Variant D (my favourite):
    Page one offers the simple options about "PATH" and "all users" for interpreter and launcher. This should be separated in a visual way of course.
    btw: From a technical point of view I do not see an advantage of separating the decision about "PATH" and "all users" between python and py. I would assume if py should goes to PATH and installed for "all users" the interpreter should treated the same.
    More important on D is that the way to the "advanced" (currently named "customize") installation way is "hidden" behind a simple GUI button. A lot of other installers doing it the same way. It is just a simple button. Not big, no special colours or something like that. The page 1 of the current release version of the installer is to much bling-bling. ;)

    Some more Notes and Thoughts

    „Customize“ is not a good term, because it is still possible to „customize“ the installation on that first page (the two check boxes on the bottom) without clicking „Customize installation“ and
    When clicking on „Customize installation“ the next (2nd) page is named „Optional Features“ which is different from „Customization“. I would suggest "Advanced" or "Expert".
    It is similar with “Advanced” on page 3. What is the difference between “Advanced” and “Customize”?

    Add a „What is the py launcher for“ link to the wizard.

    Add a „What is pip launcher for“ link to the wizard.

    In the What-for-pages: Do not describe what py/pip can do but describe what the user can do with it. Modify the perspectives/view points! I would help you to review this texts.

    Use horizontal bars in the GUI to better visualise the separate ways/topics. E.g. in Variant B on page 2.

    I have some more detailed suggestions about modified wording. But I think at this point it is enough. :)

    @zooba
    Copy link
    Member

    zooba commented Feb 24, 2022

    So I'm the "team" that designed it the first time (with input from others, of course, but it wasn't designed by a committee or anything), and the primary goal was to enable a single-click install for the majority of users, biased towards simplicity for users who are less-experienced at administering a Windows PC. This was balanced with the fact that many users would already have 2.7 or 3.4 installed, and those installers had some poor, and irreversible, design flaws.

    These flaws forced us to install py.exe for all users by default, otherwise the majority of people would end up installing it lower on PATH and would never get the updates. As a result, it would break, because the launcher included with 3.4 wouldn't reliably detect 3.5, and we didn't have any option to detect or upgrade it.

    However, this meant that admin permissions would be required for a default install, which is not acceptable. So the front page option to switch that setting was added so that non-admin users could easily disable the admin requirement.

    The PATH option was added under protest, because too many users/teachers rely on it for their coursework and wanted it to be easier to find. If we could safely enable it by default we would, but it's fundamentally an unsafe operation. But it's popular, so that's why it's on the front page.

    So unsurprisingly, I like your variant A the best, which is really just tweaking the Tools/msi/bundle/Default.thm file a bit. It maintains the short path for those who want it (which we believe is the majority of users), and hopefully makes it clearer for advanced users.

    I dislike variant C because of the second page for simple installs. And for variant D we wouldn't offer per-machine installs for the runtime, and we wouldn't offer PATH options for the launcher, so it basically boils down to making the advanced button harder to find with less explanation.

    So if you'd like to propose a PR with changes to the files in Tools/msi/bundle to match your actual UIs, feel free. It _should_ automatically build the installer if you've modified those files, and you _should_ be able to download it for testing, though if not it isn't hard to build locally with Tools/msi/build.bat.

    (And of course, this would only apply to 3.11, so I've updated the version field.)

    @zooba zooba added 3.11 only security fixes and removed 3.9 only security fixes labels Feb 24, 2022
    @terryjreedy terryjreedy changed the title Installer Wizard is unclear and has redundant settings Windows installer is unclear and has redundant settings Feb 25, 2022
    @terryjreedy terryjreedy changed the title Installer Wizard is unclear and has redundant settings Windows installer is unclear and has redundant settings Feb 25, 2022
    @Codeberg-AsGithubAlternative-buhtz
    Copy link
    Mannequin Author

    Dear Steve,
    thanks for your feedback. I did not understand all details of your design decisions but I am OK with that.

    Variant A is fine for me, too. The important to points of A for me are 1) that the checkboxes on page 1 are moved up directly under the "Install Now" to make clear where they belong to and 2) the (easier to understand) separation between interpreter- (page2) and launcher-settings (page3).

    My apologize but I am not able to create PRs/patches. I am not familiar with your development environment and not able to invest time to learn it because in the feature it does not seems like I will create more patches for something because I do not have the expertise for a python interpreter.

    But I understand that is a question of resources. If there are currently now resources I would recommend to keep this ticket open.

    @zooba
    Copy link
    Member

    zooba commented Sep 30, 2022

    I made some tweaks to the text that should be helpful. I also made the launcher install per-user by default (unless an existing version is for all users, in which case the option gets flipped automatically), which I've been planning to do for a while. I don't think I can backport that change, unfortunately, but I'll take the text updates back to 3.10

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    None yet
    Development

    No branches or pull requests

    1 participant