why python 3.8 has not been updated yet? 3.8 in python.org, but 3.7.4 on homebrew
Because you didn’t do it. Homebrew is ran by the community.
Related question: is there an update policy? Both python 3.7.5 and 3.8.0 have been released.
If I understand correctly, if 3.7.5 isn’t made, you never would be able to pin to that version, right?
Generally pinning things is just begging for problems anyway. But you’re right. Homebrew only ever ships the latest version of software unless there’s a big demand for other versions and they’re still supported. For your case pyenv is probably a better solution.
Yeah, pinning has issues. But can be handy when you want to keep the same version as another OS (I used it to keep me on the same version as Debian. But it was more trouble than it was helpful I remembered).
so how ‘the community’ decides on what is the version of python available in brew?
Who is this community, and can I be part of it? aka upload 3.8 now!
Docs.brew.sh will help you get started. Let me know if you have any issues
Efforts started a month ago and you can follow the process here: https://github.com/Homebrew/homebrew-core/pull/45337. There’s still a few breakages caused by Python 3.8 that need fixing before it can be shipped.
Would be nice if you could go ahead with the update and let those projects break. They’ve had over a month, and with Python 3.8 release candidates being available for a long time before release, you could argue they had much longer if they cared.
If you want a progress report: the fix for the last of the known problems should be merged in today at which point we will start building Python 3.8 and every formula which depends on Python (yes, they all need to be rebuilt because Python 3.8 changes install paths etc.). Due to the sheer number of formulae affected, this’ll take multiple days but if no other issues arise then it’ll be good to ship once complete.
Awesome! Thanks for the hard work, I can’t wait to try out the walrus
Looks like there’s still some formulas not working?
You can always run the version you wnat in the venv.
They’re still working on making 3.8 the default, but for the time being I successfully installed it with
brew install firstname.lastname@example.org
and added it to my
echo 'export PATH="/email@example.com/bin:$PATH"' >> ~/.bash_profile
Unfortunately I still have to invoke pip as
python3 -m pip)
Anyone knows if the default python version now is 3.8 or still 3.7?
$ brew info python python: stable 3.7.6 (bottled), HEAD ...
/usr/local/Cellarfirstname.lastname@example.org/3.8.2/libexec/bin instead to correctly map
pip and other python tools to 3.8
This answer violates the community guidelines and should be removed. The guidelines dictate that I flag the answer, but I do not see a way to do that other than to leave a comment that flags it.
Quoted below are the abbreviated guidelines shown when making one’s first posts in the discussion group:
- Be kind to your fellow community members.
The answer openly blames an individual for a major shortcoming of the project.
- Constructive criticism is welcome, but criticize ideas, not people.
The answer openly criticizes a person for their assumed failure to contribute to the project.
This quote is from the community guidelines under the header “Always Be Civil”:
These are not concrete terms with precise definitions — avoid even the appearance of any of these things. If you’re unsure, ask yourself how you would feel if your post was featured on the front page of the New York Times.
A reasonable person would construe this reply to be an attack on the original poster.
Why volunteer your time contributing to something when your first interaction with the humans behind the thing is a community leader clapping back at you for asking an important question? That is exactly antithetical to inspiring progress on the task at hand, which is migration to Python 3.8.
If the answer truly is that the migration hasn’t happened because of the work ethic of an individual or of Homebrew developers at large, that indicates a shortcoming in the design (and maybe leadership) of the project. Systems like project development processes — and the people in charge of those systems — should aim to mitigate the effects of human nature that have a drag on progress rather than loathe them.
Further, this answer — from a team leader, no less — also has a chilling effect on discussion of the barriers that the Homebrew development community collectively faces amid that ongoing migration. Why dig deeper if the first question you ask about a thing just results in egg on your face?
To address the heart of the issue: If Python 3 migration is hard because it requires collective action on the part of many parties rather than a few, that is an extrinsic property of the project’s design. Perhaps it could be addressed, but only to the detriment of some useful features of the project’s design (perhaps like its decentralized contribution model — I don’t know for sure).
This question is highly viewed on this discussion board. It would be in the best interest of the project’s volunteers and leaders to shift the discussion away from casting blame and toward what the actual solutions may be.
The problem appears to be that there are a bunch of formulae that specify the
python package as a dependency but do not specify a version. They are instead dependent on whatever Python version is pinned as default in the
As of writing, the default
homebrew-core version of Python is 3.7.7. I guess there are breaking changes between 3.7 and 3.8, and simply transitioning to 3.8 as the default
python version would mean that formulae with generic
python dependence could and therefore must be fixed individually, which is going to take a while given the sheer number of formulae in homebrew-core. That number is also constantly growing as people add new formulae.
Again, I might be wrong about these observations because I have not taken the time to try to contribute to the project. However, if I’m right, I think the solution might be to give formula developers guidance (or even a requirement) to specify specific versions in their dependency lists rather than the generic packages to prevent mass breakages when
homebrew-core migrates individual packages (like
python) to newer versions.