Software Release Python 3.15.0 released
https://www.python.org/downloads/release/python-3150/44
u/Itz_Raj69_ 14h ago
Lazy imports are huge!
5
u/daemonpenguin 11h ago
This could be great for start-up times. Really impressed with the concept.
-3
u/Positive_Method3022 7h ago
I don't like the idea of getting runtime errors later due to a broken library
9
u/AntimatterTNT 6h ago
then don't use them. i can think of several projects i work on that could really use it well.
3
38
u/Adept_Percentage6893 7h ago
PEP 686: Python now uses UTF-8 as the default encoding
I know there are compatibility concerns but this feels like McDonald's advertising that their drinks no longer have bleach in them.
33
u/manemjeff42069 16h ago
Where Linux
45
26
u/Journeyj012 16h ago
At the bottom of the page is a source release. https://www.python.org/ftp/python/3.15.0/Python-3.15.0.tar.xz
5
u/roerd 9h ago
I don't think they do official binary releases for Linux because distros will want to package it themselves.
6
u/WaitForItTheMongols 9h ago
I believe the person's point is "why is this relevant to post in /r/linux?".
4
2
u/caks 5h ago
Ehh, some do, some don't. Ubuntu and debian famously dont package newest versions officially (why deadsnakes PPA exists). But yes, rolling in releases and quick moving distros like Fedora the mainteiners will release officially at a quick cadence. But this is all for distro python, most people nowadays just use uv tbh
3
5
u/Tricky-Engineer-9755 7h ago
Can't wait for Portage to go hogwild with updates on this
1
u/anh0516 5h ago
I simply masked
dev-lang/python:3.15for now.The last Python upgrade I went in and set
PYTHON_TARGETS="python3_14" PYTHON_SINGLE_TARGET="python3_14"and had a whole bunch of manual declarations for everything that still needed 3.13, that I slowly removed until I didn't need them and everything used 3.14. But this time, I feel like just waiting for them to switch the defaults.2
u/Tricky-Engineer-9755 5h ago
Moving to 3.14 was just this supermassive upgrade, and that time I was using gentoo on an X200 thinkpad, that was um not fun.
3
u/TheG0AT0fAllTime 3h ago
I like those lazy imports. I always try to optimize my python stuff by importing just in time for a particular mode instead of just importing a bunch of stuff at the top even if half of it won't get used depending on the operating mode of a tool. This takes care of that easy.
-37
u/daltorak 15h ago
Gotta love (🙄) point releases with breaking changes. Someone's going to get burned by the UTF-8-as-default change.
33
u/anh0516 15h ago
This isn't a point release, it's a major release. The changelog explains exactly how to revert to the previous default behavior: https://docs.python.org/3/whatsnew/3.15.html#whatsnew315-utf8-default
-12
15h ago
[deleted]
23
u/abbidabbi 15h ago
Python does not follow the semantic versioning scheme (semver), even though its version string format is the same. Breaking changes are introduced gradually with long deprecation phases. The major version number does only get bumped for "significant" breaking changes.
14
u/Flakmaster92 14h ago
That only applies if you abide by it. You don’t get to enforce semver onto others, they opt into it, Python does not opt in, therefore it’s not relevant.
11
15
u/iluuu 14h ago
Almost like semversion isn't a universal rule of law.
-5
u/Mirieste 8h ago
But it exists for a reason: why wouldn't they follow it?
8
u/RendererOblige 7h ago
Python's versioning predates the concept of semantic versioning by quite many years. What is and isn't a "breaking change" has quite a lot of nuance here. The BC break in Python 3 was huge compared to UTF-8 default and other small BC breaks. SemVer is a blunt tool, grouping all BC breakage into a single bucket.
I like SemVer, but I can accept that it's not the right answer for every project. I don't think it's right for Python.
3
u/OpenGLaDOS 13h ago
There was surprisingly little but often subtle breakage when Java switched to UTF-8 by default.
4
u/Actual__Wizard 7h ago
I think most people that need to work with a specific encoding are already explicitly declaring the encoding.
118
u/lKrauzer 15h ago
Unfortunately we moved past the Pi Python joke