Skip to content

MartinFalatic/piptegrator

Repository files navigation

Piptegrator

Tools for managing requirements-driven projects

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).

Running the tools

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

Error resolution

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.)

Updating this package

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)

Building and install the distributable wheel

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

Quick test (recompiles test/requirements.in with sample options)

ln -s .piptegrator_config.sample .piptegrator_config  # Or make a copy
piptegrator --compile

Uploading changes (author only)

twine upload --repository piptegrator dist/*

About

Makes managing pip dependencies easier

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages