Open Jasha10 opened 3 years ago
EOL is Dec 23rd, 2021
The main thing to consider here is usage on popular systems. python 3.6 is in use by RHEL 8 (centos 8) at least, so I don't think we should deprecate immediately. We should consider this though if it becomes awkward to support 3.6
Sounds good. For the record, there is currently at least one edge-case where python3.6 compatibility is imperfect: pickling optional types fails on python3.6, so some OmegaConf objects cannot be pickled in python3.6 if their metadata contains an optional type:
$ python3.6
...
>>> import pickle
>>> from typing import Optional
>>> pickle.dumps(Optional[int])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
_pickle.PicklingError: Can't pickle typing.Union[int, NoneType]: it's not the same object as typing.Union
This comes up in particular with OmegaConf containers that have an optional element_type, e.g. containers typed as Dict[str, Optional[int]]
. The current approach is for OmegaConf to preempt such a python3.6 pickling error and raise an OmegaConfBaseException
instead.
I think we should feel comfortable dropping 3.6. People that need to continue using it can stick to older version of OmegaConf/Hydra.
python-attrs (which is a core dependency of omegaconf) has deprecated support for python3.6. This which is causing Hydra CI failure
DeprecationWarning: Running attrs on Python 3.6 is deprecated & we intend to drop support soon. If that's a problem for you, please let us know why & we MAY re-evaluate: <https://github.com/python-attrs/attrs/pull/993>
As a first step, I'll remove the python3.6 classifier from the Hydra setup.py file and will disable the py3.6 CI job.
Python 3.6 eol is coming in a couple of months: https://endoflife.date/python
Originally posted by @omry in https://github.com/omry/omegaconf/issues/749#issuecomment-928161041