Skip to content

Latest commit

 

History

History
204 lines (158 loc) · 8.12 KB

RELEASE_NOTES.md

File metadata and controls

204 lines (158 loc) · 8.12 KB

Riak Python Client Release Notes

2.0.2 Patch release - 2013-11-18

Release 2.0.2 includes support for the 1.4.1+ "timeout" option on secondary index queries.

2.0.1 Patch release - 2013-08-28

Release 2.0.1 includes a minor compatibility fix for Python 2.6 and an updated README.

2.0.0 Feature Release - 2013-07-30

Release 2.0 is the culmination of many months of rearchitecting the client. Highlights:

  • Automatic connection to multiple nodes, with request retries, through a thread-safe connection pool.
  • All Riak 1.3 and 1.4 features, including bucket properties, paginating and streaming secondary indexes, CRDT counters, client-specified timeouts, and more.
  • Cleaner, more Pythonic access to RiakObject and RiakBucket attributes, favoring properties over methods where possible.
  • Simpler representations of links (3-tuples) and index entries (2-tuples).
  • Streaming requests (keys, buckets, MapReduce, 2i) are now exposed as iterators.
  • Feature detection prevents sending requests to hosts that can't handle them.
  • Better handling of siblings -- you don't have to request them individually anymore -- and registrable resolver functions.
  • A new multiget operation that fetches a collection of keys using a pool background threads.
  • A more resilient, repeatable test suite that generates buckets and key names that are essentially random.
  • Last but not least, a brand new, more detailed documentation site!

Other features:

  • Added an encoder/decoder pair to support text/plain.
  • The Travis CI build will now install the latest Riak to run the suite against.

Other bugfixes:

  • The charset metadata can now be received via the Content-Type header on HTTP.
  • Objects with empty keys and buckets with empty names cannot be created or accessed, as they are unaddressable over HTTP.
  • Performance and compatibility of TestServer was improved.
  • Non-ASCII request bodies are better supported on HTTP.
  • Enabling and disabling search indexing on a bucket now uses the search bucket property.

1.5.2 Patch Release - 2013-01-31

Release 1.5.2 fixes some bugs and adds HTTPS/SSL support.

  • Added support for HTTPS.
  • Fixed writing of the app.config for the TestServer.
  • Reorganized the tests into multiple files and cases.
  • Some methods on RiakObject were made private where appropriate.
  • The version comparison used in feature detection was loosened to support pre-release versions of Riak.
  • Prevent fetching the protobuf package from Google Code.
  • Prefer simplejson over json when present.

1.5.1 Patch Release - 2012-10-24

Release 1.5.1 fixes one bug and some documentation errors.

  • Fix bug where http_status is used instead of http_code.
  • Fix documentation of RiakMapReduce.index method.
  • Fix documentation of RiakClient.__init__ method.

1.5.0 Feature Release - 2012-08-29

Release 1.5.0 is a feature release that supports Riak 1.2.

Noteworthy features:

  • Riak 1.2 features are now supported, including Search and 2I queries over Protocol Buffers transport. The Protocol Buffers message definitions now exist as a separate package, available on PyPi.

    NOTE: The return value of search queries over HTTP and MapReduce were changed to be compatible with the results returned from the Protocol Buffers interface.

  • The client will use a version-based feature detection scheme to enable or disable various features, including the new Riak 1.2 features. This enables compatibility with older nodes during a rolling upgrade, or usage of the newer client with older clusters.

Noteworthy bugfixes:

  • The code formatting and style was adjusted to fit PEP8 standards.
  • All classes in the package are now "new-style".
  • The PW accessor methods on RiakClient now get and set the right instance variable.
  • Various fixes were made to the TestServer and it will throw an exception when it fails to start.

1.4.1 Patch Release - 2012-06-19

Noteworthy features:

  • New Riak objects support Riak-created random keys

