Re: [openstack-dev] [qa] Python 3.3 patches (using six)

2014-03-14 Thread Sean Dague
On 03/14/2014 04:49 AM, victor stinner wrote:
> Hi,
> 
> I'm working for eNovance and we are working on porting OpenStack to Python 3. 
> Status of the port:
> 
>   http://techs.enovance.com/6722/status-of-the-openstack-port-to-python-3-2
>   https://wiki.openstack.org/wiki/Python3
> 
> I understand that it becomes late for Python 3 changes before Icehouse 
> release, but I don't agree on the second part of your mail.
> 
> David wrote:
>> (...) I'm not sure it makes sense to do this work piecemeal until
>> we are near ready to introduce a py3 gate job.
> 
> I'm not sure that I understood correctly. You want first to see all Python 3 
> tests pass, and then accept changes to fix Python 3 issues? Adding a py33 
> gate is nice, but it is almost useless before it becomes voting if nobody 
> reads failures. And I don't expect that anyone will care of the py33 gate 
> before it becomes voting.
> 
> It's not possible to fix all Python 3 issues at once. It requires many small 
> changes which are carefully viewed and discussed. It is not possible to see 
> all issues at once neither. For example, you have first to fix obvious syntax 
> errors to see less trivial Python 3 issues. Changes are done incrementally, 
> as other changes in OpenStack.
> 
> Yes, it's possible to reintroduce Python 3 incompatible code, but I expect 
> much fewer "regressions" compared to the number of fixed issues.
>
> Cyril Roelandt is improving the hacking tool to detect the most obvious cases 
> of Python 3 incompatible code:
> 
>   https://review.openstack.org/#/c/80171/
> 
> We are working on clients and Olso Incubator first, but we are also preparing 
> the port of servers.

The issue is this generates a lot of unrelated churn and merge conflicts
with actual feature code and bug fixes.

So what we need is a game plan, which goes as follows:

1. demonstrate all requirements.txt and test-requirements.txt are
python3 compatible
1.1 if they aren't work on a remediation plan to get us there

once completed
2. come up with an audit plan on the obvious python3 issues

3. designate a focused 2 week window to land all the python3 issues and
turn on gating, we'll make it a priority review topic during that period
of time.

That 2 week window needs to happen within milestone 1 or 2 of a cycle.
After that, it's a distraction. So if the python 3 team doesn't have the
ducks in a row by then, we punt to next release.

Because I think the one of patch model on changes like this just doesn't
work, and leaves us in this very weird state of code.

-Sean

-- 
Sean Dague
Samsung Research America
s...@dague.net / sean.da...@samsung.com
http://dague.net



signature.asc
Description: OpenPGP digital signature
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [qa] Python 3.3 patches (using six)

2014-03-14 Thread victor stinner
Hi,

I'm working for eNovance and we are working on porting OpenStack to Python 3. 
Status of the port:

  http://techs.enovance.com/6722/status-of-the-openstack-port-to-python-3-2
  https://wiki.openstack.org/wiki/Python3

I understand that it becomes late for Python 3 changes before Icehouse release, 
but I don't agree on the second part of your mail.

David wrote:
> (...) I'm not sure it makes sense to do this work piecemeal until
> we are near ready to introduce a py3 gate job.

I'm not sure that I understood correctly. You want first to see all Python 3 
tests pass, and then accept changes to fix Python 3 issues? Adding a py33 gate 
is nice, but it is almost useless before it becomes voting if nobody reads 
failures. And I don't expect that anyone will care of the py33 gate before it 
becomes voting.

It's not possible to fix all Python 3 issues at once. It requires many small 
changes which are carefully viewed and discussed. It is not possible to see all 
issues at once neither. For example, you have first to fix obvious syntax 
errors to see less trivial Python 3 issues. Changes are done incrementally, as 
other changes in OpenStack.

Yes, it's possible to reintroduce Python 3 incompatible code, but I expect much 
fewer "regressions" compared to the number of fixed issues.

Cyril Roelandt is improving the hacking tool to detect the most obvious cases 
of Python 3 incompatible code:

  https://review.openstack.org/#/c/80171/

We are working on clients and Olso Incubator first, but we are also preparing 
the port of servers.

Victor

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [qa] Python 3.3 patches (using six)

2014-03-13 Thread David Kranz

On 03/13/2014 04:56 PM, Sean Dague wrote:

On 03/13/2014 04:29 PM, David Kranz wrote:

