This is our whiteboard for handling the Quantum -> Neutron transition.
Summary: Starting with the Havana release, the OpenStack Networking project's code name is Neutron. Quantum is no longer used.
Renaming projects "quantum" and "python-quantumclient":
- Rename request at: https://answers.launchpad.net/launchpad/+question/231396 (ttx): DONE
- Temporarily link Quantum repo changes to Neutron LP projects (ttx): https://review.openstack.org/34549 : DONE
- Adjust project descriptions (ttx): DONE
- Rename quantum teams in Launchpad (ttx): DONE
- Adjust releasestatus list of projects (ttx): https://review.openstack.org/34697 : DONE
- quantum-core team can't be renamed yet because they use a mailing-list: BLOCKED
Note below that I use "the server repo" or "the client repo" to refer to the "quantum/neutron" or "python-quantumclient/python-neutronclient" repos respectively in steps that can be performed either before or after the rename. These steps can be begun immediately: 1) In the server repo, merge a change that duplicates entry-points and binary names, and reads configuration files from both locations/names. 1b) After this change has merged, at any point, devstack can start using the alternates. 2) Make a quantumclient branch in the client repo based on current master. We'll use this later to upload the transition package. 3) Merge a change to the master branch of the client repo that renames everything to neturonclient. Since this will no longer satisfy the python-quantumclient requirement in other projects in devstack-gate (such as nova), those tests will start pip installing it from pypi. So this code will effectively be un-tested in devstack-gate at this point, but that's fine since nothing is using it. It should pass its own unit tests of course. 4) Tag the master branch of the client repo and (manually if needed) upload to pypi as python-neutronclient. 5) Add python-neutronclient to openstack/requirements. At this point, client-consuming projects (you listed Nova, Horizon, Ceilometer and Heat) can start consuming python-neutronclient because it will be available in our mirror. If either quantumclient or neutronclient is needed by a devstack-gate project, it will be installed via pip, as mentioned above. The repo rename operation (scheduled for July 6) can happen at any point during the previous steps, and itself consists of the following steps: A) Stop gerrit and rename quantum and python-quantumclient repos. B) Force push a change to devstack that renames quantum and python-quantumclient repos (just the repos, no commands or config file changes (those are covered by step 1b)). C) Force push a similar change to devstack-gate. The following steps must happen after the repo rename and after all projects have moved to using neutronclient: 6) Merge a change to the quantumclient branch of python-neutronclient that requires and imports neutronclient and provides shims and import warnings. 7) Tag and manually upload to pypi as python-quantumclient. 8) Remove python-quantumclient from requirements.
python-quantumclient > python-neutronclient
- July 2nd: Freeze python-quantumclient for prep work for client library renaming.
- July 6th: Repo rename
- After July 6th: Repo open for changes again.
quantum > neutron
- Repo moved to http://github.com/openstack/neutron.git
- Top-level module moved to neutron.* module. Other internal variable/class names changes for s/quantum/neutron/.
- Maintains config compatibility with Grizzly configuration files.
- For best results, values that referred to classes (ie quantum.plugins.*) should have their values changed.
Integrated Projects using the Client
How to rename existing patches
(1) Get neutron code base. (You can also use git remove add command)
git clone https://github.com/openstack/neutron
(2) Get patch
git review -d patch_id
git rebase -i master # (Fix the conflicts)
(4) Renaming quantum to neutron
Note: make sure you use "git mv" when you rename files/directories Note: there a few plugins were quantum_* is actually exchanged with the backend TIPS: Flake8 is really helpful for this
(5) Make sure UT is running (6) Make sure integration test is OK