Run piptegrator --help
for usage details
Configuration file which contains requirements files (must be in the repo root if present at all):
.piptegrator_config
Note: command line options always override corresponding config file options (they do not append to or aggregate with each other).
The main tool is piptegrator
piptegrator --help
Given the configuration file .piptegrator_config
(a sample present in this repo), run:
piptegrator --compile --noenvmods
For use without a config file, specify the requirements input files as a comma delimited string, e.g.:
piptegrator --compile --noenvmods --requirements test/requirements.in,test/requirements.tests.in
The most common error flagged is when two requirements files have different versions of a given package. You can see an example of this by running
piptegrator --compile --noenvmods --requirements test-errors/requirements.in,test-errors/requirements.tests.in
This kind of mismatch can be trivial (micro version differences) but the purpose of Piptegrator is to flag these: if you are testing with one version of a library, and deploying with another, unwelcome surprises are possible.
We observe the version mismatches, and can mitigate them by upgrading/downgrading the respective pinned versions accordingly, or duplicating a troublesome requirement from one requirements file to another.
(The test
folder has these fixes, and serves as a contrast with the contents of the test-errors
folder.)
Clone this repo
On a branch, make the required edits
Ensure you update the version number in piptegrator/__config__.py
(pre-release? use rc
notation, e.g., 1.2.3rc45
)
pip install -U build twine && \
rm -rf dist build *.egg-info ; \
python -m build --wheel && \
ls -al dist && \
unzip -l dist/*.whl && \
pip uninstall -y piptegrator && \
pip install dist/*.whl
ln -s .piptegrator_config.sample .piptegrator_config # Or make a copy
piptegrator --compile
twine upload --repository piptegrator dist/*