Skip to content

Conversation

@tetron
Copy link
Member

@tetron tetron commented Feb 14, 2022

Ubuntu 18.04 (LTS, supported until April 2023) and Centos 7 are still
on Python 3.6.

I recognize that the reason 3.6 was dropped was that Python upstream doesn't support 3.6 with security updates any more, but in practice people use whatever Python is supported by their Linux distribution.

This reverts commit 780f64a.

Ubuntu 18.04 (LTS, supported until April 2023) and Centos 7 are still
on Python 3.6.

This reverts commit 780f64a.
@codecov
Copy link

codecov bot commented Feb 14, 2022

Codecov Report

Merging #1620 (c73613d) into main (ea1e434) will decrease coverage by 0.05%.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1620      +/-   ##
==========================================
- Coverage   66.73%   66.67%   -0.06%     
==========================================
  Files          93       93              
  Lines       16583    16561      -22     
  Branches     4398     4392       -6     
==========================================
- Hits        11066    11042      -24     
- Misses       4379     4381       +2     
  Partials     1138     1138              
Impacted Files Coverage Δ
cwltool/job.py 78.65% <ø> (ø)
cwltool/argparser.py 91.63% <100.00%> (ø)
cwltool/context.py 97.57% <100.00%> (+0.01%) ⬆️
cwltool/provenance.py 80.90% <100.00%> (-0.37%) ⬇️
cwltool/utils.py 79.70% <100.00%> (-0.23%) ⬇️
cwltool/cwltool/provenance.py 14.19% <0.00%> (-1.63%) ⬇️
cwltool/cwltool/job.py 61.78% <0.00%> (-0.80%) ⬇️
cwltool/cwltool/utils.py 74.90% <0.00%> (-0.28%) ⬇️
cwltool/cwltool/argparser.py 75.42% <0.00%> (ø)
cwltool/cwltool/context.py 88.48% <0.00%> (+0.07%) ⬆️
... and 1 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ea1e434...c73613d. Read the comment docs.

@tom-tan
Copy link
Member

tom-tan commented Feb 15, 2022

CentOS 7 is supported until Jun 30th, 2024.
It needs an effort to support Python 3.6 for another two years.

Fortunately we already have venv as a workaround of this issue and it is documented in the README of cwltool.

Are there reasons to directly support OS built-in version of Python rather than encouraging to use venv?

@mr-c
Copy link
Member

mr-c commented Feb 15, 2022

Ubuntu 18.04 (LTS, supported until April 2023) and Centos 7 are still
on Python 3.6.

Ubuntu 18.04 (Bionic Beaver) ships Python 3.7 and 3.8

https://packages.ubuntu.com/search?suite=bionic&keywords=python3.7

https://packages.ubuntu.com/search?suite=bionic&keywords=python3.8

So sudo apt install python3.8 && python3.8 -m pip install --user cwltool should work

Python 3.8 can be added to CentOS from their official repos:

1.Install CentOS SCLo RH repository:

yum install centos-release-scl-rh

  1. Install rh-python38-python rpm package:

    yum install rh-python38-python

From https://centos.pkgs.org/7/centos-sclo-rh-x86_64/rh-python38-python-3.8.6-1.el7.x86_64.rpm.html

I would be more interested in a PR adding these instructions to the docs. Bonus if there is a variation of https://github.com/common-workflow-language/cwltool/blob/main/cwltool.Dockerfile for Ubuntu 18.04 and CentOS 7 demonstrating that this works.

And speaking of the docs, this is a good time to start breaking up the giant README.rst and move the installation instructions to their own page, like was done for https://cwltool.readthedocs.io/en/latest/processgen.html

Copy link
Member

@mr-c mr-c left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer we document how to install on CentOS 7 and Ubuntu 18.04 using the available systems packages.

@tetron
Copy link
Member Author

tetron commented Feb 15, 2022

@mr-c we're looking into building on ubuntu 18.04 and centos 7 packages with a more recent python. I'm going to keep this PR open until we have a solution.

@cure
Copy link
Contributor

cure commented Feb 15, 2022

I would really like to seem more process around the depreciation of Python versions. It is not the first time a breaking PR that does this is merged without warning. Changes like these seem extremely arbitrary, and they cause a pile of sudden, urgent work for no good reason.

Depreciations should not happen suddenly and there should be a sufficient amount of warning.

Obviously, the "upstream stopped supplying security updates" argument carries some weight. However, it is not that simple, and it's not true, because distributions do provide security fixes for older Python versions, especially the ones they ship with by default (e.g. Ubuntu 18.04, where Python 3.6 is the default "python3" package).

@mr-c
Copy link
Member

mr-c commented Feb 15, 2022

@cure Sure, I agree a formal policy would be nice. Would you like to start a draft PR that we could send around to the other users of cwltool to review?

Here is shared policy of Matplotlib, scikit-learn, IPython, Jupyter, yt, SciPy, NumPy, and scikit-image as a starting point:

https://numpy.org/neps/nep-0029-deprecation_policy.html

FYI, Conda (Anaconda and conda-forge) and Debian have both moved on from Python 3.6, and as I'm the maintainer of the cwltool packages for both, it is problematic to carry on additional old version of Python when there are other alternatives.

https://conda.io/en/latest/miniconda.html

@tetron
Copy link
Member Author

tetron commented Feb 15, 2022

Sure, I agree a formal policy would be nice. Would you like to start a draft PR that we could send around to the other users of cwltool to review?

proposed a policy at PR #1621

FYI, Conda (Anaconda and conda-forge) and Debian have both moved on from Python 3.6, and as I'm the maintainer of the cwltool packages for both, it is problematic to carry on additional old version of Python when there are other alternatives.

If it happens in the future that an essential dependency is only available for Python 3.7+ and this is a problem for packaging then we will need to examine our options, but I don't think preemptively dropping support for Python 3.6 is the right way to go about it.

@tetron tetron enabled auto-merge (squash) February 17, 2022 16:25
@tetron tetron merged commit 16f4b11 into main Feb 17, 2022
@tetron tetron deleted the restore-python36 branch February 17, 2022 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants