-
-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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
Python 3.11 #113811
Python 3.11 #113811
Conversation
3.11 is released. |
Do we need to include |
We will not be making breaking changes in a patch release. Breaking changes in a new formula is ok because it's a separate formula, with no forced upgrade path. tkinter shouldn't even be a problem given we've done the same for 2 years now? If there's strong opposition to gdbm I can of course drop that. Though no one has voiced either way yet, probably given it was rc2 I tested and we don't ship non-stable releases. Will push the final version in a few minutes, and will make sure this is merged in some form this week. |
95cc375
to
9e15429
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
Just one question, should we add --disable-dbm
to python@3.11
to avoid opportunistic building/linking?
Might also want one more review from someone else, in case I missed something during my review. |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense to me! All questions are non-blocking except if we can remove the revision
(if we can't: don't and ship regardless).
livecheck do | ||
formula "python@3.11" | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not seen this DSL before but: I really like it. To attempt a nerd-snipe: if anyone else agrees with me it might be cool to allow a similar DSL for install
or post_install
or similar for versioned formulae to share more code. If anyone else agrees: I'll write up an issue. CC @Homebrew/maintainers for thoughts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's documented but rarely used for versioned formulae; it's instead found in those that are derived from / entangled with another formula, e.g. lemon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@EricFromCanada Yeh, I was more thinking a differing DSL something like
def install
formula "python@3.11"
end
or something
No objections after 24 hours of green CI. We're good to go. |
|
Just to touch on this. I do not think we should be taking that long. Half of the point of moving to a versioned formulae approach was to detach the default from dependents. If this is proven stable enough with no issues reported after a few weeks, and we've got basics supporting 3.11 like If we can't, then I consider the process to have failed somewhere given everything we ship should be able to work regardless of what |
This pull request went really smoothly! Thanks for making this happen. Brew rules! |
I'm unclear as to why we didn't change the default now, actually. Not sure why support in |
Less moving parts and avoids having to do a long CI run, so users can get Python 3.11 in < 2 days after release. We could definitely try change the default now though. Open a separate PR so we can do a CI run to check. |
Thank you so much for this, and so quickly! Is there any way to get this new formula to install itself as
but this seems to prevent the case where a user needs a specific version of Python (3.11) but also always wants Homebrew's In the past |
|
Yep, we can do that when we catch up with the PR backlog. |
@ahankinson You can
|
I'm opening this to discuss changes that I've proposed to be made to Python 3.11. These don't have to happen if people disagree. I do not plan to backport these.
There are two areas of concern that I'm hoping to address:
To achieve this, this PR has the following changes:
python-gdbm@3.11
dbm.gnu
is not available until you install that separate formula.dbm.ndbm
no longer uses gdbm_compat. It uses the system ndbm implementation (on macOS) and Berkeley DB 5 on Linux.dbm.ndbm
in an older version of Python may experience compatibility issues. You'll need to read your database using the older version of Python and convert to another format.dbm
defaulted todbm.gnu
, and will still do whenpython-gdbm@3.11
is installed..python_history
may have compatibility issues between libedit and readline.We don't have to do these changes, but if we don't we'll need better auditing of where the readline and dbm modules are used and the licensing compatibility.