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

Enum: revert to 3.9 #88725

Closed
ethanfurman opened this issue Jul 4, 2021 · 9 comments
Closed

Enum: revert to 3.9 #88725

ethanfurman opened this issue Jul 4, 2021 · 9 comments
Assignees
Labels
3.10 only security fixes release-blocker stdlib Python modules in the Lib dir

Comments

@ethanfurman
Copy link
Member

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

    @ethanfurman
    Copy link
    Member Author

    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.

    @ethanfurman ethanfurman added 3.10 only security fixes release-blocker labels Jul 4, 2021
    @ethanfurman ethanfurman self-assigned this Jul 4, 2021
    @ethanfurman ethanfurman added the stdlib Python modules in the Lib dir label Jul 4, 2021
    @ethanfurman
    Copy link
    Member Author

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

    @ethanfurman
    Copy link
    Member Author

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

    @pitrou
    Copy link
    Member

    pitrou commented Oct 13, 2021

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

    @pitrou pitrou reopened this Oct 13, 2021
    @ethanfurman
    Copy link
    Member Author

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

    @ethanfurman
    Copy link
    Member Author

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

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    @AdamWill
    Copy link

    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!

    @AdamWill
    Copy link

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

    @AdamWill
    Copy link

    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
    Labels
    3.10 only security fixes release-blocker stdlib Python modules in the Lib dir
    Projects
    None yet
    Development

    No branches or pull requests

    3 participants