[yt-dev] Starting conversation about Py2 deprecation

Nathan Goldbaum nathan12343 at gmail.com
Thu Apr 20 14:58:25 PDT 2017


If we do drop Python2 support, I'd prefer to do it fully and not
intentionally leave in six and all of the code that's conditional on Python
version. Leaving in the shim code makes the codebase harder to understand,
so we should take the opportunity to remove it once we have the chance to
make it more approachable and maintainable. In addition, I don't feel
comfortable letting people install yt on a version of python that we're
intentionally not testing. There should just eventually be a yt version
that isn't installable on python2. We will of course need to communicate
with out community about that, and announce the transition well ahead of
time. Thankfully we are in good company on these announcements, and many
other packages (notably IPython) have begun to make their own transitions
to python3-only codebases.

Up until now we've tried to avoid having too many breaking changes, and it
just so happens that we're thinking about how to handle two of them. The
first is the stuff that we want to go into yt 4.0 (non-spatial domains and
the demeshening) and the second is dropping Python3. I guess we're most
efficient in spending breaking change chits with our userbase if we group
these two changes together. Ideally we'd do that, but several people on the
call yesterday objected to that but at the same time seemed amenable to the
compromise that we drop python3 support soon after releasing a version of
yt that includes the demeshening and non-spatial domains. So that means
dropping python3 support needs to happen after yt 4.0.

I think Matt would prefer not to to a yt 5.0 release soon after yt 4.0.
However, as Mike points out, dropping python3 support is a breaking change
for some people, so we probably need to indicate that in the version
number. Taken together, I think that means we need to do both a yt 4.0 and
yt 5.0 release.

So that means we need to decide now how long we want the delay between
releasing yt 4.0 and dropping python3 support in yt 5.0 is going to be. Are
we going to release yt 4.1 with new features but still supporting python2?
Or are we going to move straight to yt 5.0, possibly supporting yt 4.0 with
bugfixes for an extended period. Our messaging here I think depends on what
the timeline should be.

If we want to drop python2 support in 2018, I think there should be a yt
4.1. If we want to drop it in 2019 or 2020, then we have plenty of time to
accumulate other ideas for breaking changes that we want to include in yt
5.0 and we might end up doing yt 4.1 and 4.2 releases.

Personally, I'm leaning towards dropping Python2 support sooner, in 2018.
Would anyone prefer a later switch?

On Thu, Apr 20, 2017 at 4:31 PM, Nathan Goldbaum <nathan12343 at gmail.com>
wrote:

> I guess it doesn't matter much whether we call it 4.1 or 5.0. We could
> commit ahead of time that the only major breaking change in 5.0 would be
> dropping python2 support.
>
> On Thu, Apr 20, 2017 at 4:29 PM, John Zuhone <jzuhone at gmail.com> wrote:
>
>> We had a conversation about this point yesterday, in fact I was the one
>> that brought this point up.
>>
>> Though in my mind I agree with you at first that it makes more sense to
>> do this at 4.0, there are two reasons why we should wait until 4.1:
>>
>> 1. gives users more time to prepare
>> 2. gives python 2 people a chance to use the new features (especially
>> demeshening) at least for one 4.x version
>>
>> On Apr 20, 2017, at 5:27 PM, Michael Zingale <
>> michael.zingale at stonybrook.edu> wrote:
>>
>> my thought on this is that removing python 2 support should occur on a
>> major release, not a point release.  It seems odd that yt 4.0 supports both
>> 2 and 3, but 4.1 drops python 2 support.  Might be confusing for users.
>>
>> On Thu, Apr 20, 2017 at 4:27 PM, Matthew Turk <matthewturk at gmail.com>
>> wrote:
>>
>>> Hi folks,
>>>
>>> On the call yesterday, the topic of dropping support for Py2 came up.
>>> This site provides some context:
>>>
>>> http://www.python3statement.org/
>>>
>>> At present, we're planning to have a 3.4 release sometime in the early
>>> summer, and then aiming for a yt 4.0 sometime about six months later.  yt
>>> 4.0 will have the demeshening.
>>>
>>> A proposal was floated to have yt 4.0 be the last release that
>>> explicitly supports python 2, and then to "softly" drop support for python
>>> 2 during the cycle for yt 4.1, which would be about six months later, we
>>> anticipate.  This would mean not testing on py2 anymore and potentially
>>> removing some of the shims and six calls to dual-support.
>>>
>>> Some more discussion is in the meeting notes:
>>>
>>> https://github.com/yt-project/meeting-notes/blob/master/note
>>> s-20170419.md
>>>
>>> I don't know if this is something we should actively discuss yet, but I
>>> wanted to put it out there.  I personally support this proposal.
>>>
>>> -Matt
>>>
>>> _______________________________________________
>>> yt-dev mailing list
>>> yt-dev at lists.spacepope.org
>>> http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org
>>>
>>>
>>
>>
>> --
>> Michael Zingale
>> Associate Professor
>>
>> Dept. of Physics & Astronomy • Stony Brook University • Stony Brook, NY
>> 11794-3800
>> *phone*:  631-632-8225 <(631)%20632-8225>
>> *e-mail*: Michael.Zingale at stonybrook.edu
>> *web*: http://www.astro.sunysb.edu/mzingale
>> github: http://github.com/zingale
>>
>> _______________________________________________
>> yt-dev mailing list
>> yt-dev at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org
>>
>>
>>
>> _______________________________________________
>> yt-dev mailing list
>> yt-dev at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-dev-spacepope.org/attachments/20170420/9a300f79/attachment.html>


More information about the yt-dev mailing list