Description
Observations
In the python environment example, Flask has no pinned version. Additionally, other python tooling, like uv
is completely ignored. If this is supposed to replace other abstract tooling like pip, requirements.txt, uv, poetry, pipfile, it should be more concrete.
Problem
As someone new to Nix (I use it only for work, and don't like modifying anything), but knows Python and Flask, the current Python-Flask example does not factor into consideration real Python Flask backend projects. Existing projects will use at least a requirements.txt, but projects created recently will probably be using poetry or uv. I've personally had to do a Flask v2 to v3 migration, so it is odd that Flask isn't even pinned to a version like 3. How would someone pin to 3.X?
Also, I notice that we are running the Python application in the shell. This is good for a simple hello world app, but when a project is complicated, a Debugger is good. I usually run a debugger using VSCode. It's unclear whether the VSCode Python debugger would work even if it ran inside the nix shell.
Approaches
The example should be applicable to new Python projects as well as existing Python projects that Python developments can migrate. My website's source code has plenty of room for improvement. It uses a requirements.txt file and is deployed on Heroku. It should be deployed using Docker but the dev environment itself could be better. I'll create another issue too regarding "deployment example"
Willing to help?
Only with answering questions / reviewing