|
| 1 | +# Riak Python Client Release Notes |
| 2 | + |
| 3 | +## 2.4.2 Patch Release - 2016-02-20 |
| 4 | + |
| 5 | +* [Fix SSL host name](https://github.com/basho/riak-python-client/pull/436) |
| 6 | +* [Use `riak-client-tools`](https://github.com/basho/riak-python-client/issues/434) |
| 7 | + |
| 8 | +## 2.4.1 Patch Release - 2016-02-03 |
| 9 | + |
| 10 | +* [Riak TS: Millisecond precision](https://github.com/basho/riak-python-client/issues/430) |
| 11 | +* [Fix release process](https://github.com/basho/riak-python-client/issues/429) |
| 12 | + |
| 13 | +## 2.4.0 Feature Release - 2016-01-13 |
| 14 | + |
| 15 | +This release enhances Riak Time Series functionality. |
| 16 | + |
| 17 | +* [Encapsulate table description](https://github.com/basho/riak-python-client/pull/422) |
| 18 | + |
| 19 | +## 2.3.0 Feature Release - 2015-12-14 |
| 20 | + |
| 21 | +Release 2.3.0 features support for new |
| 22 | +[time series](https://github.com/basho/riak-python-client/pull/416) |
| 23 | +functionality. |
| 24 | + |
| 25 | +This is release retires support for Python 2.6.x but adds support for |
| 26 | +Python 3.5.x. |
| 27 | + |
| 28 | +There are also many bugfixes and new enhancements: |
| 29 | + |
| 30 | +* [Protocol buffers are now integrated into the Python Client] |
| 31 | + (https://github.com/basho/riak-python-client/pull/418) |
| 32 | +* [Support for Preflists and Write-Once bucket types] |
| 33 | + (https://github.com/basho/riak-python-client/pull/414) |
| 34 | +* [Support Riak 2.1.1] |
| 35 | + (https://github.com/basho/riak-python-client/pull/407) |
| 36 | +* [Native SSL support for Python 2.7.9+] |
| 37 | + (https://github.com/basho/riak-python-client/pull/397) |
| 38 | + |
| 39 | + |
| 40 | +## 2.2.0 Feature Release - 2014-12-18 |
| 41 | + |
| 42 | +Release 2.2.0 features support for |
| 43 | +[Python 3](https://github.com/basho/riak-python-client/pull/379), |
| 44 | +specifically 3.3 and 3.4. This version uses the native SSL security instead |
| 45 | +of [pyOpenSSL](http://pypi.python.org/pypi/pyOpenSSL) which is required |
| 46 | +for the Python 2 series. |
| 47 | + |
| 48 | +This release also includes many bugfixes and enhancements, most |
| 49 | +notably: |
| 50 | + |
| 51 | +* [Fixed an issue with the implementation of `Mapping.__iter__`] |
| 52 | + (https://github.com/basho/riak-python-client/pull/367) |
| 53 | +* [Test client certificate generation updated] |
| 54 | + (https://github.com/basho/riak-python-client/pull/373) |
| 55 | +* [Protocol Buffers had a socket.send issue] |
| 56 | + (https://github.com/basho/riak-python-client/pull/382) |
| 57 | +* [Support for bucket types in Map/Reduce jobs added] |
| 58 | + (https://github.com/basho/riak-python-client/pull/385) |
| 59 | +* [Race condition in `RiakBucket` creation fixed] |
| 60 | + (https://github.com/basho/riak-python-client/pull/386) |
| 61 | +* [Data Types can now be deleted] |
| 62 | + (https://github.com/basho/riak-python-client/pull/387) |
| 63 | +* [2i Range Queries with a zero end index now work] |
| 64 | + (https://github.com/basho/riak-python-client/pull/388) |
| 65 | + |
| 66 | + |
| 67 | +## 2.1.0 Feature Release - 2014-09-03 |
| 68 | + |
| 69 | +Release 2.1.0 features support for Riak 2.0 capabilities including: |
| 70 | + |
| 71 | +* Bucket Types |
| 72 | +* Riak Data Types (CRDTs) |
| 73 | +* Search 2.0 (codename Yokozuna) |
| 74 | +* Security: SSL/TLS, Authentication, and Authorization |
| 75 | + |
| 76 | +As a result of the new security features, the package now depends on |
| 77 | +[pyOpenSSL](http://pypi.python.org/pypi/pyOpenSSL) and will warn if |
| 78 | +your version of OpenSSL is too old. |
| 79 | + |
| 80 | +This release also includes many bugfixes and enhancements, most |
| 81 | +notably: |
| 82 | + |
| 83 | +* The default protocol is now 'pbc', not 'http'. |
| 84 | +* When used correctly, streaming requests no longer result in leaks |
| 85 | + from the connection pool. |
| 86 | +* The size of the multiget worker pool can be set when initializing |
| 87 | + the client. |
| 88 | +* Secondary index queries can now iterate over all pages in a query. |
| 89 | +* The number of times a request is retried after network failure is |
| 90 | + now configurable. |
| 91 | +* The additional request options `basic_quorum` and `notfound_ok` are |
| 92 | + now supported. |
| 93 | + |
| 94 | +## 2.0.3 Patch Release - 2014-03-06 |
| 95 | + |
| 96 | +Release 2.0.3 includes support for 1.4.4's 2I regexp feature and fixes |
| 97 | +a few bugs: |
| 98 | + |
| 99 | +* Docs generation now uses the version from the top-level package. |
| 100 | +* Some internal uses of the deprecated RiakClient.solr were removed. |
| 101 | +* More errors will be caught and propagated properly from multiget |
| 102 | + requests, preventing deadlocks on the caller side. |
| 103 | + |
| 104 | +## 2.0.2 Patch release - 2013-11-18 |
| 105 | + |
| 106 | +Release 2.0.2 includes support for the 1.4.1+ "timeout" option on |
| 107 | +secondary index queries. |
| 108 | + |
| 109 | +## 2.0.1 Patch release - 2013-08-28 |
| 110 | + |
| 111 | +Release 2.0.1 includes a minor compatibility fix for Python 2.6 and an |
| 112 | +updated README. |
| 113 | + |
| 114 | +## 2.0.0 Feature Release - 2013-07-30 |
| 115 | + |
| 116 | +Release 2.0 is the culmination of many months of rearchitecting the |
| 117 | +client. Highlights: |
| 118 | + |
| 119 | +* Automatic connection to multiple nodes, with request retries, |
| 120 | + through a thread-safe connection pool. |
| 121 | +* All Riak 1.3 and 1.4 features, including bucket properties, |
| 122 | + paginating and streaming secondary indexes, CRDT counters, |
| 123 | + client-specified timeouts, and more. |
| 124 | +* Cleaner, more Pythonic access to RiakObject and RiakBucket |
| 125 | + attributes, favoring properties over methods where possible. |
| 126 | +* Simpler representations of links (3-tuples) and index entries |
| 127 | + (2-tuples). |
| 128 | +* Streaming requests (keys, buckets, MapReduce, 2i) are now exposed as |
| 129 | + iterators. |
| 130 | +* Feature detection prevents sending requests to hosts that can't |
| 131 | + handle them. |
| 132 | +* Better handling of siblings -- you don't have to request them |
| 133 | + individually anymore -- and registrable resolver functions. |
| 134 | +* A new `multiget` operation that fetches a collection of keys using |
| 135 | + a pool background threads. |
| 136 | +* A more resilient, repeatable test suite that generates buckets and |
| 137 | + key names that are essentially random. |
| 138 | +* Last but not least, a brand new, more detailed documentation site! |
| 139 | + |
| 140 | +Other features: |
| 141 | + |
| 142 | +* Added an encoder/decoder pair to support `text/plain`. |
| 143 | +* The Travis CI build will now install the latest Riak to run the |
| 144 | + suite against. |
| 145 | + |
| 146 | +Other bugfixes: |
| 147 | + |
| 148 | +* The `charset` metadata can now be received via the `Content-Type` |
| 149 | + header on HTTP. |
| 150 | +* Objects with empty keys and buckets with empty names cannot be |
| 151 | + created or accessed, as they are unaddressable over HTTP. |
| 152 | +* Performance and compatibility of `TestServer` was improved. |
| 153 | +* Non-ASCII request bodies are better supported on HTTP. |
| 154 | +* Enabling and disabling search indexing on a bucket now uses the |
| 155 | + `search` bucket property. |
| 156 | + |
| 157 | +## 1.5.2 Patch Release - 2013-01-31 |
| 158 | + |
| 159 | +Release 1.5.2 fixes some bugs and adds HTTPS/SSL support. |
| 160 | + |
| 161 | +* Added support for HTTPS. |
| 162 | +* Fixed writing of the `app.config` for the `TestServer`. |
| 163 | +* Reorganized the tests into multiple files and cases. |
| 164 | +* Some methods on `RiakObject` were made private where appropriate. |
| 165 | +* The version comparison used in feature detection was loosened to |
| 166 | + support pre-release versions of Riak. |
| 167 | +* Prevent fetching the `protobuf` package from Google Code. |
| 168 | +* Prefer `simplejson` over `json` when present. |
| 169 | + |
| 170 | +## 1.5.1 Patch Release - 2012-10-24 |
| 171 | + |
| 172 | +Release 1.5.1 fixes one bug and some documentation errors. |
| 173 | + |
| 174 | +* Fix bug where `http_status` is used instead of `http_code`. |
| 175 | +* Fix documentation of `RiakMapReduce.index` method. |
| 176 | +* Fix documentation of `RiakClient.__init__` method. |
| 177 | + |
| 178 | +## 1.5.0 Feature Release - 2012-08-29 |
| 179 | + |
| 180 | +Release 1.5.0 is a feature release that supports Riak 1.2. |
| 181 | + |
| 182 | +Noteworthy features: |
| 183 | + |
| 184 | +* Riak 1.2 features are now supported, including Search and 2I queries |
| 185 | + over Protocol Buffers transport. The Protocol Buffers message |
| 186 | + definitions now exist as a separate package, available on |
| 187 | + [PyPi](http://pypi.python.org/pypi/riak_pb/1.2.0). |
| 188 | + |
| 189 | + **NOTE:** The return value of search queries over HTTP and MapReduce |
| 190 | + were changed to be compatible with the results returned from the |
| 191 | + Protocol Buffers interface. |
| 192 | +* The client will use a version-based feature detection scheme to |
| 193 | + enable or disable various features, including the new Riak 1.2 |
| 194 | + features. This enables compatibility with older nodes during a |
| 195 | + rolling upgrade, or usage of the newer client with older clusters. |
| 196 | + |
| 197 | +Noteworthy bugfixes: |
| 198 | + |
| 199 | +* The code formatting and style was adjusted to fit PEP8 standards. |
| 200 | +* All classes in the package are now "new-style". |
| 201 | +* The PW accessor methods on RiakClient now get and set the right |
| 202 | + instance variable. |
| 203 | +* Various fixes were made to the TestServer and it will throw an |
| 204 | + exception when it fails to start. |
| 205 | + |
| 206 | +## 1.4.1 Patch Release - 2012-06-19 |
| 207 | + |
| 208 | +Noteworthy features: |
| 209 | + |
| 210 | +* New Riak objects support Riak-created random keys |
| 211 | + |
| 212 | +Noteworthy bugfixes: |
| 213 | + |
| 214 | +* Map Reduce queries now use "application/json" as the Content-Type |
| 215 | + |
| 216 | +## 1.4.0 Feature Release - 2012-03-30 |
| 217 | + |
| 218 | +Release 1.4.0 is a feature release comprising over 117 individual |
| 219 | +commits. |
| 220 | + |
| 221 | +Noteworthy features: |
| 222 | + |
| 223 | +* Python 2.6 and 2.7 are supported. On 2.6, the unittest2 package is |
| 224 | + required to run the test suite. |
| 225 | +* Google's official protobuf package (2.4.1 or later) is now a |
| 226 | + dependency. The package from downloads.basho.com/support is no |
| 227 | + longer necessary. |
| 228 | +* Travis-CI is enabled on the client. Go to |
| 229 | + http://travis-ci.org/basho/riak-python-client for build status. |
| 230 | +* Riak 1.0+ features, namely secondary indexes and primary quora |
| 231 | + (PR/PW), are supported. |
| 232 | +* `if_none_match` is a valid request option when storing objects, and |
| 233 | + will prevent the write when set to `True` if the key already exists. |
| 234 | +* Links can be set wholesale using the `set_links()` method. |
| 235 | +* Transport-specific options can be passed through when creating a |
| 236 | + `Client` object. |
| 237 | +* A connection manager was added that will (when manipulated manually) |
| 238 | + allow connections to multiple Riak nodes. This will be fully |
| 239 | + integrated in a future release. |
| 240 | + |
| 241 | +Noteworthy bugfixes: |
| 242 | + |
| 243 | +* Links now use the proper URL-encoding in HTTP headers, preventing |
| 244 | + problems with explosion from multiple encoding passes. |
| 245 | +* Many fixes were applied to make the Protocol Buffers transport more |
| 246 | + stable. |
| 247 | +* `RiakObject.get_content_type()` will behave properly when content |
| 248 | + type is not set. |
| 249 | +* Deprecated transport classes were removed since their functionality |
| 250 | + had folded into the primary transports. |
| 251 | +* A temporary fix was made for unicode bucket/key names which raises |
| 252 | + an error when they are used and cannot be coerced to ASCII. |
| 253 | +* The Erlang sources/beams for the TestServer are now included in the |
| 254 | + package. |
| 255 | +* MapReduce failures will now produce a more useful error message and |
| 256 | + be handled properly when no results are returned. |
| 257 | + |
| 258 | +There are lots of other great fixes from our wonderful |
| 259 | +community. [Check them out!](https://github.com/basho/riak-python-client/compare/1.3.0...1.4.0) |
| 260 | + |
| 261 | +## 1.3.0 Feature Release - 2011-08-04 |
| 262 | + |
| 263 | +Release 1.3.0 is a feature release bringing a slew of updates. |
| 264 | + |
| 265 | +Noteworthy features: |
| 266 | + |
| 267 | +* #37: Support for the Riak Search HTTP Interface (Mathias Meyer) |
| 268 | +* #36: Support to store large files in Luwak (Mathias Meyer) |
| 269 | +* #35: Convenience methods to enable, disable and check search indexing |
| 270 | + on Riak buckets (Mathias Meyer) |
| 271 | +* #34: Port of Ripple's test server to Python, allows faster testing |
| 272 | + thanks to an in-memory Riak instance (Mathias Meyer) |
| 273 | +* #31: New transports: A Protocol Buffers connection cache |
| 274 | + (riak.transports.pbc.RiakPbcCacheTransport), a transport to reuse the |
| 275 | + underlying TCP connections by setting SO_REUSEADDR on the socket |
| 276 | + (riak.transports.http.RiakHttpReuseTransport), and one that tries to |
| 277 | + reuse connections to the same host (riak.transports.http.RiakHttpPoolTransport) |
| 278 | + (Gilles Devaux) |
| 279 | + |
| 280 | +Fixes: |
| 281 | + |
| 282 | +* #33: Respect maximum link header size when using HTTP. Link header is now |
| 283 | + split up into multiple headers when it exceeds the maximum size of 8192 bytes. |
| 284 | + (Mathias Meyer) |
| 285 | +* #41: Connections potentially not returned to the protocol buffers connection |
| 286 | + pool. (Reid Draper) |
| 287 | +* #42: Reset protocol buffer connection up on connection error (Brett Hoerner) |
| 288 | + |
| 289 | +## 1.2.2 Patch Release - 2011-06-22 |
| 290 | + |
| 291 | +Release 1.2.2 is a minor patch release. |
| 292 | + |
| 293 | +Noteworthy fixes and improvements: |
| 294 | + |
| 295 | +* #29: Add an nicer API for using key filters with MapReduce (Eric Moritz) |
| 296 | +* #13 and #24: Let Riak generate a key when none is specified (Mark Erdmann) |
| 297 | +* #28: Function aliases for the Riak built-in MapReduce functions (Eric Moritz) |
| 298 | +* #20: Add a convenience method to create Riak object directly from file (Ana Nelson) |
| 299 | +* #16: Support return\_body parameter when creating a new object (Stefan Praszalowicz, Andy Gross) |
| 300 | +* #17: Storing an object fails when it doesn't exist in Riak (Eric Moritz, Andy Gross) |
| 301 | +* #18: Ensure that a default content type is set when none specified (Andy Gross) |
| 302 | +* #22: Fix user meta data support (Mathias Meyer) |
| 303 | +* #23: Fix links to the wiki (Mikhail Sobolev) |
| 304 | +* #25: Enable support for code coverage when running tests (Mikhail Sobolev) |
| 305 | +* #26: Debian packaging (Dmitry Rozhkov) |
0 commit comments