Skip to content

No description of what architectures are supported by MacOS "universal2" installers #2232

Closed
python/release-tools
#309

Description

@remram44

Describe the bug
There is no description of what "universal2" means. Some people might not be familiar with that term, especially now that MacOS has supported 3 different architectures in recent memory.

The fact that the term "universal" had to be versioned should be an indication of the ambiguity.

To Reproduce
Steps to reproduce the behavior:

  1. Go to python.org, hover "download", click "MacOS" (https://www.python.org/downloads/macos/)
  2. Some releases have "universal2 installer" links, some have "Intel-only installer" links, some have "no files". No description of "universal2" on that page
  3. Click on a release, for example 3.11.1 (https://www.python.org/downloads/release/python-3111/)
  4. That page has a lot of information, including a definition of quark-gluon plasma, MD5 sums, file sizes accurate to the byte, GPG signatures, Sigstore files (with a link that defines Sigtore!), a note next to the "recommended" Windows installer, a note about which MacOS versions are supported ("for macOS 10.9 and later"), but again no mention of architectures apart from the term "universal2"

Expected behavior
Uncommon terms such as "universal2" which are directly relevant to Mac users would be defined somewhere on either the MacOS-specific download page or the download section of a release's page

Screenshots

Activity

  1. maltfield commented on Apr 8, 2024

    @maltfield

    I agree that the downloads page should be updated.

    FWIW, this is documented here https://docs.python.org/3/using/mac.html#getting-and-installing-python

    macOS used to come with Python 2.7 pre-installed between versions 10.8 and 12.3. You are invited to install the most recent version of Python 3 from the Python website. A current “universal2 binary” build of Python, which runs natively on the Mac’s new Apple Silicon and legacy Intel processors, is available there.

  2. self-assigned this
    on Sep 16, 2024
  3. added
    frontendRelates to the frontend of the app
    backendRelates to the backend of the app
    easyThis issue should be trivial to accomplish
    and removed
    frontendRelates to the frontend of the app
    easyThis issue should be trivial to accomplish
    on Sep 16, 2024
  4. JacobCoffee commented on Sep 16, 2024

    @JacobCoffee
    Member

    @hugovk thoughts?

  5. hugovk commented on Sep 16, 2024

    @hugovk
    Member

    For the past 2+ years, and all 3.10+ releases, there has only only been a single macOS installer available.

    So I think this issue is now less pressing than it used to be: you just get on with it and install with that one macOS installer.

  6. ned-deily commented on Sep 16, 2024

    @ned-deily
    Member

    Yes, the place to document this is in the https://docs.python.org/3/using/mac.html which I plan to update soon. (It is also described in the macOS installer's ReadMe file that is displayed when using the macOS Installer.app.) That would be following the example of the Windows download page which does go into some detail on its Using Windows page.

  7. remram44 commented on Sep 16, 2024

    @remram44
    Author

    Oh hi guys. Nice to see progress on this issue. As a non-primarily-MacOS developer, the "universal2" term is very puzzling to me.

    the place to document this is in the https://docs.python.org/3/using/mac.html

    Why is that "the place"? Is there really no room on download pages (e.g. https://www.python.org/downloads/release/python-3126/) for a little sentence or link explaining what it is?

    Or just remove the term I suppose. It's not like the "Windows installer" mentions "intel self-extracting dynamically-linked PE executable".

    Why have the term if it doesn't guide the user (there's only one link) and only has the potential to confuse them (there's no explanation)?

  8. ned-deily commented on Sep 16, 2024

    @ned-deily
    Member

    Universal 2 is an Apple generic term used in the macOS world, we didn't invent it. And it's not going to change from release to release.

    We could remove universal2 from the description on the download page but it does document a particular variant, i.e. natively supporting all current Apple Silicon and Intel Macs. However, it does now strike me that the Version field does not show the more important information about what macOS versions are supported. That info does show up in the Description field on a release page (i.e. for macOS 10.13 and later) but the Description field info is not included in the listings on the Downloads / MacOS page. Off the top of my head, there are two ways we could handle that. The first would be to modify the Downloads page to also display the Description field for each download file. That would require a redesign of that page and make it noisier than it is. The other, simpler approach would be to just change the Version field to include the version info, from macOS 64-bit universal2 installer to perhaps macOS 10.13+ universal2 installer. That is something the release managers can do without needing any changes to the website codebase itself. Thoughts?

  9. remram44 commented on Sep 16, 2024

    @remram44
    Author

    I mean how hard could it be to add a little link to whatever Apple documentation page is relevant? I note that you added links to both the "Sigstore" and "SBOM" terms, which are no more obscure.

    screenshot

  10. remram44 commented on Sep 16, 2024

    @remram44
    Author

    Ditto for the other page, I am not sure I understand the complexity or the need for "a redesign of that page".

    screenshot

  11. maltfield commented on Sep 16, 2024

    @maltfield

    I agree that the downloads page should have a link somewhere on its page to /using/mac.html#getting-and-installing-python

    ...and if space is an issue, the link can be 1 character long (just an info character):

    ⓘ

  12. JacobCoffee commented on Sep 16, 2024

    @JacobCoffee
    Member

    @ned-deily great news - would you like me to open an issue in CPython docs for this?

  13. JacobCoffee commented on Sep 16, 2024

    @JacobCoffee
    Member

    Ideally we could do a tooltip for these - probably in the header row... but I think the way we generate the pages is manual and so that would mean updating all of them going forward.

    That would be a good way to close this one out and also add some more detail on SBOM/sigstore which is IMO confusing for non-security people

  14. ned-deily commented on Sep 16, 2024

    @ned-deily
    Member

    I mean how hard could it be to add a little link to whatever Apple documentation page is relevant?

    To add the link to each description field as in your illustration is doable, of course, but would require some significant changes to the website code as the contents of those fields are built from an internal release database and the website just copies the text of that field without a provision for embedding links (AFAIK). If the universal2 description is confusing, I think I'd prefer removing it altogether. But we've been using that term since shortly after macOS 11 was released in the fall of 2020 and this hasn't seemed to have been an issue for most users.

    Ditto for the other page, I am not sure I understand the complexity or the need for "a redesign of that page".

    Sorry, I was referring there to my thought of adding the Description field to each release file on that page to address the problem of which macOS releases were supported by each. That is an issue as our most recent releases (for 3.12.6 and the upcoming 3.13.0) now support macOS 10.13+; earlier universal2 releases supported macOS 10.9+.

    Since the Python Release Team members will be meeting together next week, I suggest we postpone making a final decision on any changes here until after then. In the meantime, further comments are welcome!

  15. ned-deily commented on Sep 16, 2024

    @ned-deily
    Member

    would you like me to open an issue in CPython docs for this?

    If we move this anywhere, I would suggest the release-tools repo as that is where things that release managers do wrt the release database in the website are located. But let's hold off until after we've had a chance to discuss this next week.

  16. remram44 commented on Sep 16, 2024

    @remram44
    Author

    Looks to be generated by this code using this template. Adding a condition to show the universal2 description if any release is universal2 doesn't seem too difficult. But if you have a complex process that need to be followed through multiple repos before you can make any change... I can't help with that. Good luck with the paperwork though!

  17. hugovk commented on Sep 17, 2024

    @hugovk
    Member

    Ideally we could do a tooltip for these - probably in the header row... but I think the way we generate the pages is manual and so that would mean updating all of them going forward.

    Tooltips generally aren't accessible to those not using a mouse: touchscreens (like mobile), screen readers and other assistive technology.

  18. hugovk commented on Nov 27, 2025

    @hugovk
    Member

    I suggest for future releases we remove "universal2" and just call it the "macOS 64-bit installer" (or even "macOS installer").

    We only provide this single installer. The last time we provided an Intel-only alongside this one was in 2022.

    Please see PR python/release-tools#309.

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

Metadata

Metadata

Assignees

Labels

app/downloadsRelates to the downloads appbackendRelates to the backend of the appneeds-feedbackNeeds feedback from maintainers/triagersrelease-managersRelates to Release Managers

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions