Lets say I have a widely distributed/used python package called foo that's designed to work with the following dependencies:
- pandas>=1.3.0
- pyarrow>=8.0
- python>=3.8
How do I make sure that my foo package is actually compatible with all those dependencies so that people have a seamless experience with using my package?
One idea that I had is to run my test suite against a whole bunch of environments with different versions of the dependent packages. For example, run the test suite 13 times under environments with the following dependency versions:
- pandas=1.3.0, pyarrow=11.0, python=3.11.2
- pandas=1.4.0, pyarrow=11.0, python=3.11.2
- pandas=1.5.0, pyarrow=11.0, python=3.11.2
- pandas=2.0.0, pyarrow=11.0, python=3.11.2
- pyarrow=8.0, pandas=2.0.0, python=3.11.2
- pyarrow=9.0, pandas=2.0.0, python=3.11.2
- pyarrow=10.0, pandas=2.0.0, python=3.11.2
- pyarrow=11.0, pandas=2.0.0, python=3.11.2
- python=3.8, pandas=2.0.0, pyarrow=11.0
- python=3.9, pandas=2.0.0, pyarrow=11.0
- python=3.10, pandas=2.0.0, pyarrow=11.0
- python=3.11, pandas=2.0.0, pyarrow=11.0
- python=3.11.2, pandas=2.0.0, pyarrow=11.0
Is there a more robust way to do it? For example, what if my foo package doesn't work with pandas version 1.5.3. I don't think testing every major and minor release for all the dependent packages is feasible.