[dev][goal][python3][qa][devstack][ptl] changing devstack's python 3 behavior
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled. As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3. If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change). [1] https://review.openstack.org/#/c/622415/ -- Doug
On 12/5/18 1:27 PM, Doug Hellmann wrote:
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled.
As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3.
If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change).
For Oslo, do we need to test every project or can we just do the devstack plugins and maybe one other as a sanity check? Since we don't own any devstack services this doesn't directly affect us, right?
Ben Nemec <openstack@nemebean.com> writes:
On 12/5/18 1:27 PM, Doug Hellmann wrote:
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled.
As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3.
If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change).
For Oslo, do we need to test every project or can we just do the devstack plugins and maybe one other as a sanity check? Since we don't own any devstack services this doesn't directly affect us, right?
Given that we've been testing nova and cinder under python 3 for a while now I think it's probably safe to assume Oslo is working OK. This change is mostly about the fact that we were failing to install *all* of the services under python 3 by default. The existing library forward-testing jobs should handle future testing because they will install all of the services as well as the library under test using python 3. If you want to be extra careful, you could propose a patch to some of the more complicated libs (oslo.messaging and oslo.service come to mind) that depends on the patch above to ensure that those libraries don't trigger failures in the jobs. -- Doug
On 12/10/18 12:43 PM, Doug Hellmann wrote:
Ben Nemec <openstack@nemebean.com> writes:
On 12/5/18 1:27 PM, Doug Hellmann wrote:
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled.
As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3.
If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change).
For Oslo, do we need to test every project or can we just do the devstack plugins and maybe one other as a sanity check? Since we don't own any devstack services this doesn't directly affect us, right?
Given that we've been testing nova and cinder under python 3 for a while now I think it's probably safe to assume Oslo is working OK. This change is mostly about the fact that we were failing to install *all* of the services under python 3 by default. The existing library forward-testing jobs should handle future testing because they will install all of the services as well as the library under test using python 3.
If you want to be extra careful, you could propose a patch to some of the more complicated libs (oslo.messaging and oslo.service come to mind) that depends on the patch above to ensure that those libraries don't trigger failures in the jobs.
Okay, sounds good. I have test patches proposed under https://review.openstack.org/#/q/topic:test-devstack-py3+(status:open+OR+sta...) Some have already passed so I think we're in good shape, but we'll see what happens with the others.
Doug Hellmann <doug@doughellmann.com> writes:
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled.
As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3.
If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change).
[1] https://review.openstack.org/#/c/622415/ -- Doug
We have had a few +1 votes on the patch above with comments that indicate at least a couple of projects have taken the time to test and verify that things won't break for them with the change. Are we ready to proceed with merging the change? -- Doug
Doug Hellmann <doug@doughellmann.com> writes:
Doug Hellmann <doug@doughellmann.com> writes:
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled.
As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3.
If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change).
[1] https://review.openstack.org/#/c/622415/ -- Doug
We have had a few +1 votes on the patch above with comments that indicate at least a couple of projects have taken the time to test and verify that things won't break for them with the change.
Are we ready to proceed with merging the change?
-- Doug
The patch mentioned above that changes the default version of Python in devstack to 3 by default has merged. If this triggers a failure in your devstack-based jobs, you can use the disable_python3_package function to add your package to the list *not* installed using Python 3 until the fixes are available. -- Doug
Hi, Just to be sure, does it mean that we don’t need to add USE_PYTHON3=True to run job on python3, right? — Slawek Kaplonski Senior software engineer Red Hat
Wiadomość napisana przez Doug Hellmann <doug@doughellmann.com> w dniu 09.01.2019, o godz. 20:57:
Doug Hellmann <doug@doughellmann.com> writes:
Doug Hellmann <doug@doughellmann.com> writes:
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled.
As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3.
If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change).
[1] https://review.openstack.org/#/c/622415/ -- Doug
We have had a few +1 votes on the patch above with comments that indicate at least a couple of projects have taken the time to test and verify that things won't break for them with the change.
Are we ready to proceed with merging the change?
-- Doug
The patch mentioned above that changes the default version of Python in devstack to 3 by default has merged. If this triggers a failure in your devstack-based jobs, you can use the disable_python3_package function to add your package to the list *not* installed using Python 3 until the fixes are available.
-- Doug
On Wednesday, 9 January 2019 20:57:09 CET Doug Hellmann wrote:
Doug Hellmann <doug@doughellmann.com> writes:
Doug Hellmann <doug@doughellmann.com> writes:
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled.
As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3.
If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change).
We have had a few +1 votes on the patch above with comments that indicate at least a couple of projects have taken the time to test and verify that things won't break for them with the change.
Are we ready to proceed with merging the change?
The patch mentioned above that changes the default version of Python in devstack to 3 by default has merged. If this triggers a failure in your devstack-based jobs, you can use the disable_python3_package function to add your package to the list *not* installed using Python 3 until the fixes are available.
Isn't the purpose of the patch to make sure that all services are installed using Python 3 when Python 3 is enabled, but that we still need to set USE_PYTHON3=True? Ciao -- Luigi
Luigi Toscano <ltoscano@redhat.com> writes:
On Wednesday, 9 January 2019 20:57:09 CET Doug Hellmann wrote:
Doug Hellmann <doug@doughellmann.com> writes:
Doug Hellmann <doug@doughellmann.com> writes:
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled.
As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3.
If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change).
We have had a few +1 votes on the patch above with comments that indicate at least a couple of projects have taken the time to test and verify that things won't break for them with the change.
Are we ready to proceed with merging the change?
The patch mentioned above that changes the default version of Python in devstack to 3 by default has merged. If this triggers a failure in your devstack-based jobs, you can use the disable_python3_package function to add your package to the list *not* installed using Python 3 until the fixes are available.
Isn't the purpose of the patch to make sure that all services are installed using Python 3 when Python 3 is enabled, but that we still need to set USE_PYTHON3=True?
Ciao -- Luigi
It is still necessary to set USE_PYTHON3=True in the job. The logic enabled by that flag used to *also* require each service to individually enable python 3 testing. Now that is no longer true, and services must explicitly *disable* python 3 if it is not supported. The USE_PYTHON3 flag allows us to have 2 jobs, with devstack running under python 2 and python 3. When we drop python 2 support, we can drop the USE_PYTHON3 flag from devstack and always run under python 3. (We could do that before we drop support for 2, but we would have to modify a lot of job configurations and I'm not sure it buys us much given the amount of effort involved there.) -- Doug
Hi, Thx for clarification Doug. — Slawek Kaplonski Senior software engineer Red Hat
Wiadomość napisana przez Doug Hellmann <doug@doughellmann.com> w dniu 09.01.2019, o godz. 21:55:
Luigi Toscano <ltoscano@redhat.com> writes:
On Wednesday, 9 January 2019 20:57:09 CET Doug Hellmann wrote:
Doug Hellmann <doug@doughellmann.com> writes:
Doug Hellmann <doug@doughellmann.com> writes:
Today devstack requires each project to explicitly indicate that it can be installed under python 3, even when devstack itself is running with python 3 enabled.
As part of the python3-first goal, I have proposed a change to devstack to modify that behavior [1]. With the change in place, when devstack runs with python3 enabled all services are installed under python 3, unless explicitly listed as not supporting python 3.
If your project has a devstack plugin or runs integration or functional test jobs that use devstack, please test your project with the patch (you can submit a trivial change to your project and use Depends-On to pull in the devstack change).
We have had a few +1 votes on the patch above with comments that indicate at least a couple of projects have taken the time to test and verify that things won't break for them with the change.
Are we ready to proceed with merging the change?
The patch mentioned above that changes the default version of Python in devstack to 3 by default has merged. If this triggers a failure in your devstack-based jobs, you can use the disable_python3_package function to add your package to the list *not* installed using Python 3 until the fixes are available.
Isn't the purpose of the patch to make sure that all services are installed using Python 3 when Python 3 is enabled, but that we still need to set USE_PYTHON3=True?
Ciao -- Luigi
It is still necessary to set USE_PYTHON3=True in the job. The logic enabled by that flag used to *also* require each service to individually enable python 3 testing. Now that is no longer true, and services must explicitly *disable* python 3 if it is not supported.
The USE_PYTHON3 flag allows us to have 2 jobs, with devstack running under python 2 and python 3. When we drop python 2 support, we can drop the USE_PYTHON3 flag from devstack and always run under python 3. (We could do that before we drop support for 2, but we would have to modify a lot of job configurations and I'm not sure it buys us much given the amount of effort involved there.)
-- Doug
participants (4)
-
Ben Nemec
-
Doug Hellmann
-
Luigi Toscano
-
Slawomir Kaplonski