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

Python 3 support #1658

Closed
14 tasks done
QuLogic opened this issue May 6, 2015 · 31 comments
Closed
14 tasks done

Python 3 support #1658

QuLogic opened this issue May 6, 2015 · 31 comments
Milestone

Comments

@QuLogic
Copy link
Member

QuLogic commented May 6, 2015

Most of the simple compatibility stuff is finished (i.e., #1657, etc.). So the question is how to do stuff that is incompatible between 2 and 3?

There are a boatload of iter* calls, either due to performance or just plain copy & paste. In that regard, it would be much nicer to just use Python 3 syntax via future. Any thoughts on the two?

Remaining items:

@QuLogic
Copy link
Member Author

QuLogic commented May 20, 2015

Ping?

@rhattersley
Copy link
Member

We've used six in Cartopy, so sticking with that would avoid the need for yet another dependency.

@QuLogic
Copy link
Member Author

QuLogic commented May 21, 2015

Ah, it seems it's a good thing I started trying to do it that way already, then.

@QuLogic
Copy link
Member Author

QuLogic commented Jun 24, 2015

Currently reaching about 90% test passes now, but most of the failures are now due to GRIB's issues, or with something I don't yet understand.

@pelson
Copy link
Member

pelson commented Jun 24, 2015

Currently reaching about 90% test passes now, but most of the failures are now due to Grib's issues, or with something I don't yet understand.

It isn't unreasonable to state that GRIB is not supported on Python3. We do precisely that for Windows. GRIB is an optional dependency for Iris after all.

@ajdawson
Copy link
Member

It isn't unreasonable to state that GRIB is not supported on Python3. We do precisely that for Windows. GRIB is an optional dependency for Iris after all.

Agreed, with the following caveat: When we announce Python 3 support we must make sure to declare very openly which components are not supported.

@QuLogic
Copy link
Member Author

QuLogic commented Jun 24, 2015

Hrm, you're right that's how it's documented, but the tests seem to disagree.

@QuLogic
Copy link
Member Author

QuLogic commented Jun 27, 2015

What is the encoding for the text fields in the NAME, NIMROD formats?

@QuLogic
Copy link
Member Author

QuLogic commented Jul 7, 2015

----------------------------------------------------------------------
Ran 3432 tests in 86.103s

FAILED (SKIP=16, errors=4, failures=6)

99% there...

@rhattersley
Copy link
Member

99% there...

👏 Impressive. 😄

@QuLogic
Copy link
Member Author

QuLogic commented Jul 8, 2015

I've got about 8 branches split out into common changes and ready to make PRs. But I'm not sure how co-dependent they are, so I'm not going to open any PRs until the other 4 are merged, or I'll have to rebase them repeatedly.

@rhattersley rhattersley added this to the v1.9 milestone Jul 30, 2015
@rhattersley
Copy link
Member

If there are still multiple steps to achieve this then perhaps a checklist in the description, or split it out into multiple issues.

@rhattersley
Copy link
Member

Thanks for adding the checklist @QuLogic 😄

@QuLogic
Copy link
Member Author

QuLogic commented Sep 3, 2015

Hmm, looks like there are no 3.3 dependencies in conda. And a few missing things in 3.4, too.

@pelson
Copy link
Member

pelson commented Sep 3, 2015

And a few missing things in 3.4, too.

https://github.com/SciTools/conda-recipes-scitools/blob/master/pyugrid/meta.yaml#L14

Hmm, looks like there are no 3.3 dependencies in conda.

I decided to keep the matrix small. It is easy enough to fix, but has the cost of an extra load of built distributions. Given we want to keep the channel as small as possible, do you feel that py33 is critical @QuLogic?

@QuLogic
Copy link
Member Author

QuLogic commented Sep 3, 2015

Well, that's up to you. Cartopy, biggus, etc. are tested on 3.3.

@QuLogic
Copy link
Member Author

QuLogic commented Sep 7, 2015

It turned out to be pretty easy to split apart the smaller branches, so there are 5 new PRs to review.

@QuLogic
Copy link
Member Author

QuLogic commented Sep 18, 2015

The first build to pass on Travis without trouble is finally up (except 3.3 has no conda deps.)

@pelson
Copy link
Member

pelson commented Sep 19, 2015

The first build to pass on Travis without trouble is finally up (except 3.3 has no conda deps.)

Is there a good reason to support py33 (other than the fact that we can)? Otherwise, I'm inclined to keep our lives as simple as possible and state py27 / py34 / (py35) support only.

@QuLogic
Copy link
Member Author

QuLogic commented Sep 20, 2015

It used to be the latest supported on RHEL, but now software collections has a 3.4 backport, so perhaps it is not so necessary.

@pp-mo
Copy link
Member

pp-mo commented Nov 2, 2015

As @pelson already suggested, we probably only need support Python 2.7 and 3.4 : comment
Against 3.3 : few people would specifically need it
Against 3.5 : available conda builds are too restrictive, especially regarding our current need for matplotlib=1.3.1. It will make much more sense to progress this when we have fixed our testing dependency on an older matplotlib version (or at least updated it), but that has to be future work, not a pre-requisite for 1.9.

So just 2.7 + 3.4 sounds like a a nice simple goal
(= stated support; tests work; testing in Travis)

@QuLogic @pelson @rhattersley are we all agreed that will be good enough ?

@QuLogic
Copy link
Member Author

QuLogic commented Nov 2, 2015

Sounds good to me. I think most of the hard work for updating matplotlib has to do with cartopy, but that's already in progress.

@rhattersley
Copy link
Member

I'd be very happy with 2.7 + 3.4. 👍

@rhattersley
Copy link
Member

So... this is done?!? 😁

@pp-mo
Copy link
Member

pp-mo commented Nov 19, 2015

So... this is done?!? 😁

I believe it is : everything here has now been included somewhere else.
Agreed @QuLogic ?

@QuLogic
Copy link
Member Author

QuLogic commented Nov 19, 2015

Pretty much; I was holding off unless any last minute issues came up.

@pelson
Copy link
Member

pelson commented Nov 20, 2015

🎉 🎉 - woohoo! Welcome to the 21st century 😜 ! 👍

@rhattersley
Copy link
Member

Pretty much; I was holding off unless any last minute issues came up.

Superb! Well done everyone... and especially @QuLogic! 👏

I'd love to close this PR now, but I'd rather @QuLogic did it. (If anything else comes up I think we should just raise a specific issue.)

@QuLogic
Copy link
Member Author

QuLogic commented Nov 20, 2015

🎂 🎉

@QuLogic QuLogic closed this as completed Nov 20, 2015
@rhattersley
Copy link
Member

🤘

@ocefpaf
Copy link
Member

ocefpaf commented Nov 20, 2015

Thanks all! And special thanks to Elliott!

I am looking forward for the next release!

Iris was the last major dependency I needed to move to py3.

On Nov 20, 2015 7:46 AM, "Richard Hattersley" notifications@github.com
wrote:


Reply to this email directly or view it on GitHub.

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

6 participants