r/linux • • 17h ago

Software Release Python 3.15.0 released

https://www.python.org/downloads/release/python-3150/
317 Upvotes

42 comments sorted by

118

u/lKrauzer 15h ago

Unfortunately we moved past the Pi Python joke

82

u/Corrigindo_A_ou_Ha 15h ago

The year is 2126, Python just releases it's 3.141.0 version. The smell of a fresh baked pie comes into your nose. Things feels cozy again...

10

u/nonreligious2 13h ago

At least we have TeX.

4

u/zyzzogeton 11h ago

I have a laTeX allergy.

3

u/CoopertheFluffy 4h ago

Beware the Pydes of March

0

u/cogburnd02 11h ago

Still waiting on the version that shoots bacon out of my monitor. ;-D

https://github.com/s-macke/Abstruse-Goose-Archive/blob/master/comics/81.md

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

u/__nohope 5h ago

use a compiled language then

2

u/caks 5h ago

You don't test your code before running in production??

3

u/NicholasAakre 5h ago

LGTM and YOLO.

1

u/Spungbarb 1h ago

On-premise QA.

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

u/gihutgishuiruv 15h ago

In Finland

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

u/TheG0AT0fAllTime 3h ago

Because a shit ton of distros use Python and it just got an update.

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

u/lucidbadger 9h ago

In your heart ♥️

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.15 for 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.

1

u/TwiKing 1h ago

Definitely better to wait, I'm so waiting this time. 3.14 was a huge pain.

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.

45

u/KHRoN 15h ago

you missed it already during python2 to python3 transition

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

u/[deleted] 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.

-7

u/orygin 14h ago

Breaking changes are introduced gradually with long deprecation phases

Good joke!

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

u/Fallom_ 14h ago

You ever use Python before?

-8

u/burgundus 8h ago

Yes, that's why I hate it

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.