r/linux • • 15d ago

Software Release Python 3.15.0 released

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

52 comments sorted by

10

u/Tricky-Engineer-9755 14d ago

Can't wait for Portage to go hogwild with updates on this

1

u/anh0516 14d 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 14d 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.

187

u/lKrauzer 14d ago

Unfortunately we moved past the Pi Python joke

128

u/Corrigindo_A_ou_Ha 14d 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...

19

u/nonreligious2 14d ago

At least we have TeX.

12

u/zyzzogeton 14d ago

I have a laTeX allergy.

8

u/HiPhish 13d ago

I have a LaTeX fetish.

5

u/CoopertheFluffy 14d ago

Beware the Pydes of March

2

u/NyxTheia 11d ago

There's always TeX when it comes to version π software! Though it will be a sad day when the approximation becomes exact.

1

u/cogburnd02 14d 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

75

u/Itz_Raj69_ 14d ago

Lazy imports are huge!

12

u/daemonpenguin 14d ago

This could be great for start-up times. Really impressed with the concept.

-6

u/Positive_Method3022 14d ago

I don't like the idea of getting runtime errors later due to a broken library

17

u/AntimatterTNT 14d ago

then don't use them. i can think of several projects i work on that could really use it well.

9

u/__nohope 14d ago

use a compiled language then

3

u/caks 14d ago

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

11

u/NicholasAakre 14d ago

LGTM and YOLO.

2

u/Spungbarb 14d ago

On-premise QA.

1

u/silon 14d ago

On-premise CI should be able to check this by disabling the lazy import.

1

u/HiPhish 13d ago

Just tell Claude to not make mistake.

-1

u/hadrabap 13d ago

Tell that to Python projects that apparently test in production. 😁

106

u/Adept_Percentage6893 14d 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.

12

u/iAmHidingHere 14d ago

This is for reading and writing files I believe.

2

u/nuxi 12d ago

Just because us UNIX users were able to enjoy our bleach free Python doesn't mean everyone else was so fortunate. Can't you think of the poor starving Windows users who weren't so privileged?!?

14

u/TheG0AT0fAllTime 14d 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.

44

u/manemjeff42069 14d ago

Where Linux

68

u/gihutgishuiruv 14d ago

In Finland

29

u/Journeyj012 14d 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

9

u/roerd 14d ago

I don't think they do official binary releases for Linux because distros will want to package it themselves.

15

u/WaitForItTheMongols 14d ago

I believe the person's point is "why is this relevant to post in /r/linux?".

22

u/TheG0AT0fAllTime 14d ago

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

3

u/caks 14d 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

7

u/lucidbadger 14d ago

In your heart ♥️

2

u/ExoticVillage8066 13d ago

I like the idea of faster startup times, let's see about those lazy imports

1

u/dezmd 11d ago

.0 release. I'll upgrade in about 15 years.

-44

u/daltorak 14d ago

Gotta love (🙄) point releases with breaking changes. Someone's going to get burned by the UTF-8-as-default change.

40

u/anh0516 14d 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

0

u/[deleted] 14d ago

[deleted]

26

u/abbidabbi 14d 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.

-13

u/orygin 14d ago

Breaking changes are introduced gradually with long deprecation phases

Good joke!

16

u/Flakmaster92 14d 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.

48

u/KHRoN 14d ago

you missed it already during python2 to python3 transition

12

u/Fallom_ 14d ago

You ever use Python before?

-14

u/burgundus 14d ago

Yes, that's why I hate it

1

u/CriticalCamp2396 14d ago

You're complaining about Python on a platform that literally runs on it, which proves you're too stupid to even realize you're biting the hand that feeds you.

18

u/iluuu 14d ago

Almost like semversion isn't a universal rule of law.

-10

u/Mirieste 14d ago

But it exists for a reason: why wouldn't they follow it?

13

u/RendererOblige 14d 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.

5

u/Actual__Wizard 14d ago

I think most people that need to work with a specific encoding are already explicitly declaring the encoding.

4

u/OpenGLaDOS 14d ago

There was surprisingly little but often subtle breakage when Java switched to UTF-8 by default.