python-babel / babel

The official repository for Babel, the Python Internationalization Library
http://babel.pocoo.org/
BSD 3-Clause "New" or "Revised" License
1.33k stars 445 forks source link

setup instructions in CONTRIBUTING.md do not install all dependencies #1150

Open EmilyBStudent opened 1 day ago

EmilyBStudent commented 1 day ago

Overview Description

I followed the instructions in CONTRIBUTING.md to clone the Babel repository and set up a development environment, but when I ran "make test" as the final step, several thousand of the tests failed. It appeared that zoneinfo/pytz and tzdata were not installed in the virtual environment. After installing them manually I was able to run the tests successfully.

Reproducibility

Always.

Additional Information

This is using Python 3.11 on Windows 11. Modules installed by “pip install -e .[dev]” were:

tomasr8 commented 1 day ago

Interesting, quoting from https://docs.python.org/3/library/zoneinfo.html#data-sources

[...] Some systems, including notably Windows systems, do not have an IANA database available, and so for projects targeting cross-platform compatibility that require time zone data, it is recommended to declare a dependency on tzdata.

We actually already require tzdata in tests but not as a project dependency:

https://github.com/python-babel/babel/blob/740ee3d6a4c57ea3543334d6465085dd1d5df010/tox.ini#L16

I suppose we could add tzdata as a dependency for Windows? @akx thoughts?

akx commented 1 day ago

Sure! It'd be better to have the test (dev) deps in one place only, IOW replace the deps in tox.ini with extras = dev and make sure the extras_require list in setup.py is in sync with that.