On 03/13/2014 10:50 AM, Joe Hakim Rahme wrote:

On 10 Mar 2014, at 22:54, David Kranz  wrote:


There are a number of patches up for review that make various changes
to use "six" apis instead of Python 2 constructs. While I understand
the desire to get a head start on getting Tempest to run in Python 3,
I'm not sure it makes sense to do this work piecemeal until we are
near ready to introduce a py3 gate job. Many contributors will not be
aware of what all the differences are and py2-isms will creep back in
resulting in more overall time spent making these changes and
reviewing. Also, the core review team is busy trying to do stuff
important to the icehouse release which is barely more than 5 weeks
away. IMO we should hold off on various kinds of "cleanup" patches
for now.

+1 I agree with you David.

However, what's the best way we can go about making sure to make this a
goal for the next release cycle?

Basically we just need to decide that it is important. Then we would set
up a non-voting py3.3 job that fails miserably. We would have a list of
all the changes that are needed. Implement the changes and turn the
py3.3 job voting as soon as it passes. The more quickly this is done
once it starts, the better, both because it will cause rebase havoc and
new non-working-in-3.3 stuff will come in. So it is best done in a
highly coordinated way where the patches are submitted according to a
planned sequence and reviewed immediately.

So it's important that there is a full plan about how to get there,
including the python 3 story for everything in requirements.txt and
test-requirements.txt being resolved first.

Because partial work is pretty pointless, it bit rots. And if we can't
get to running tempest regularly with python3 then it will regress (I
would see us doing an extra python3 full run to prove that).

-Sean
Yes, and we are at the "top" of the tree in the sense that we depend on 
a lot of other packages but none (yet) depend on tempest.

It is not clear we will actually finish this in Juno.

 -David




___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [qa] Python 3.3 patches (using six)

2014-03-13 Thread Sean Dague
On 03/13/2014 04:29 PM, David Kranz wrote:
> On 03/13/2014 10:50 AM, Joe Hakim Rahme wrote:
>> On 10 Mar 2014, at 22:54, David Kranz  wrote:
>>
>>> There are a number of patches up for review that make various changes
>>> to use "six" apis instead of Python 2 constructs. While I understand
>>> the desire to get a head start on getting Tempest to run in Python 3,
>>> I'm not sure it makes sense to do this work piecemeal until we are
>>> near ready to introduce a py3 gate job. Many contributors will not be
>>> aware of what all the differences are and py2-isms will creep back in
>>> resulting in more overall time spent making these changes and
>>> reviewing. Also, the core review team is busy trying to do stuff
>>> important to the icehouse release which is barely more than 5 weeks
>>> away. IMO we should hold off on various kinds of "cleanup" patches
>>> for now.
>> +1 I agree with you David.
>>
>> However, what’s the best way we can go about making sure to make this a
>> goal for the next release cycle?
> Basically we just need to decide that it is important. Then we would set
> up a non-voting py3.3 job that fails miserably. We would have a list of
> all the changes that are needed. Implement the changes and turn the
> py3.3 job voting as soon as it passes. The more quickly this is done
> once it starts, the better, both because it will cause rebase havoc and
> new non-working-in-3.3 stuff will come in. So it is best done in a
> highly coordinated way where the patches are submitted according to a
> planned sequence and reviewed immediately.

So it's important that there is a full plan about how to get there,
including the python 3 story for everything in requirements.txt and
test-requirements.txt being resolved first.

Because partial work is pretty pointless, it bit rots. And if we can't
get to running tempest regularly with python3 then it will regress (I
would see us doing an extra python3 full run to prove that).

-Sean

-- 
Sean Dague
Samsung Research America
s...@dague.net / sean.da...@samsung.com
http://dague.net



signature.asc
Description: OpenPGP digital signature
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [qa] Python 3.3 patches (using six)

2014-03-13 Thread David Kranz

On 03/13/2014 10:50 AM, Joe Hakim Rahme wrote:

On 10 Mar 2014, at 22:54, David Kranz  wrote:


There are a number of patches up for review that make various changes to use "six" apis 
instead of Python 2 constructs. While I understand the desire to get a head start on getting 
Tempest to run in Python 3, I'm not sure it makes sense to do this work piecemeal until we are near 
ready to introduce a py3 gate job. Many contributors will not be aware of what all the differences 
are and py2-isms will creep back in resulting in more overall time spent making these changes and 
reviewing. Also, the core review team is busy trying to do stuff important to the icehouse release 
which is barely more than 5 weeks away. IMO we should hold off on various kinds of 
"cleanup" patches for now.