Noteworthy bugfixes:

  • Map Reduce queries now use "application/json" as the Content-Type

1.4.0 Feature Release - 2012-03-30

Release 1.4.0 is a feature release comprising over 117 individual commits.

Noteworthy features:

  • Python 2.6 and 2.7 are supported. On 2.6, the unittest2 package is required to run the test suite.
  • Google's official protobuf package (2.4.1 or later) is now a dependency. The package from downloads.basho.com/support is no longer necessary.
  • Travis-CI is enabled on the client. Go to http://travis-ci.org/basho/riak-python-client for build status.
  • Riak 1.0+ features, namely secondary indexes and primary quora (PR/PW), are supported.
  • if_none_match is a valid request option when storing objects, and will prevent the write when set to True if the key already exists.
  • Links can be set wholesale using the set_links() method.
  • Transport-specific options can be passed through when creating a Client object.
  • A connection manager was added that will (when manipulated manually) allow connections to multiple Riak nodes. This will be fully integrated in a future release.

Noteworthy bugfixes:

  • Links now use the proper URL-encoding in HTTP headers, preventing problems with explosion from multiple encoding passes.
  • Many fixes were applied to make the Protocol Buffers transport more stable.
  • RiakObject.get_content_type() will behave properly when content type is not set.
  • Deprecated transport classes were removed since their functionality had folded into the primary transports.
  • A temporary fix was made for unicode bucket/key names which raises an error when they are used and cannot be coerced to ASCII.
  • The Erlang sources/beams for the TestServer are now included in the package.
  • MapReduce failures will now produce a more useful error message and be handled properly when no results are returned.

There are lots of other great fixes from our wonderful community. Check them out!

1.3.0 Feature Release - 2011-08-04

Release 1.3.0 is a feature release bringing a slew of updates.

Noteworthy features:

  • #37: Support for the Riak Search HTTP Interface (Mathias Meyer)
  • #36: Support to store large files in Luwak (Mathias Meyer)
  • #35: Convenience methods to enable, disable and check search indexing on Riak buckets (Mathias Meyer)
  • #34: Port of Ripple's test server to Python, allows faster testing thanks to an in-memory Riak instance (Mathias Meyer)
  • #31: New transports: A Protocol Buffers connection cache (riak.transports.pbc.RiakPbcCacheTransport), a transport to reuse the underlying TCP connections by setting SO_REUSEADDR on the socket (riak.transports.http.RiakHttpReuseTransport), and one that tries to reuse connections to the same host (riak.transports.http.RiakHttpPoolTransport) (Gilles Devaux)

Fixes:

  • #33: Respect maximum link header size when using HTTP. Link header is now split up into multiple headers when it exceeds the maximum size of 8192 bytes. (Mathias Meyer)
  • #41: Connections potentially not returned to the protocol buffers connection pool. (Reid Draper)
  • #42: Reset protocol buffer connection up on connection error (Brett Hoerner)

1.2.2 Patch Release - 2011-06-22

Release 1.2.2 is a minor patch release.

Noteworthy fixes and improvements:

  • #29: Add an nicer API for using key filters with MapReduce (Eric Moritz)
  • #13 and #24: Let Riak generate a key when none is specified (Mark Erdmann)
  • #28: Function aliases for the Riak built-in MapReduce functions (Eric Moritz)
  • #20: Add a convenience method to create Riak object directly from file (Ana Nelson)
  • #16: Support return_body parameter when creating a new object (Stefan Praszalowicz, Andy Gross)
  • #17: Storing an object fails when it doesn't exist in Riak (Eric Moritz, Andy Gross)
  • #18: Ensure that a default content type is set when none specified (Andy Gross)
  • #22: Fix user meta data support (Mathias Meyer)
  • #23: Fix links to the wiki (Mikhail Sobolev)
  • #25: Enable support for code coverage when running tests (Mikhail Sobolev)
  • #26: Debian packaging (Dmitry Rozhkov)