Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minimum Python requirement should be at least 3.5.3 on PyPi due to dependencies #8162

Closed
belidzs opened this issue Apr 6, 2020 · 6 comments
Labels
good first issue kind:bug This is a clearly a bug

Comments

@belidzs
Copy link
Contributor

belidzs commented Apr 6, 2020

Apache Airflow version: 1.10.9

Kubernetes version (if you are using kubernetes) (use kubectl version):

Environment: python 3.5.2

  • Cloud provider or hardware configuration:
  • OS (e.g. from /etc/os-release): Ubuntu 16.04.6 LTS
  • Kernel (e.g. uname -a): Linux ubuntu-1604-staging.lan 4.4.0-176-generic Add docstrings to DAG class methods #206-Ubuntu SMP Fri Feb 28 05:02:04 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • Install tools: pip 8.1.1
  • Others:

What happened:

I have installed apache-airflow[postgres] using the distribution-provided pip installer into a virtualenv which was successful. However, after running airflow or airflow initdb I get the following exception:

Traceback (most recent call last):
  File "/home/belidzs/venv/bin/airflow", line 25, in <module>
    from airflow.configuration import conf
  File "/home/belidzs/venv/lib/python3.5/site-packages/airflow/__init__.py", line 42, in <module>
    from airflow.models import DAG
  File "/home/belidzs/venv/lib/python3.5/site-packages/airflow/models/__init__.py", line 21, in <module>
    from airflow.models.baseoperator import BaseOperator, BaseOperatorLink  # noqa: F401
  File "/home/belidzs/venv/lib/python3.5/site-packages/airflow/models/baseoperator.py", line 30, in <module>
    from typing import Any, Callable, ClassVar, Dict, FrozenSet, Iterable, List, Optional, Set, Type, Union
ImportError: cannot import name 'ClassVar'

The exception is caused by depending on typing.ClassVar which was only introduced in python 3.5.3

Currently the package definition on pypi doesn't set a requirement of >=3.5.3 which it should.

What you expected to happen:

  • pip should inform me that my environment is not appropriate to install the package and decline installation
  • airflow documentation should include a section of the minimal requirements

How to reproduce it:
Install airflow with pip install apache-airflow on Python 3.5.2 then run airflow

Anything else we need to know:

@belidzs belidzs added the kind:bug This is a clearly a bug label Apr 6, 2020
@boring-cyborg
Copy link

boring-cyborg bot commented Apr 6, 2020

Thanks for opening your first issue here! Be sure to follow the issue template!

@belidzs
Copy link
Contributor Author

belidzs commented Apr 6, 2020

Also it seems that 3.8 can't be used either due to this bug but you probably already know about this.

This fact would also belong to the requirements section of the documentation.

@potiuk
Copy link
Member

potiuk commented Apr 7, 2020

Hey @belidzs -> would you mind creating a PR for that? This is a community managed project - so anyone can fix such problems (in Docs) - there is not even a need to report it. The requirements are documented in https://github.com/apache/airflow/blob/master/README.md#stable-version-1109 - so this needs to be updated there.

@belidzs
Copy link
Contributor Author

belidzs commented Apr 19, 2020

@potiuk thanks for the suggestion, I just did that

I'd also update the minimal requirements in the PyPi package metadata myself but since I have no experience with PyPil I'd rather leave that for someone else.

@potiuk
Copy link
Member

potiuk commented Apr 19, 2020

Thanks! It needs to be done in v1-10-test branch - I will cherry-pick this change and will add the right exclusions :)

@potiuk potiuk closed this as completed Apr 19, 2020
@belidzs
Copy link
Contributor Author

belidzs commented Apr 19, 2020

Great, thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue kind:bug This is a clearly a bug
Projects
None yet
Development

No branches or pull requests

3 participants