Skip to content

Enum: revert to 3.9 #88725

Description

@ethanfurman
BPO 44559
Nosy @Yhg1s, @warsaw, @brettcannon, @pitrou, @ethanfurman, @willingc, @pablogsal
PRs
  • [3.10] bpo-44559: [Enum] revert str repr #27010
  • [3.10] bpo-44559: [Enum] add news entry for enum module reversion #27099
  • bpo-44559: [Enum] Correct versionadded to 3.11 for new features #27388
  • [3.10] bpo-44559: [Enum] restore fixes lost in 3.10 -> 3.9 reversion #29114
  • 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 = 'https://github.com/ethanfurman'
    closed_at = <Date 2021-11-13.19:06:16.033>
    created_at = <Date 2021-07-04.01:48:24.713>
    labels = ['library', '3.10', 'release-blocker']
    title = 'Enum: revert to 3.9'
    updated_at = <Date 2021-11-13.19:06:16.032>
    user = 'https://github.com/ethanfurman'

    bugs.python.org fields:

    activity = <Date 2021-11-13.19:06:16.032>
    actor = 'ethan.furman'
    assignee = 'ethan.furman'
    closed = True
    closed_date = <Date 2021-11-13.19:06:16.033>
    closer = 'ethan.furman'
    components = ['Library (Lib)']
    creation = <Date 2021-07-04.01:48:24.713>
    creator = 'ethan.furman'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 44559
    keywords = ['patch']
    message_count = 6.0
    messages = ['396935', '396937', '398303', '403863', '403876', '404563']
    nosy_count = 8.0
    nosy_names = ['twouters', 'barry', 'brett.cannon', 'pitrou', 'ethan.furman', 'python-dev', 'willingc', 'pablogsal']
    pr_nums = ['27010', '27099', '27388', '29114']
    priority = 'release blocker'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue44559'
    versions = ['Python 3.10']

    Activity

    1. ethanfurman commented on Jul 4, 2021

      @ethanfurman
      MemberAuthor

      From the SC (was Re: Enum -- last call for comments on 3.10 changes)
      --------------------------------------------------------------------

      The Steering Council discussed this topic at our meeting yesterday. We have some
      discomfort about the changes to Enum’s str and repr in Python 3.10, both in the
      specific changes and in the way the changes were decided on. No knock on Ethan or
      others who participated in those decisions, it’s just that to us, the changes
      cumulatively feel like they need a more formal, centralized discussion to understand
      all the issues in detail.

      While we’re stopping short of requiring it, the Steering Council strongly suggests that
      for Python 3.10, the changes in Enum’s str and repr be reverted back to the Python 3.9
      behavior, and that a PEP be written for Python 3.11.

      The changes were primarily spurred both by the changes to re.RegexFlag and by unfortunate choices made in enum.Flag regarding aliases and iteration that were corrected.

      Unfortunately, it proved too difficult to revert the Flag repr() while keeping the corrections, so the entire enum module is being reverted to its 3.9 version.

      All the bug-fixes, performance improvements, and other enhancements will have to wait for 3.11.

    2. self-assigned this
      on Jul 4, 2021
    3. added
      stdlibStandard Library Python modules in the Lib/ directory
      on Jul 4, 2021
    4. ethanfurman commented on Jul 4, 2021

      @ethanfurman
      MemberAuthor

      New changeset 9bf7c2d by Ethan Furman in branch '3.10':
      [3.10] bpo-44559: [Enum] revert enum module to 3.9 (GH-27010)
      9bf7c2d

    5. ethanfurman commented on Jul 27, 2021

      @ethanfurman
      MemberAuthor

      New changeset 2f54fba by Steffen Zeile in branch 'main':
      bpo-44559: [Enum] correct versionadded to 3.11 for new features (GH-27388)
      2f54fba

    6. pitrou commented on Oct 13, 2021

      @pitrou
      Member

      It seems the revert was not done properly: it removed from 3.10 some bugfixes that had been applied to 3.9 (see bpo-42248 for an example).

    7. reopened this on Oct 13, 2021
    8. ethanfurman commented on Oct 13, 2021

      @ethanfurman
      MemberAuthor

      Going back through the various bug fixes that got cut from 3.10 to re-add to 3.10.1.

    9. ethanfurman commented on Oct 21, 2021

      @ethanfurman
      MemberAuthor

      New changeset 2a9ab75 by Ethan Furman in branch '3.10':
      bpo-44559: [Enum] restore fixes lost in 3.9 reversion (GH-29114)
      2a9ab75

    10. transferred this issue fromon Apr 10, 2022
    11. AdamWill commented on Jun 22, 2022

      @AdamWill
      Contributor

      Hi folks! So I'm a bit confused here. As I've followed the story so far, @ethanfurman made some major changes to Enum in the 3.10 timeframe, e.g. #24215 . There was some opposition to this and the decision in this ticket was that the changes should be reverted for 3.10, and "a PEP be written for Python 3.11" - implicitly, a PEP covering the changes.

      It does seem like a PEP was written, and it was rejected. That, to me, implies the changes should not be in 3.11, right? But they are. The reversion was only ever done on the 3.10 branch. It was not done on the 3.11 branch. #24215 and related changes are present in 3.11, but they are not mentioned at all in the changes doc.

      Is this intended, or is the SC's expectation that in rejecting the PEP, the changes that were reverted in 3.10 should also be reverted in 3.11 and future releases?

      Thanks!

    12. AdamWill commented on Jun 22, 2022

      @AdamWill
      Contributor

      Tagging @warsaw , as he wrote the rejection notice. Not sure of the protocol for tagging SC, sorry.

    13. AdamWill commented on Jun 22, 2022

      @AdamWill
      Contributor

      Ah, never mind, I found #91041 . I was looking at the 3.11.0b3 release tag so I was a bit out of date, I see the activity on main now.

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

    Metadata

    Metadata

    Assignees

    Labels

    3.10 (EOL)end of liferelease-blockerstdlibStandard Library Python modules in the Lib/ directory

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions