swiftonhpss/doc/markdown/openstack_swift_sync.md
Prashanth Pai 2ccd2c4d96 Sync with OpenStack Swift v1.13.0
Also, bumped version of gluster-swift to v1.13.0

Change-Id: I797dc704c9523540cba847b1e8ff3da97b79630c
Signed-off-by: Prashanth Pai <ppai@redhat.com>
Reviewed-on: http://review.gluster.org/7229
Reviewed-by: Chetan Risbud <crisbud@redhat.com>
Reviewed-by: Luis Pabon <lpabon@redhat.com>
Tested-by: Luis Pabon <lpabon@redhat.com>
2014-03-13 05:09:19 -07:00

2.2 KiB

Syncing Gluster-Swift with Swift

Create a release

Create a release in launchpad.net so that we can place the latest swift source for download. We'll place the source here, and it will allow tox in gluster-swift to download the latest code.

Upload swift release

  • Clone the git swift repo
  • Go to the release tag or just use the latest
  • Type the following to package the swift code:
$ python setup.py sdist
$ ls dist
  • Take the file in the dist directory and upload it to the new release we created it on launchpad.net.
  • Alternatively, if we are syncing with a Swift version which is already released, we can get the tar.gz file from Swift launchpad page and upload the same to gluster-swift launchpad.

Setup Tox

Now that the swift source is availabe on launchpad.net, copy its link location and update tox.ini in gluster-swift with the new link.

Update tests

This part is a little more complicated and now we need to merge the latest tests with ours.

meld is a great tool to make this work easier. The 3-way comparison feature of meld comes handy to compare 3 version of same file from:

  • Latest swift (say v1.13)
  • Previous swift (say v1.12)
  • gluster-swift (v1.12)

Files that need to be merged:

  • Update unit tests
$ export SWIFTDIR=../swift
$ meld $SWIFTDIR/tox.ini tox.ini
$ meld $SWIFTDIR/test-requirements.txt tools/test-requires
$ meld $SWIFTDIR/requirements.txt tools/requirements.txt
$ meld $SWIFTDIR/test/unit/proxy/test_servers.py test/unit/proxy/test_server.py
$ cp $SWIFTDIR/test/unit/proxy/controllers/*.py test/unit/proxy/controllers
$ meld $SWIFTDIR/test/unit/__init__.py test/unit/__init__.py
  • Update all the functional tests First check if there are any new files in the swift functional test directory. If there are, copy them over.

  • Remember to git add any new files

  • Now merge the existing ones:

for i in $SWIFTDIR/test/functional/*.py ; do
    meld $i test/functional/`basename $i`
done

Update the version

If needed, update the version now in gluster/swift/__init__.py.

Upload the patch

Upload the patch to Gerrit.

Update the release in launchpad.net

Upload the gluster-swift*.tar.gz built by Jenkins to launchpad.net once the fix has been commited to the main branch.