Difference between revisions of "Python3/SprintPycon2014"
(→Synchronize work on OpenStack components) |
|||
(45 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Victor Stinner organizes a sprint to Port OpenStack to Python 3 during 4 days at Montreal (Canada) during Pycon Montreal 2014: between April, 14 (Monday) and April, 17 (Thursday). See [https://us.pycon.org/2014/community/sprints/ Pycon Montreal 2014 sprints]. | |
== What == | == What == | ||
− | The ultimate goal is to port the whole OpenStack project to Python 3. The goal of the sprint is to send patches to port as much code as possible, | + | The ultimate goal is to port the whole OpenStack project to Python 3. The goal of the sprint is to port OpenStack components and OpenStack dependencies to Python 3, send patches to port as much code as possible. |
+ | |||
+ | If you don't know OpenStack at all, please join us to port modules to Python 3: MySQL-python, boto (see boto3), etc. | ||
+ | |||
+ | Or come to help us replacing eventlet with Trollius! | ||
== Who == | == Who == | ||
Line 21: | Line 25: | ||
== Requirements == | == Requirements == | ||
+ | * Good knowledge of Python | ||
* Bring a laptop | * Bring a laptop | ||
− | * | + | * Create an account on Launchpad: [https://login.launchpad.net/+new_account Launchpad: new account] -- Launchpad is used as OpenID provider, it is at least needed to edit this wiki page, used for the sprint |
− | * Basic | + | |
− | * | + | To contribute to OpenStack: |
+ | |||
+ | * Basic knowledge of OpenStack | ||
+ | * [http://devstack.org/ Install DevStack] (small setup of OpenStack written to hack OpenStack) | ||
+ | * and OpenStack projects, sign the CLA (can be done during the sprint) | ||
+ | ** [https://www.openstack.org/join/register/ Join The OpenStack Foundation: Individual Member (Free)] | ||
+ | ** [https://review.openstack.org/ Login on review.openstack.org] and [https://review.openstack.org/#/settings/ssh-keys upload your SSH key] | ||
+ | |||
+ | == Getting started == | ||
+ | |||
+ | We will focus on [https://github.com/openstack/oslo-incubator/ Oslo Incubator], so start by cloning the repository: | ||
+ | |||
+ | git clone https://github.com/openstack/oslo-incubator.git | ||
+ | |||
+ | Enter oslo-incubator directory, edit requirements.txt to comment "eventlet" line. | ||
+ | |||
+ | cd oslo-incubator | ||
+ | vim requirements.txt # comment eventlet line, save, exit | ||
+ | |||
+ | Install [https://pypi.python.org/pypi/tox tox]: | ||
+ | |||
+ | pip install tox==1.6.1 | ||
+ | |||
+ | Finally, run unit tests using [https://pypi.python.org/pypi/tox tox] (pip install tox): | ||
+ | |||
+ | tox -e py33 | ||
+ | |||
+ | If you would like to run a specific unit test: | ||
+ | |||
+ | $ . .tox/py33/bin/activate | ||
+ | $ python -m testtools.run tests.unit.test_cliutils | ||
+ | |||
+ | Or you may try: | ||
+ | |||
+ | $ . .tox/py33/bin/activate | ||
+ | $ nosetests tests/unit/test_cliutils.py | ||
+ | |||
+ | See also http://haypo-notes.readthedocs.org/openstack.html#tests | ||
+ | |||
+ | == Port OpenStack components to Python 3 == | ||
+ | |||
+ | First, see [[Python3#OpenStack_clients]] for the latest status. | ||
+ | |||
+ | * oslo incubator: see https://wiki.openstack.org/wiki/Python3#Oslo_Incubator | ||
+ | * oslo.messaging | ||
+ | * swiftclient is almost done | ||
+ | * glanceclient | ||
+ | * neutronclient | ||
+ | * savannaclient | ||
+ | |||
+ | Other tasks: | ||
+ | |||
+ | * Replace nose with testr | ||
+ | * Horizon: Replace oslo.sphinx with oslosphinx (drop the dot) | ||
+ | * Replace eventlet with trollius! (very complex right now) | ||
+ | |||
+ | == Port OpenStack dependencies to Python 3 == | ||
+ | |||
+ | First, see [[Python3#Dependencies]] for the latest status. | ||
+ | |||
+ | * boto: https://github.com/boto/boto/pull/1156 - I sent this PR a long time ago but it hasn't gotten traction. I think the boto team wants to completely rewrite boto (boto3) and do Python 3 support there. i expect that to fracture the community and double the maintenance load (much like Python 3 ;-)) but I think that was what he was leaning towards. You might consider voting for Python 3 support in plain old boto in that PR or on the mailing list... | ||
+ | * jsonrpclib | ||
+ | * mysql-python: 2 pending pull requests: | ||
+ | * https://github.com/farcepest/MySQLdb1/pull/31 | ||
+ | * https://github.com/farcepest/MySQLdb1/pull/48 | ||
+ | * oslosphinx: https://review.openstack.org/#/c/79311/ | ||
+ | * pycadf | ||
+ | * python-ldap | ||
+ | * qpid-python | ||
+ | * rtslib-fb | ||
+ | * sphinxcontrib-docbookrestapi | ||
+ | * sphinxcontrib-httpdomain | ||
+ | * sphinxcontrib-pecanwsme | ||
+ | * sqlalchemy-migrate (in progress) | ||
+ | * suds | ||
+ | * thrift | ||
+ | * websockify | ||
== Document == | == Document == | ||
Line 36: | Line 117: | ||
* [http://techs.enovance.com/6521/openstack_python3 Why should OpenStack move to Python 3 right now?] | * [http://techs.enovance.com/6521/openstack_python3 Why should OpenStack move to Python 3 right now?] | ||
− | == | + | == Synchronizations == |
+ | |||
+ | === IRC === | ||
+ | |||
+ | The IRC channel #openstack-pycon of the IRC server Freenode will be used during the sprint. | ||
+ | |||
+ | === Participants === | ||
+ | |||
+ | * Chmouel Boudjnah | ||
+ | * Cyril Roelandt (remote) | ||
+ | * Doug Hellman (will review patches, remote) | ||
+ | * Julien Danjou (interested to review patches, remote) | ||
+ | * Frederic Lepied | ||
+ | * Victor Stinner (organizer) | ||
+ | * Éric Araujo (Wednesday) | ||
+ | |||
+ | === Synchronize work on OpenStack components === | ||
Any change in OpenStack must be carefully reviewed. Don't expect to see your changes commited immediatly, you will probably have to discuss with the "core developers" of each project to enhance your patch, to make it fit the coding style of the project. | Any change in OpenStack must be carefully reviewed. Don't expect to see your changes commited immediatly, you will probably have to discuss with the "core developers" of each project to enhance your patch, to make it fit the coding style of the project. | ||
Line 43: | Line 140: | ||
* <component>: <developer name> | * <component>: <developer name> | ||
+ | |||
+ | If you send a patch, please add it to the list below. | ||
+ | |||
+ | * oslo-incubator: https://review.openstack.org/#/c/87336/ | ||
+ | * oslo-incubator: https://review.openstack.org/#/c/87376/ | ||
+ | * oslo-incubator: https://review.openstack.org/#/c/87404/ | ||
+ | * oslo-incubator: https://review.openstack.org/#/c/87413/ | ||
+ | * oslo-incubator: https://review.openstack.org/#/c/88087/ | ||
+ | * oslo-incubator: https://review.openstack.org/#/c/87973/ | ||
+ | * oslo-incubator: https://review.openstack.org/#/c/88124/ | ||
+ | * oslo-incubator: https://review.openstack.org/#/c/74433/ | ||
+ | * oslo-incubator: https://review.openstack.org/#/c/74728/ | ||
+ | * swiftclient: https://review.openstack.org/#/c/87287/ | ||
+ | * swiftclient: https://review.openstack.org/#/c/84104/ | ||
+ | * swiftclient: https://review.openstack.org/#/c/84102/ | ||
+ | * swiftclient: https://review.openstack.org/#/c/87772/ | ||
+ | * swiftclient: https://review.openstack.org/#/c/88351/ | ||
+ | |||
+ | === Synchronize work on OpenStack dependencies === | ||
+ | |||
+ | If you want to work on an OpenStack dependency, please modify the list below: | ||
+ | |||
+ | * <python project>: <developer name> | ||
+ | |||
+ | If you send a patch, pull request, whatever, please add it to the list below: | ||
+ | |||
+ | * <project>: <url to patch> |
Latest revision as of 16:13, 17 April 2014
Victor Stinner organizes a sprint to Port OpenStack to Python 3 during 4 days at Montreal (Canada) during Pycon Montreal 2014: between April, 14 (Monday) and April, 17 (Thursday). See Pycon Montreal 2014 sprints.
Contents
What
The ultimate goal is to port the whole OpenStack project to Python 3. The goal of the sprint is to port OpenStack components and OpenStack dependencies to Python 3, send patches to port as much code as possible.
If you don't know OpenStack at all, please join us to port modules to Python 3: MySQL-python, boto (see boto3), etc.
Or come to help us replacing eventlet with Trollius!
Who
Anyone knowing Python and OpenStack can participate!
When
April, 14 (Monday) and April, 17 (Thursday).
The next major release of OpenStack is "Icehouse", scheduled for April, 17.
Where
Montreal, at Pycon Montreal 2014.
Requirements
- Good knowledge of Python
- Bring a laptop
- Create an account on Launchpad: Launchpad: new account -- Launchpad is used as OpenID provider, it is at least needed to edit this wiki page, used for the sprint
To contribute to OpenStack:
- Basic knowledge of OpenStack
- Install DevStack (small setup of OpenStack written to hack OpenStack)
- and OpenStack projects, sign the CLA (can be done during the sprint)
Getting started
We will focus on Oslo Incubator, so start by cloning the repository:
git clone https://github.com/openstack/oslo-incubator.git
Enter oslo-incubator directory, edit requirements.txt to comment "eventlet" line.
cd oslo-incubator vim requirements.txt # comment eventlet line, save, exit
Install tox:
pip install tox==1.6.1
Finally, run unit tests using tox (pip install tox):
tox -e py33
If you would like to run a specific unit test:
$ . .tox/py33/bin/activate $ python -m testtools.run tests.unit.test_cliutils
Or you may try:
$ . .tox/py33/bin/activate $ nosetests tests/unit/test_cliutils.py
See also http://haypo-notes.readthedocs.org/openstack.html#tests
Port OpenStack components to Python 3
First, see Python3#OpenStack_clients for the latest status.
- oslo incubator: see https://wiki.openstack.org/wiki/Python3#Oslo_Incubator
- oslo.messaging
- swiftclient is almost done
- glanceclient
- neutronclient
- savannaclient
Other tasks:
- Replace nose with testr
- Horizon: Replace oslo.sphinx with oslosphinx (drop the dot)
- Replace eventlet with trollius! (very complex right now)
Port OpenStack dependencies to Python 3
First, see Python3#Dependencies for the latest status.
- boto: https://github.com/boto/boto/pull/1156 - I sent this PR a long time ago but it hasn't gotten traction. I think the boto team wants to completely rewrite boto (boto3) and do Python 3 support there. i expect that to fracture the community and double the maintenance load (much like Python 3 ;-)) but I think that was what he was leaning towards. You might consider voting for Python 3 support in plain old boto in that PR or on the mailing list...
- jsonrpclib
- mysql-python: 2 pending pull requests:
* https://github.com/farcepest/MySQLdb1/pull/31 * https://github.com/farcepest/MySQLdb1/pull/48
- oslosphinx: https://review.openstack.org/#/c/79311/
- pycadf
- python-ldap
- qpid-python
- rtslib-fb
- sphinxcontrib-docbookrestapi
- sphinxcontrib-httpdomain
- sphinxcontrib-pecanwsme
- sqlalchemy-migrate (in progress)
- suds
- thrift
- websockify
Document
- Python 3 wiki page
- OpenStack Style Guidelines
- Documentation of the six module
- Port Python 2 code to Python 3
- Status of the OpenStack port to Python 3
- Use the new asyncio module and Trollius in OpenStack
- Why should OpenStack move to Python 3 right now?
Synchronizations
IRC
The IRC channel #openstack-pycon of the IRC server Freenode will be used during the sprint.
Participants
- Chmouel Boudjnah
- Cyril Roelandt (remote)
- Doug Hellman (will review patches, remote)
- Julien Danjou (interested to review patches, remote)
- Frederic Lepied
- Victor Stinner (organizer)
- Éric Araujo (Wednesday)
Synchronize work on OpenStack components
Any change in OpenStack must be carefully reviewed. Don't expect to see your changes commited immediatly, you will probably have to discuss with the "core developers" of each project to enhance your patch, to make it fit the coding style of the project.
If you want to work on a component (ex: neutron, nova, etc.), please write the component name with your name below:
- <component>: <developer name>
If you send a patch, please add it to the list below.
- oslo-incubator: https://review.openstack.org/#/c/87336/
- oslo-incubator: https://review.openstack.org/#/c/87376/
- oslo-incubator: https://review.openstack.org/#/c/87404/
- oslo-incubator: https://review.openstack.org/#/c/87413/
- oslo-incubator: https://review.openstack.org/#/c/88087/
- oslo-incubator: https://review.openstack.org/#/c/87973/
- oslo-incubator: https://review.openstack.org/#/c/88124/
- oslo-incubator: https://review.openstack.org/#/c/74433/
- oslo-incubator: https://review.openstack.org/#/c/74728/
- swiftclient: https://review.openstack.org/#/c/87287/
- swiftclient: https://review.openstack.org/#/c/84104/
- swiftclient: https://review.openstack.org/#/c/84102/
- swiftclient: https://review.openstack.org/#/c/87772/
- swiftclient: https://review.openstack.org/#/c/88351/
Synchronize work on OpenStack dependencies
If you want to work on an OpenStack dependency, please modify the list below:
- <python project>: <developer name>
If you send a patch, pull request, whatever, please add it to the list below:
- <project>: <url to patch>