Affects Version/s: 1.10.3
Fix Version/s: None
Background: Our build process includes a Dockerfile which installs a specific Airflow version, in our case 1.10.3. When running Airflow jobs, we have a python package with its own requirements.txt.
Yesterday (July 4, 2019), Flask released 1.1.0, which upgraded its own dependencies, which caused dependency conflicts with our python package and its requirements.txt, as we saw this when starting Airflow:
ModuleNotFoundError: No module named 'werkzeug.wrappers.json'; 'werkzeug.wrappers' is not a package
And inspecting the pip install logs shows:
ERROR: flask 1.1.0 has requirement Jinja2>=2.10.1, but you'll have jinja2 2.9.6 which is incompatible.
ERROR: flask 1.1.0 has requirement Werkzeug>=0.15, but you'll have werkzeug 0.14.1 which is incompatible.
Workaround: In our Dockerfile we added a "RUN pip install Flask==1.0.3" command to downgrade to the previous Flask version which fixed the issue.
Suggested fix: Explicitly pin versions of dependencies in setup.py rather than use version ranges.