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

[Next 2020-09] Drop support for Python 2.7, Python 3.4 and Python 3.5 #330

Closed
Natim opened this issue Feb 19, 2019 · 12 comments · Fixed by #560
Closed

[Next 2020-09] Drop support for Python 2.7, Python 3.4 and Python 3.5 #330

Natim opened this issue Feb 19, 2019 · 12 comments · Fixed by #560
Assignees
Projects

Comments

@Natim
Copy link
Contributor

Natim commented Feb 19, 2019

I guess it would allow us to cleanup the code, switch to f-strings, remove __future__ hacks and get a clearer code base.

However it sends a good signal that Python 2 EOL is near and that it is time to switch to Python 3.


(addition by @brunobord to the original post)

Planning summary:

EOL Date Python Version to drop Workalendar release
2019-03-16 3.4 6.0.0
2020-01-01 2.7 8.0.0
2020-09-13 3.5 12.0.0
@Natim
Copy link
Contributor Author

Natim commented Feb 19, 2019

image

@Natim
Copy link
Contributor Author

Natim commented Feb 21, 2019

@brunobord any opinion on this?

@brunobord
Copy link
Member

If I'm following this Status of Python branches:

  • Python 3.4 EOL is scheduled for 2019-03-16
  • Python 3.5 EOL is scheduled for 2020-09-13
  • and more importantly, Python 2.7 will be terminated on 2020-01-01

At the moment, there are projects that would still need PY2-compatible workalendar lib, and removing its availability is a touchy topic, this should be carefully driven.

I see the point of switching to a "Python 3" only code, although the "f-string" may not be the NUMBER 1 argument for workalendar. I'm almost sure there's not a lot of formatted strings, and they don't require to be f-stringified :o)
The problem with using f-strings is that you're blocking any use in Python 3.5, which is the default in numerous distributions, and not all the system administrators would make the switch towards 3.6 without a serious reason.

But I don't see the point in rushing here: our codebase compatibility is as wide as necessary, from 2.7 to 3.7.

I think that the next milestone would happen after Python 3.4 EOL, in March. We'll probably make a major release with its support dropped.
Then, later this year, we'll schedule the deprecation of Python 2.7 and would keep workalendar as widely compatible as possible (and yes, that'd mean we won't be using 3.6 "f-strings" and others, because there will still be a long way towards 3.5 support drop)

I hope you still think I'm your friend ;o)

@Natim
Copy link
Contributor Author

Natim commented Feb 21, 2019

It makes a lot of sense and I like the reasoning and the fact that we have a path forward regarding this.

@Natim Natim changed the title Drop support for Python 2.7, Python 3.4 and Python 3.5 [After 2020-09-13] Drop support for Python 2.7, Python 3.4 and Python 3.5 Feb 21, 2019
@brunobord brunobord added this to To Do in Workalendar Feb 28, 2019
@brunobord brunobord added the blocked Blocked by a question, an undefined rule to compute a date, etc. label Mar 14, 2019
@brunobord brunobord moved this from To Do to Blocked / on Hold in Workalendar Apr 12, 2019
@brunobord brunobord mentioned this issue May 17, 2019
5 tasks
@brunobord
Copy link
Member

version 5.0.0 was released, with drop of Python 3.4 support. Next stop is Python 3.5 in september.

@ShaheedHaque
Copy link

When support for Python2.7 is dropped, it would be nice to change all the places with an absolute import of workalendar itself with a relative import.

@brunobord
Copy link
Member

@ShaheedHaque Adding this to my TODO list ;o)

@brunobord brunobord changed the title [After 2020-09-13] Drop support for Python 2.7, Python 3.4 and Python 3.5 [Next 2019-12] Drop support for Python 2.7, Python 3.4 and Python 3.5 Sep 20, 2019
@brunobord
Copy link
Member

Starting the "drop Python 2 branch" right now.

@brunobord brunobord mentioned this issue Dec 13, 2019
7 tasks
brunobord added a commit that referenced this issue Dec 20, 2019
@brunobord brunobord removed the blocked Blocked by a question, an undefined rule to compute a date, etc. label Dec 20, 2019
brunobord added a commit that referenced this issue Jan 10, 2020
@brunobord brunobord changed the title [Next 2019-12] Drop support for Python 2.7, Python 3.4 and Python 3.5 [Next 2020-09] Drop support for Python 2.7, Python 3.4 and Python 3.5 Jan 10, 2020
@brunobord brunobord moved this from Blocked / on Hold to Working in Workalendar Oct 2, 2020
@brunobord
Copy link
Member

Currently working on dropping support for Python 3.5

brunobord added a commit that referenced this issue Oct 2, 2020
@brunobord brunobord mentioned this issue Oct 2, 2020
4 tasks
brunobord added a commit that referenced this issue Oct 2, 2020
@brunobord
Copy link
Member

Then we'll just need to make a release to close this

@brunobord brunobord self-assigned this Oct 2, 2020
@brunobord
Copy link
Member

one small thing to add. Since we now have Python3.5-incompatible code (due to the introduction of math.tau), I'll add a python_requires option.

@brunobord brunobord mentioned this issue Oct 2, 2020
14 tasks
Workalendar automation moved this from Working to Done Oct 2, 2020
@brunobord
Copy link
Member

... and we're done.
Next step will be Python 3.9, which is due next week. The Github issue is already here: #557, all we need to wait is support through Travis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Workalendar
  
Done/Closed/Published
Development

Successfully merging a pull request may close this issue.

3 participants