Bleeding edge dependency testing
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
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.
conda environment with Python 3.7+ and install from PyPI:
$ python -m pip install edgetest
$ conda install -c conda-forge edgetest
edgetest allows multi-package, bleeding edge dependency testing. Suppose you have a package,
mypackage, with the following
edgetest allows you to test your package against the latest version of
pandas. If you run
the package will
- Create a virtual environment in the
- Install the local
.edgetest/pandas/bin/python -m pip install .,
.edgetest/pandas/bin/python -m pip install pandas --upgrade,
.edgetest/pandas/bin/python -m pytest, and
- Repeat steps 1-4 for all packages in
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:
|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.
Roadmap details can be found here.