What are the benefits of this whole mess of new build infrastructure?
Who claims these are the new best practices, or are these just the author’s preferences?
Why are these tools curl | bash-ed onto my machine instead of packaged with my distribution like a piece of dev tooling I can actually trust to base my entire project on?
Agree. I now have a sudden urge to write a guide how to start from very simple (i.e. system interpreter, no packaging, minimal verification) and how to progress further on. And how to decide what tools do you even need to consider and at which stage.
In hindsight as a somewhat experienced Python programmer I can see how each of these tools can be helpful – but if I was a beginner I would be completely overwhelmed.
Please do. I am by no means a beginner at Python itself, but most of these “guides” confuse me. I’ve gotten pretty far with a few venvs and some other minor tools. Why would I need all of these other things?
It feels very much like people write these kinds of guides where they try to score points by cargo culting a lot without themselves understanding why they are doing things the way they are.
I think “why” kinda answers itself. People who are familiar with setuptools don’t need an answer as they would gladly try something else. As for beginners they don’t need an answer either as you should really learn the newest and most popular standard.
I find it funny that in the intro to the article promises a minimal and modern setup, and immediately after the table of contents lists three external dependencies (pyenv, poetry and click).
I believe experienced developers can probably recognize when they don’t need an extra dependency, but new developers might actually think they need all of this stuff (they don’t, venv, requirements.txt and argparse are good enough 99% of the time).
I don’t think this is entirely fair, click is only a dependency of the example project not of the workflow and probably is mainly used instead of argparse to show how to use external dependencies with this workflow.
Also pyenv is just used to lock the python version used in the project, if you omit it the rest of the post would still work just fine.
I don’t criticize the author’s choice of external dependencies. I was just commenting on his choice of words, specifically calling such setup “minimal”…
This is missing the “why”.
curl | bash
-ed onto my machine instead of packaged with my distribution like a piece of dev tooling I can actually trust to base my entire project on?Agree. I now have a sudden urge to write a guide how to start from very simple (i.e. system interpreter, no packaging, minimal verification) and how to progress further on. And how to decide what tools do you even need to consider and at which stage.
In hindsight as a somewhat experienced Python programmer I can see how each of these tools can be helpful – but if I was a beginner I would be completely overwhelmed.
Please do. I am by no means a beginner at Python itself, but most of these “guides” confuse me. I’ve gotten pretty far with a few venvs and some other minor tools. Why would I need all of these other things?
It feels very much like people write these kinds of guides where they try to score points by cargo culting a lot without themselves understanding why they are doing things the way they are.
I think “why” kinda answers itself. People who are familiar with
setuptools
don’t need an answer as they would gladly try something else. As for beginners they don’t need an answer either as you should really learn the newest and most popular standard.So who’s really asking “why”?
Everyone, beginners especially, has a right to ask for a rationale for the recommendations they receive.
Or, better, don’t use the production PyPI. Use the test instance which exists to let people play with and learn the packaging flow.
I find it funny that in the intro to the article promises a minimal and modern setup, and immediately after the table of contents lists three external dependencies (pyenv, poetry and click).
I believe experienced developers can probably recognize when they don’t need an extra dependency, but new developers might actually think they need all of this stuff (they don’t, venv, requirements.txt and argparse are good enough 99% of the time).
I don’t think this is entirely fair, click is only a dependency of the example project not of the workflow and probably is mainly used instead of argparse to show how to use external dependencies with this workflow.
Also pyenv is just used to lock the python version used in the project, if you omit it the rest of the post would still work just fine.
I don’t criticize the author’s choice of external dependencies. I was just commenting on his choice of words, specifically calling such setup “minimal”…
What book are those comic panels from?
Edit - was in the footer: https://www.loc.gov/pictures/item/2007676247/