I would like to keep multiple requirements*.txt
files up to date while working on a project. Some packages my project depends on are required at runtime, while others are required during development only. Since these packages may have their own dependencies as well, it is hard to tell which dependency should be in which requirements*.txt
file.
If I would like to keep track of the runtime dependencies in requirements_prod.txt
and of the development dependencies in requirements_dev.txt
, how should I keep both files up to date and clean if I add packages during development? Running a mere pip freeze > requirements_prod.txt
would list all installed dependencies, including those only needed for development. This would pollute either of the requirements_*.txt
files.
Ideally, I would like to mark a package on installation as 'development' or 'runtime' and have it (and its own dependencies) written to the correct requirements_*.txt
.
Edit:
@Brian: My question is slightly different from this question because I would like to have my requirements_*.txt
files to stay side by side in the same branch, not in different branches. So my requirements_*.txt
should always be in the same commits.