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 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.
Table Of Contents
Install
Create a conda
environment with Python 3.7+ and install from PyPI:
$ python -m pip install edgetest
or conda-forge:
$ conda install -c conda-forge edgetest
Getting Started
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
============= =============== =================== =================
Options
See the advanced usage page.
Plugins
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. |
Contributing
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.
License
Apache-2.0
Roadmap
Roadmap details can be found here.