Skip to content

Document state of Python 2.7 support #161

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

Closed
tomschr opened this issue Oct 7, 2019 · 14 comments
Closed

Document state of Python 2.7 support #161

tomschr opened this issue Oct 7, 2019 · 14 comments
Labels
Question Unclear or open issue subject for debate Release_2.x.y Only for the major release 2

Comments

@tomschr
Copy link
Member

tomschr commented Oct 7, 2019

Situation

At the moment, this project uses and supports Python 2.7. As we all know, Python 2.7 is going out of maintenance soon ("retire") and it's not clear what the project is going to do.

After disussing #160, we found out that the project doesn't have a clear statement or information regarding the retirement of Python 2.7 (neither in issues, README, nor documentation). Maybe I have missed something; in that case we can close this issue. 😉

We are currently lacking answers of the following questions:

  • For how long do we want to support Python 2.7?
  • Which semver version(s) still support Python 2.7?
  • Do we want to have semver 3.x.y which supports only Python 3.x?

Suggested Solution

Whatever the project decides, we need to document it. 😉 What about the following approach?

  • Add a short note, paragraph, section etc. about the retirement of Python 2.7 inside our README. Maybe even link to this issue.
  • Focus in our documentation on Python3 only.

Apart from the documentation issues, I would also propose to indicate such a change with raising the major version of semver. For example:

  • 2.x: would still contain the support for Python 2.7
  • 3.x: would be the main line without support for Python 2.7 (in other words, >= Python 3.5 only)

Luckily, such major versions match with the Python version. 😉

Would that help?

See also

@s-celles
Copy link
Member

s-celles commented Oct 7, 2019

My opinion (my 2cts)

We will release in the next coming days / weeks a 2.9.x version of python-semver which will support Python 2.7 and 3.x

After this, we will be working on a 3.x version of python-semver which will only support Python 3.x

I won't personally backport python-semver 3.x features to 2.x branch to urge people to leave this venerable Python 2.7 version (in life everything stops one day 😉 )

Releasing is time consuming... releasing 2 versions can be more than 2 times consuming.

@ppkt
Copy link
Member

ppkt commented Oct 7, 2019

I fully agree - I think we should only fix bugs in 2.x branch.

Another question - what about Python 3.4? It's marked as EOL and maybe we should remove support for that version as well in 3.x?

@tomschr
Copy link
Member Author

tomschr commented Oct 7, 2019

Another question - what about Python 3.4?

I was thinking the same. Maybe we can mark this version also as unsupported in our upcoming 3.x branch?

@s-celles
Copy link
Member

s-celles commented Oct 7, 2019

Agree no Python 3.4 in python-semver 3.x but Python 2.7, 3.4 in python-semver 2.9.x

@tomschr
Copy link
Member Author

tomschr commented Oct 7, 2019

Ok, great! So to summarize the needed actions:

  • Create a 2.9.x release with the subtasks:
    • Add the current document state/idea into the README
    • Mention the plan for the 2.9.x "maintenance" branch
    • Open a maint/2.9.x(?) maintenance release branch (choose a name you like).
      This would be only for interested people, no backporting will happen

This part is covered now in #127

  • Create a 3.x release with the subtasks:
    • Remove test target py27
    • If needed, remove/refactor code that was introduced only for Python 2.7
    • If needed, "optimize" code for Python3
    • Focus on Python3 in the documentation
    • Adapt setup.py: remove lines with support for Python 2.7 and 3.4

Anything else?

@tomschr
Copy link
Member Author

tomschr commented Oct 8, 2019

@scls19fr @ppkt
I'd suggest to make our user base aware of such an "incompatible" change and add a warning notice in our README file. What do you think about this? 😉

.. warning::

   Major version 3.0.0 of semver will remove support for Python 2.7 and 3.4.

   As anything comes to an end, this project will focus on Python 3.x. New
   features and bugfixes will be integrated only into the 3.x.y line of semver.

   The last version of semver which supports Python 2.7 and 3.4 will be
   2.9.x. However, keep in mind, version 2.9.x is frozen: no new
   features nor backports will be integrated.

   We recommend to upgrade your workflow to Python 3.x to gain support,
   bugfixes, and new features.

Furthermore, I would suggest to add this in the upcoming 2.9.0 release.

@s-celles
Copy link
Member

s-celles commented Oct 8, 2019

LGTM

@tomschr
Copy link
Member Author

tomschr commented Oct 8, 2019

@scls19fr
Thanks for merging it, 👍 but it's only one part of it. I've mentioned other items in my #161 (comment).

Should we transfer the other, unresolved items into a new issue or is it better to reopen this issue?

@s-celles
Copy link
Member

s-celles commented Oct 9, 2019

Ok so let's reopen and adress remaining items.

@s-celles s-celles reopened this Oct 9, 2019
@tomschr tomschr mentioned this issue Nov 3, 2019
7 tasks
@tomschr
Copy link
Member Author

tomschr commented Nov 3, 2019

The comment #161 (comment) that mentions Python 3/semver 3.0.0 is covered in a separate issue #176 now.

@tomschr tomschr added the Release_2.x.y Only for the major release 2 label Nov 7, 2019
@tomschr tomschr added the Question Unclear or open issue subject for debate label Dec 17, 2019
@tomschr
Copy link
Member Author

tomschr commented Jan 18, 2020

@python-semver/reviewers
As far as I can see, from #161 (comment), only the maintenance branch is open:

Open a maint/2.9.x(?) maintenance release branch (choose a name you like).
This would be only for interested people, no backporting will happen

When should we create such a branch? (As Python 2 is now EOL).

Probably we want to create another release before, right?

@eli-darkly
Copy link
Contributor

I'm confused by the statement in the Readme that seems to say 2.10.0 does still support Python 2.7. That's not what I'm seeing. I have a project that uses this package and runs in Py2, and as soon as it started using the 2.10 release, I started getting errors like this which look to me like what you'd get from a Py2 vs. Py3 incompatibility:

TypeError("Expected str or VersionInfo instance, but got <type 'unicode'>"

When I pin the dependency to <2.10, the error goes away.

@tomschr
Copy link
Member Author

tomschr commented Jul 6, 2020

@eli-darkly Thanks Eli! 👍 Much appreciate your bug report. I've opened #274.

If I'm not mistaken, I assume this is of some if isinstance(other, str) lines which didn't recognize the unicode datatype in Python2.

@tomschr
Copy link
Member Author

tomschr commented Oct 17, 2020

I've opened a maintenance branch maint/v2 if we need that for the semver v2 line.
I think, all tasks are done so I'm closing this issue for the time being.

@tomschr tomschr closed this as completed Oct 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Question Unclear or open issue subject for debate Release_2.x.y Only for the major release 2
Projects
None yet
Development

No branches or pull requests

4 participants