PEP 517 build system popularity (labs.quansight.org)
from milliams@lemmy.world to python@programming.dev on 11 Feb 2025 19:54
https://lemmy.world/post/25447510

#python

threaded - newest

Bogasse@lemmy.ml on 11 Feb 2025 20:30 next collapse

Maturin got top 5! Way to go Rust! 🎉

wewbull@feddit.uk on 12 Feb 2025 13:44 next collapse

There should be one-- and preferably only one --obvious way to do it.

logging_strict@programming.dev on 12 Feb 2025 21:38 next collapse

There are very few one package to rule them all in Python. There are always various similar yet different packages.

Gotta breakdown what you are trying to accomplish. And find packages that do only that. Packages which combine many things into one, might lead to not understanding how it’s doing what it’s doing.

desired build backend features

  • supports build plugins

  • bypasses the pip limitation of not being able to pass build configs options thru to the build backend subprocess

deal breaker (bad) in a build backend:

  • deals with requirements

  • written in a coding another language you are not familiar with (Rust or node or Go)

wewbull@feddit.uk on 16 Feb 2025 14:21 collapse

Sure, but the Zen isn’t saying there must be only one. Just that to get stuff done the first trial shouldn’t be evaluate 20 different ways. There should be an obvious choice, with alternatives for the corner cases.

Packaging is so fundamental to a project that you almost need to choose what you’re doing before a single line of code is written.

logging_strict@programming.dev on 17 Feb 2025 07:52 collapse

Packaging seems to be a separate skill. Separate from coding. Lots of people are good at coding. Then hit the packaging roadblock.

Can step in and white knight, but too many projects are like that.

logging_strict@programming.dev on 12 Feb 2025 21:59 next collapse

Disagree with you.

Isn’t the entire point of Python adding support for roll your own build backend, so we can have many different build backends?

btw i wrote my own

wewbull@feddit.uk on 13 Feb 2025 00:36 collapse

It’s not me you disagree with. It’s PEP 20 - The Zen of Python

logging_strict@programming.dev on 13 Feb 2025 05:06 collapse

There already exists multiple build backends. So adding one more can’t be violating some rule.

Are there gatekeepers who say it’s ok for them but not for anyone else? Do i have to bribe them to be in the in crowd? Am i lower class or an outcast?

This reminds me of proof of stake (1998) with it’s master nodes. Which are nodes run by elites where pleb nodes are lessor.

bitcoin (2009) solved that

logging_strict@programming.dev on 13 Feb 2025 05:22 collapse

What a bunch of nonsense.

How many requirements related libraries are there?!

A standard or package which encourages plugins, but writing a plugin is bad?!

… weird. I don’t understand how you can argue that with a straight face

[deleted] on 12 Feb 2025 21:26 next collapse
.
logging_strict@programming.dev on 16 Feb 2025 10:23 collapse

How to separate requirements handling and build backend

then drain-swamp (+drain-swamp-action) which supports build plugins with built in plugin for specifying semantic version.

Prefer to tell the builder the desired version rather than to be told. Options: ‘tag’, ‘current’, or specify the version. Version bump is silly.

This way can set the semantic version before tagging a release.

Warning

This is hardcore. Not for noobs, the faint of heart, or wise guys. If you don’t need build plugins then maybe drain-swamp is not for you. If you are doing something in setup.py, that you can’t live without, then might have a looksie at drain-swamp.