Here’s where I get stuck on this idea: if you have “dev” dependencies and gain a benefit from a standard format for specifying them, doesn’t that kinda imply that you’re a maintainer of someone else’s “Project X”?
Like, I can understand the benefit of setting up isolated test and build environments, but that’s about it. Presumably, each dev is only expected to set up pre-commit hooks, linters etc. once. Similarly it’s hard for me to imagine that there are single-author projects out there that gain a benefit from, in essence, reinstalling Sphinx every time it’s run.
So it seems like “people who want to do things differently” (or, for that matter, people who have little concept of a “dev environment” or don’t care about it much) are only in the target audience for this feature if they’re - well, in the target audience for PEP 722/723.
And their needs might be different. Even if they’re nominally distributing an “application” that by conventional wisdom ought to pin all the dependencies, maybe they don’t know, or don’t care, about the version numbers for those dependencies. Maybe they make relatively light use of whatever SciPy stack components and expect the part they’re using to be stable. Maybe they don’t want to specify their current version because they’re part of a team where they don’t know what versions anyone else has, and don’t want to force upgrades/downgrades on their colleagues, and especially don’t want to get stuck being unable to use multiple colleagues’ work in the same “project” because they needlessly specified incompatible versions.
Aside from that, I feel like the general attitude of “our project comes with a script that will set up a dev environment according to our expectations” is counter to the spirit of open source. I’m a responsible adult. I don’t want to have to learn someone else’s toolchain - even if all the components are popular - every time I submit something to a different project, and I don’t want to have to build the entire project if I’m trying to improve one small aspect that fits within a separately testable module. I’m not expecting the project maintainers to understand or “support” my tools, because they’re my tools and I’m accustomed to using them. I just want to submit a PR that follows the project’s human-readable style guide and passes automated checks. There’s already a high enough barrier having to read yet another Code of Conduct (even though I think I’m a generally nice person and anyway don’t expect to be involved in any social interaction beyond discussing my own PR), sign a contributor covenant, fork the repo so that I can speak GitHub’s “pull request” language, also clone the fork so I can actually work on it locally…