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

Decide on Python version #1125

Closed
lukpueh opened this issue Sep 10, 2020 · 11 comments
Closed

Decide on Python version #1125

lukpueh opened this issue Sep 10, 2020 · 11 comments
Labels
discussion Discussions related to the design, implementation and operation of the project documentation Documentation of the project as well as procedural documentation

Comments

@lukpueh
Copy link
Member

lukpueh commented Sep 10, 2020

Description of issue or feature request:
Decide which Python versions we want to support in TUF 1.0.0.

Arguments for > 3.5:

  • Python 2.7 has EOLed.
  • Allows us to use type hints.
  • Users who need lower versions can still use the current implementation, which we will continue to support for a while
  • 3.5 isn't widely supported, see e.g. pyca/cryptography dropping support for it

Current behavior:

Expected behavior:
TBD

@lukpueh lukpueh added the discussion Discussions related to the design, implementation and operation of the project label Sep 10, 2020
@jku
Copy link
Member

jku commented Sep 10, 2020

I absolutely agree with killing 2.x with fire but I think this "we will continue to support [current implementation] for a while" part probably needs to be quite explicit -- in practice the first step should be very prominent python2 support deprecation with at least an estimated timeline.

The reason I'm saying this is https://pypistats.org/packages/tuf: pypistats may not be that reliable but it's one of the few usage indicators available... and it looks pretty bad for tuf, much worse than most distributions: 50% of the downloads are for python 2.

@lukpueh
Copy link
Member Author

lukpueh commented Sep 10, 2020

Thanks for your quick chiming in, @jku! I'd like to dedicate #1127 to having a discussion about where and how to "be quite explicit about this". :)

@joshuagl joshuagl added the documentation Documentation of the project as well as procedural documentation label Sep 10, 2020
@lukpueh lukpueh added decision record Outcome of this discussion should be tracked in a decision record and removed decision record Outcome of this discussion should be tracked in a decision record labels Sep 10, 2020
@trishankatdatadog
Copy link
Member

Datadog still needs temporary support for Python 2 at least, IIRC cc @ofek @FlorianVeaux

@ofek
Copy link
Contributor

ofek commented Sep 10, 2020

Yes, but we are fine with pinning as long as security fixes are backported.

@joshuagl
Copy link
Member

Datadog still needs temporary support for Python 2 at least, IIRC cc @ofek @FlorianVeaux

Can you help quantify "temporary support"? We don't really have the engineering resources on the project to support multiple versions of the codebase. Back-porting security fixes won't be very straightforward if we rearchitect the internals as has been proposed.

I'd rather avoid Python2.7 entirely, but it may be possible to get the Python 3.x features we want on a 2.7 supporting codebase by using additional dependencies. i.e. typing is available for Python 2.7.
Of course, the danger there is that we don't know how long our dependencies will continue to support an EOL version of Python.

@ofek
Copy link
Contributor

ofek commented Sep 10, 2020

Temporary means a while 😅

We're one user, please do what you wish and do not block on us. We will be fine.

@jku
Copy link
Member

jku commented Sep 14, 2020

Incidentally Python 3.5 is End-Of-Life since yesterday

joshuagl added a commit to joshuagl/tuf that referenced this issue Oct 21, 2020
Document the decision drop support for EOL Python versions, most notable
Python 2.7

Fixes theupdateframework#1125

Signed-off-by: Joshua Lock <[email protected]>
joshuagl added a commit to joshuagl/tuf that referenced this issue Oct 21, 2020
Document the decision drop support for EOL Python versions, most notable
Python 2.7

Fixes theupdateframework#1125

Signed-off-by: Joshua Lock <[email protected]>
joshuagl added a commit to joshuagl/tuf that referenced this issue Oct 21, 2020
Document the decision drop support for EOL Python versions, most notable
Python 2.7

Fixes theupdateframework#1125

Signed-off-by: Joshua Lock <[email protected]>
@joshuagl
Copy link
Member

Note also that pip (the program) are dropping support for Python 2.7 in January 2021: https://pip.pypa.io/en/latest/development/release-process/#python-2-support

@joshuagl
Copy link
Member

Another worthwhile item of note is that pyca/cryptography are intending to drop support for Python 2.7 sometime around December 2020 /January 2021 (see pyca/cryptography#5359)

MVrachev pushed a commit to MVrachev/tuf that referenced this issue Oct 28, 2020
Document the decision drop support for EOL Python versions, most notable
Python 2.7

Fixes theupdateframework#1125

Signed-off-by: Joshua Lock <[email protected]>
@MVrachev
Copy link
Collaborator

MVrachev commented Oct 29, 2020

When and how we are going to drop support for python versions < 3.6?
We can easily submit a pr today to do that, but how we are going to announce it to our users, and how much time we will give them to update to a newer version?

I am not sure if there are other users than DataDog that use python < 3.6, but still if there are?

@joshuagl
Copy link
Member

joshuagl commented Oct 30, 2020

Good question. Per the ADR, we plan to write new code targeting Python 3.6+ only.
Thus, implicitly, the refactored codebase which will eventually be released as version 1.0 will be Python 3.6+ only.

Given that Python 2.7 and 3.5 are both EOL, I hope the number of users is low. However, we are discussing how best, and how long, to support prior versions of the code (supporting older Python versions) in #1127

MVrachev pushed a commit to MVrachev/tuf that referenced this issue Nov 3, 2020
Document the decision drop support for EOL Python versions, most notable
Python 2.7

Fixes theupdateframework#1125

Signed-off-by: Joshua Lock <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Discussions related to the design, implementation and operation of the project documentation Documentation of the project as well as procedural documentation
Projects
None yet
Development

No branches or pull requests

6 participants