+1 I agree with you David.

However, what’s the best way we can go about making sure to make this a
goal for the next release cycle?
Basically we just need to decide that it is important. Then we would set 
up a non-voting py3.3 job that fails miserably. We would have a list of 
all the changes that are needed. Implement the changes and turn the 
py3.3 job voting as soon as it passes. The more quickly this is done 
once it starts, the better, both because it will cause rebase havoc and 
new non-working-in-3.3 stuff will come in. So it is best done in a 
highly coordinated way where the patches are submitted according to a 
planned sequence and reviewed immediately.


 -David


---
Joe H. Rahme
IRC: rahmu


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [qa] Python 3.3 patches (using six)

2014-03-13 Thread Joe Gordon
On Thu, Mar 13, 2014 at 7:50 AM, Joe Hakim Rahme <
joe.hakim.ra...@enovance.com> wrote:

> On 10 Mar 2014, at 22:54, David Kranz  wrote:
>
> > There are a number of patches up for review that make various changes to
> use "six" apis instead of Python 2 constructs. While I understand the
> desire to get a head start on getting Tempest to run in Python 3, I'm not
> sure it makes sense to do this work piecemeal until we are near ready to
> introduce a py3 gate job. Many contributors will not be aware of what all
> the differences are and py2-isms will creep back in resulting in more
> overall time spent making these changes and reviewing. Also, the core
> review team is busy trying to do stuff important to the icehouse release
> which is barely more than 5 weeks away. IMO we should hold off on various
> kinds of "cleanup" patches for now.
>
> +1 I agree with you David.
>
> However, what's the best way we can go about making sure to make this a
> goal for the next release cycle?
>

On a related note, we have been -2ing these patches in nova until there is
a plan to get all the dependencies python3 compatible.


>
> ---
> Joe H. Rahme
> IRC: rahmu
>
>
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [qa] Python 3.3 patches (using six)

2014-03-13 Thread Joe Hakim Rahme
On 10 Mar 2014, at 22:54, David Kranz  wrote:

> There are a number of patches up for review that make various changes to use 
> "six" apis instead of Python 2 constructs. While I understand the desire to 
> get a head start on getting Tempest to run in Python 3, I'm not sure it makes 
> sense to do this work piecemeal until we are near ready to introduce a py3 
> gate job. Many contributors will not be aware of what all the differences are 
> and py2-isms will creep back in resulting in more overall time spent making 
> these changes and reviewing. Also, the core review team is busy trying to do 
> stuff important to the icehouse release which is barely more than 5 weeks 
> away. IMO we should hold off on various kinds of "cleanup" patches for now.

+1 I agree with you David.

However, what’s the best way we can go about making sure to make this a
goal for the next release cycle?

---
Joe H. Rahme
IRC: rahmu


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [qa] Python 3.3 patches (using six)

2014-03-11 Thread li zheming
+1


2014-03-11 5:54 GMT+08:00 David Kranz :

> There are a number of patches up for review that make various changes to
> use "six" apis instead of Python 2 constructs. While I understand the
> desire to get a head start on getting Tempest to run in Python 3, I'm not
> sure it makes sense to do this work piecemeal until we are near ready to
> introduce a py3 gate job. Many contributors will not be aware of what all
> the differences are and py2-isms will creep back in resulting in more
> overall time spent making these changes and reviewing. Also, the core
> review team is busy trying to do stuff important to the icehouse release
> which is barely more than 5 weeks away. IMO we should hold off on various
> kinds of "cleanup" patches for now.
>
>  -David
>
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [qa] Python 3.3 patches (using six)

2014-03-10 Thread David Kranz
There are a number of patches up for review that make various changes to 
use "six" apis instead of Python 2 constructs. While I understand the 
desire to get a head start on getting Tempest to run in Python 3, I'm 
not sure it makes sense to do this work piecemeal until we are near 
ready to introduce a py3 gate job. Many contributors will not be aware 
of what all the differences are and py2-isms will creep back in 
resulting in more overall time spent making these changes and reviewing. 
Also, the core review team is busy trying to do stuff important to the 
icehouse release which is barely more than 5 weeks away. IMO we should 
hold off on various kinds of "cleanup" patches for now.


 -David

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev