Re: [sepia] Transition to Python 3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 17, 2018 at 4:27 PM, Nathan Cutler <ncutler@xxxxxxx> wrote:
>>> + src/pybind/ceph_volume_client.py
>>>
>>> Other projects use ceph_volume_client  [1] and so simply porting to
>>> python3 is not trivial, right? As a Python casual: what's the
>>> suggested thing to do here?
>>
>>
>> I would suggest dual compatibility like what ceph-volume provides. In
>> our case, it doesn't matter what you use, the code just works
>> no need to change/remove anything.
>>
>> That would be at odds to what Nathan is suggesting though, which is a
>> hard change to Python 3.
>
>
> Hm, not sure what hard/soft means in this context. For any given script,
> either it runs with Python 3, or it doesn't. And this is determined by the
> shebang. (Unless the shebang is omitted, of course.)
>
> I was very surprised to find out that, in SLES and openSUSE, the symlink
> /usr/bin/python -> /usr/bin/python2 will not be changed even when the
> migration of the underlying distro to Python 3 is complete.
>
> But then my colleagues explained why that is, and I "saw the light". Since
> every single script in the distro has to be audited for Python 3
> compatibility, anyway, it makes sense to have the shebang be an explicit
> declaration of said compatibility.

That is what I thought about a hard requirement: if we are being
explicit with a shebang that points to python3, then we aren't
allowing anything
other than python 3.

>
> By retaining the symlink at it is, all scripts start out the migration
> process with an explicit declaration that they are compatible with Python 2.
> Compatibility with Python 3 is signalled not by saying "it's OK with Python
> 3, we tried it". It's signalled by changing the shebang.
>
> And this isn't unique to SUSE. Fedora is treating the shebang in the same
> way, apparently. [2]
>
> It may be true that a given script is fine with Python 3, but as long as the
> shebang says "python" (i.e. python2), there's no way to really find out, is
> there? (Barring things like Josh's suggestion of changing the shebang on the
> fly via a teuthology task/workunit, which is fine if we decide we need a
> transition period, which it looks like we will.)

The way ceph-volume is ensuring Python 3 compatibility is by running
tests on Python 3.X environments. We do find out when we accidentally
introduce issues for Python3-only
environments.

But maybe you mean something else about "really finding out" ? I'm
fine moving forward with whatever distros prefer, including an
explicit python3 shebang, just saying that ceph-volume has been
py3-ready since the beginning and this wouldn't be a problem.

>
> Nathan
>
> [1]
> https://github.com/kubernetes-incubator/external-storage/blob/master/ceph/cephfs/cephfs_provisioner/cephfs_provisioner.py#L27
> [2]
> https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3#.2Fusr.2Fbin.2Fpython
>
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux