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

start looking into making vsc-base Py3 compatible #231

Open
boegel opened this issue Jun 20, 2016 · 7 comments
Open

start looking into making vsc-base Py3 compatible #231

boegel opened this issue Jun 20, 2016 · 7 comments

Comments

@boegel
Copy link
Member

boegel commented Jun 20, 2016

We can gradually make vsc-install complain about code that is not Py3-compatible.

@stdweird What did you have in mind here?

@JensTimmerman
Copy link
Contributor

JensTimmerman commented Jun 21, 2016

we agreed into not starting to make our python code python3 compatible until we could remove python2.6 support.
but once we do remove python2.6 support, see
https://docs.python.org/3/howto/pyporting.html#the-short-explanation

We could already start to check on 'modern' python2 code (whithout being fully python3 compatible, but making it so that less changes will be needed in the future, and without extra dependencies on future or six)
futurize's stage1 looks promissing , we could have vsc-install run this as part of the tests, and require
that all our code is modern python.

We are already enabling more and more pylint checks every month or so, so we could later on add the futurize stage1 as another check.
http://python-future.org/futurize.html#forwards-conversion-stage1

what futurize stage1 does:

Modernize Python 2 code only; no compatibility with
                        Python 3 (or dependency on ``future``)

it will print out what needs to change for a project to be 'modern' python.

once we drop py2.6 support, we can also require stage2, or switch to modernize (but this will mean we will have an extra dependency, either on future, or on six.

also, shouldn't this issue be in vsc-install?

@itkovian
Copy link
Member

Well, since we are now at CO7.3, I think we can just drop all things 2.6 and move to 2.7/3.x+?

@boegel
Copy link
Member Author

boegel commented Feb 22, 2017

Maybe we should discuss this again during team meeting, I think we really need to starting working towards Py3 compatibility (although it shouldn't be our biggest concern), since it'll be a long-term effort.

@JensTimmerman ?

@stdweird
Copy link
Member

why did this become suddenly more urgent?

@boegel
Copy link
Member Author

boegel commented Feb 22, 2017

It's not suddenly more urgent, but more and more projects are switching to Python3 only (e.g. Django 1.11 is the last release that will support Python2), and we don't even support Python3 yet (although I guess that's only an issue for outward facing tools like EasyBuild).
At some point this will become a real problem for EasyBuild, where we have optional dependencies on a bunch of 3rd party libraries.

At some point, Python2 will disappear (even though it's still years away, sure), so unless we switch our whole codebase to an entirely different programming language (Perl6? :P), we'll need to start working on that anyway.

Now that we don't need to support Python 2.6 anymore, the only thing stopping us from (slowly) working towards being compatible with Python3 is the lack of time?

The very first step is going to be vsc-base (and I guess also vsc-install), which is blocking everything else.

Anyway, we've had this discussion before...

@stdweird
Copy link
Member

yes, we have other work which is being delayed or still not finished for way too long, affecting other projects. there's noone in our team who can have time for this. (and if they think they have, they should have a chat with me, i'll be glad to show them how jira works and how they can assign tickets to themself 😄 )

and maybe python3 will become the default, but python2 will not dissapear. stop with the FUD pls.

@JensTimmerman
Copy link
Contributor

JensTimmerman commented Feb 22, 2017

Nothing has changed to the above plan, adding more errors in pylint and run futurize stage1 as one of the tests run by vsc-install is still the way to go forward, as long as nobody has looked into that we shouldn't really worry about what to do next.
But yes, getting rid of python2.6 was step two in this process, we did step2 before step one.

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

No branches or pull requests

4 participants