From 8208b466fefa3e0e09aa9c6806ba6597e795a63b Mon Sep 17 00:00:00 2001 From: Tyler Hobbs Date: Wed, 29 Jan 2014 12:59:28 -0600 Subject: [PATCH] Bump version to 1.0.0, update changelog, setup.py, README Hooray! --- CHANGELOG.rst | 17 +++++- README.rst | 124 +++++++++--------------------------------- cassandra/__init__.py | 2 +- docs/conf.py | 2 +- setup.py | 2 +- 5 files changed, 46 insertions(+), 101 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 0cd2a0aa..699c4fdd 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,6 @@ 1.0.0 Final =========== -(In Progress) +Jan 29, 2014 Bug Fixes --------- @@ -21,6 +21,14 @@ Bug Fixes * Properly defunct connections when libev reports an error by setting errno instead of simply logging the error * Fix endless hanging of some requests when using the libev reactor +* Always start a reconnection process when we fail to connect to + a newly bootstrapped node +* Generators map to CQL lists, not key sequences +* Always defunct connections when an internal operation fails +* Correctly break from handle_write() if nothing was sent (asyncore + reactor only) +* Avoid potential double-erroring of callbacks when a connection + becomes defunct Features -------- @@ -28,6 +36,8 @@ Features * Add timeout parameter to ``Session.execute()`` * Add ``WhiteListRoundRobinPolicy`` as a load balancing policy option * Support for consistency level ``LOCAL_ONE`` +* Make the backoff for fetching traces exponentially increasing and + configurable Other ----- @@ -38,6 +48,11 @@ Other * Benchmark improvements, including command line options and eay multithreading support * Reduced lock contention when using the asyncore reactor +* Warn when non-datetimes are used for 'timestamp' column values in + prepared statements +* Add requirements.txt and test-requirements.txt +* TravisCI integration for running unit tests against Python 2.6, + Python 2.7, and PyPy 1.0.0b7 ======= diff --git a/README.rst b/README.rst index e10f23bc..c6242208 100644 --- a/README.rst +++ b/README.rst @@ -8,17 +8,35 @@ A Python client driver for Apache Cassandra. This driver works exclusively with the Cassandra Query Language v3 (CQL3) and Cassandra's native protocol. As such, only Cassandra 1.2+ is supported. -**Warning** +Installation +------------ +Installation through pip is recommended:: -This driver is currently under heavy development, so the API and layout of -packages, modules, classes, and functions are subject to change. There may -also be serious bugs, so usage in a production environment is *not* -recommended at this time. + $ pip install cassandra-driver -* `JIRA `_ -* `Mailing List `_ -* IRC: #datastax-drivers on irc.freenode.net (you can use `freenode's web-based client `_) -* `Documentation `_ +For more complete installation instructions, see the +`installation guide `_. + +Documentation +------------- +All documentation for the python driver, including installation details, API documentation, +and a Getting Started guide, can be found `here `_. + +Reporting Problems +------------------ +Please report any bugs and make any feature requests on the +`JIRA `_ issue tracker. + +If you would like to contribute, please feel free to open a pull request. + +Getting Help +------------ +Your two best options for getting help with the driver are the +`mailing list `_ +and the IRC channel. + +For IRC, use the #datastax-drivers channel on irc.freenode.net. If you don't have an IRC client, +you can use `freenode's web-based client `_. Features to be Added -------------------- @@ -27,94 +45,6 @@ Features to be Added * Python 3 support * IPv6 Support -Installation ------------- -If you would like to use the optional C extensions, please follow -the instructions in the section below before installing the driver. - -Installation through pip is recommended:: - - $ pip install cassandra-driver --pre - -If you want to install manually, you can instead do:: - - $ pip install futures scales blist # install dependencies - $ python setup.py install - -C Extensions -^^^^^^^^^^^^ -By default, two C extensions are compiled: one that adds support -for token-aware routing with the Murmur3Partitioner, and one that -allows you to use libev for the event loop, which improves performance. - -When running setup.py, you can disable both with the ``--no-extensions`` -option, or selectively disable one or the other with ``--no-murmur3`` and -``--no-libev``. - -To compile the extenions, ensure that GCC and the Python headers are available. - -On Ubuntu and Debian, this can be accomplished by running:: - - $ sudo apt-get install build-essential python-dev - -On RedHat and RedHat-based systems like CentOS and Fedora:: - - $ sudo yum install gcc python-devel - -On OS X, homebrew installations of Python should provide the necessary headers. - -libev support -^^^^^^^^^^^^^ -The driver currently uses Python's ``asyncore`` module for its default -event loop. For better performance, ``libev`` is also supported through -a C extension. - -If you're on Linux, you should be able to install libev -through a package manager. For example, on Debian/Ubuntu:: - - $ sudo apt-get install libev4 libev-dev - -On RHEL/CentOS/Fedora:: - - $ sudo yum install libev libev-devel - -If you're on Mac OS X, you should be able to install libev -through `Homebrew `_. For example, on Mac OS X:: - - $ brew install libev - -If successful, you should be able to build and install the extension -(just using ``setup.py build`` or ``setup.py install``) and then use -the libev event loop by doing the following: - -.. code-block:: python - - >>> from cassandra.io.libevreactor import LibevConnection - >>> from cassandra.cluster import Cluster - - >>> cluster = Cluster() - >>> cluster.connection_class = LibevConnection - >>> session = cluster.connect() - -Compression Support -^^^^^^^^^^^^^^^^^^^ -Compression can optionally be used for communication between the driver and -Cassandra. There are currently two supported compression algorithms: -snappy (in Cassandra 1.2+) and LZ4 (only in Cassandra 2.0+). If either is -available for the driver and Cassandra also supports it, it will -be used automatically. - -For lz4 support:: - - $ pip install lz4 - -For snappy support:: - - $ pip install python-snappy - -(If using a Debian Linux derivative such as Ubuntu, it may be easier to -just run ``apt-get install python-snappy``.) - License ------- Copyright 2013, DataStax diff --git a/cassandra/__init__.py b/cassandra/__init__.py index febe0cd4..1f69ec40 100644 --- a/cassandra/__init__.py +++ b/cassandra/__init__.py @@ -9,7 +9,7 @@ class NullHandler(logging.Handler): logging.getLogger('cassandra').addHandler(NullHandler()) -__version_info__ = (1, 0, '0b7', 'post') +__version_info__ = (1, 0, '0') __version__ = '.'.join(map(str, __version_info__)) diff --git a/docs/conf.py b/docs/conf.py index 46fdb242..3bc211bd 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -43,7 +43,7 @@ master_doc = 'index' # General information about the project. project = u'Cassandra Driver' -copyright = u'2013, DataStax' +copyright = u'2014, DataStax' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/setup.py b/setup.py index 72a23ce6..9a00de93 100644 --- a/setup.py +++ b/setup.py @@ -165,7 +165,7 @@ def run_setup(extensions): install_requires=dependencies, tests_require=['nose', 'mock', 'ccm', 'unittest2', 'PyYAML'], classifiers=[ - 'Development Status :: 4 - Beta', + 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Natural Language :: English',