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.
My requirements for a build backend are:
supports build plugins
bypasses the pip limitation of not being able to pass configs options thru to the build backend subprocess
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.
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.