csdms / babelizer

Transform BMI-wrapped models into Python packages
https://babelizer.readthedocs.io
MIT License
4 stars 3 forks source link

[JOSS Review] Issue with installing dev packages and running tests #63

Closed cheginit closed 2 years ago

cheginit commented 2 years ago

Since only requirements*.txt files are required, a developer assumes that these should be installed with pip. I tried to install requirement-testing.txt with pip and many of the packages are not available in PyPi. Perhaps, you want to provide an environment.yml file so those who want to contribute can install the required packages with using Conda.

These packages cannot be installed with pip:

bmi-tester
bmi-c
bmi-cxx
bmi-fortran
c-compiler
cxx-compiler
fortran-compiler
pkg-config

Also, regarding the testing. After installing requirement-testing.txt and requirement.txt with conda these tests fail:

external/tests/test_c.py::test_babelize_init_c FAILED                                       [ 71%]
external/tests/test_cxx.py::test_babelize_init_cxx FAILED                                [ 78%]
external/tests/test_fortran.py::test_babelize_init_fortran FAILED                    [ 85%]
external/tests/test_python.py::test_babelize_init_python FAILED                    [ 92%]

Also, it would be a good idea to add a coverage badge to the repo so we can see the testing coverage percentage.

cheginit commented 2 years ago

This issue is related to openjournals/joss-reviews#3344.

mcflugen commented 2 years ago

Closed with #68 and #66.

I've removed the non-PyPI requirements from the requirements-testing.txt file so that now pip install -e ".[tests]" works. These are the only requirements needed for running the core babelizer tests. The requirements for running the language tests are now listed in a requirements.txt file under the external folder. These requirements include things that are not pip-installable (e.g. compilers), but can be obtained through conda (or through other means, e.g. apt-get).

There is now a coverage badge in the readme file.