3.7 KiB
Releasing
Run the tests and ensure they all pass
If dependencies have changed, make sure
debian/controlis up to dateMake sure all patches in
debian/patchesstill apply cleanlyUpdate CHANGELOG.rst
Update the version in
cassandra/__init__.pyCommit the changelog and version changes
Tag the release. For example:
git tag -a 1.0.0 -m 'version 1.0.0'Push the commit and tag:
git push --tags origin masterUpload the package to pypi:
python setup.py register python setup.py sdist uploadUpdate the docs (see below)
Append a 'post' string to the version tuple in
cassandra/__init__.pyso that it looks like(x, y, z, 'post')Commit and push
Building the Docs
Sphinx is required to build the docs. You probably want to install through apt, if possible:
sudo apt-get install python-sphinx
pip may also work:
sudo pip install -U Sphinx
To build the docs, run:
python setup.py doc
To upload the docs, checkout the gh-pages branch (it's
usually easier to clone a second copy of this repo and leave it on that
branch) and copy the entire contents all of
docs/_build/X.Y.Z/* into the root of the
gh-pages branch and then push that branch to github.
For example:
python setup.py doc
cp -R docs/_build/1.0.0-beta1/* ~/python-driver-docs/
cd ~/python-driver-docs
git add --all
git commit -m 'Update docs'
git push origin gh-pages
Running the Tests
In order for the extensions to be built and used in the test, run:
python setup.py nosetests
You can run a specific test module or package like so:
python setup.py nosetests -w tests/unit/
You can run a specific test method like so:
python setup.py nosetests -w tests/unit/test_connection.py:ConnectionTest.test_bad_protocol_version
Seeing Test Logs in Real Time
Sometimes it's useful to output logs for the tests as they run:
python setup.py nosetests -w tests/unit/ --nocapture --nologcapture
Use tee to capture logs and see them on your terminal:
python setup.py nosetests -w tests/unit/ --nocapture --nologcapture 2>&1 | tee test.log
Specifying a Cassandra Version for Integration Tests
You can specify a cassandra version with the
CASSANDRA_VERSION environment variable:
CASSANDRA_VERSION=2.0.9 python setup.py nosetests -w tests/integration/standard
You can also specify a cassandra directory (to test unreleased versions):
CASSANDRA_DIR=/home/thobbs/cassandra python setup.py nosetests -w tests/integration/standard
Specify a Protocol Version for Tests
The protocol version defaults to 1 for cassandra 1.2 and 2 otherwise.
You can explicitly set it with the PROTOCOL_VERSION
environment variable:
PROTOCOL_VERSION=3 python setup.py nosetests -w tests/integration/standard
Testing Multiple Python Versions
If you want to test all of python 2.6, 2.7, and pypy, use tox (this is what TravisCI runs):
tox
By default, tox only runs the unit tests because I haven't put in the effort to get the integration tests to run on TravicCI. However, the integration tests should work locally. To run them, edit the following line in tox.ini:
commands = {envpython} setup.py build_ext --inplace nosetests --verbosity=2 tests/unit/
and change tests/unit/ to tests/.
Running the Benchmarks
To run the benchmarks, pick one of the files under the
benchmarks/ dir and run it:
python benchmarks/future_batches.py
There are a few options. Use --help to see them all:
python benchmarks/future_batches.py --help