edgetest
is a tox
-inspired python library that will loop through your project's dependencies, and check if your
project is compatible with the latest version of each dependency. It does this by:
- creating a virtual environment,
- installing your local package into the environment,
- upgrading specified dependency package(s), and
- running your test command.
For example, if you depend on pandas>=0.25.1,<=1.0.0
, edgetest
will test your project against the most current
pandas version (say 1.3.4
), so you know if you can safely update your dependency to pandas>=0.25.1,<=1.3.4
or not.
edgetest
works with the following types of projects:
pyproject.toml
setup.cfg
- and
requirements.txt
Create a conda
environment with Python 3.8+ and install from PyPI:
$ python -m pip install edgetest
or conda-forge:
$ conda install -c conda-forge edgetest
edgetest
allows multi-package, bleeding edge dependency testing. Suppose you have a package, mypackage
, with
the following requirements.txt
:
pandas>=0.25.1,<=1.0.0
...
edgetest
allows you to test your package against the latest version of pandas
. If you run
$ edgetest
the package will
- Create a virtual environment in the
.edgetest
folder, - Install the local
mypackage
:.edgetest/pandas/bin/python -m pip install .
, - Upgrade
pandas
:.edgetest/pandas/bin/python -m pip install pandas --upgrade
, - Run
.edgetest/pandas/bin/python -m pytest
, and - Repeat steps 1-4 for all packages in
requirements.txt
.
After you run the command, you should get console output similar to the following:
============= =============== =================== =================
Environment Passing tests Upgraded packages Package version
------------- --------------- ------------------- -----------------
pandas True pandas 1.3.4
============= =============== =================== =================
See the advanced usage page.
Current plugins include:
Plugin | Description |
---|---|
edgetest-conda | Uses conda or mamba for environment creation instead of venv. |
edgetest-hub | Creates a pull request in your GitHub repository with the dependency updates. |
edgetest-pip-tools | Refreshes a locked requirements file based on the updated dependency pins. |
See our developer documentation.
We welcome and appreciate your contributions! Before we can accept any contributions, we ask that you please be sure to sign the Contributor License Agreement (CLA)
This project adheres to the Open Source Code of Conduct. By participating, you are expected to honor this code.
Apache-2.0
Roadmap details can be found here.