Jump to: navigation, search

Network/neutron-renaming

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.

Launchpad projects

Renaming projects "quantum" and "python-quantumclient":

Code Repositories

 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

  • tbd

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

(3) Rebase

   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