Uploaded image for project: 'Apache Airflow'
  1. Apache Airflow
  2. AIRFLOW-4903

Unpinned Flask version causes dependency conflicts

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 1.10.3
    • Fix Version/s: None
    • Component/s: dependencies
    • Labels:
      None

      Description

      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.
       
       

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                michael_clir Michael
              • Votes:
                1 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: