riak-ruby-client / RELEASE_NOTES.textile

Ripple Release Notes

0.8.2 Patch/Minor Feature Release – 2010-10-22

Relese 0.8.2 includes significant additions to support features in Riak 0.13, including Riak Search and Luwak.

Simply require 'riak/search' to add Search-related features to riak-client.

Full notes:

  • Fixed bug in embedded associations where associated validators would be added every time the association was instantiated. [Adam Hunter]
  • Update and loosen dependencies to Rails 3.0.1 and RSpec 2.
  • Add support for file-existence check in Luwak. [John Axel Eriksson]
  • Avoid clobbering an existing Boolean class or module.
  • Add Luwak support.
  • Add Search features. [Sean Cribbs, Rusty Klophaus]

0.8.1 Patch/Minor Feature Release – 2010-10-11

Release 0.8.1 includes several new features and bugfixes.

Full notes:

  • Riak::TestServer makes it easier and faster to run automated tests that need to store data in Riak. It includes an in-memory Riak backend that quickly clears its contents at the end of a test/example. All included integration tests now use this.
  • Headers are turned into strings before splitting into 8KB chunks. [Nicolas Fouché]
  • Riak::RObject#prevent_stale_writes option allows conditional PUT semantics, matching on ETag. [Lee Jensen]
  • Riak::RObject#raw_data gives access to the object data before deserialization. [Lee Jensen]
  • Boolean properties on Ripple documents now allow a default value of false. [Duff O’Melia]
  • Ripple documents now support accepts_nested_attributes_for. [Brian Kaney]

0.8.0 Feature Release – 2010-08-31

The 0.8.0 release is packed full of new features and bugfixes. Of particular note are:

  • Rails 3 final support
  • Session stores
  • Linked associations
  • Riak 0.12 support

Full notes:

  • Ripple::Document classes can define their desired quorum parameters.
  • ripple and riak-sessions use Rails 3 final. riak-client is still compatible with active_support >= 2.3.5.
  • Keys are not loaded by default when requesting a Riak::Bucket. This matches the default for Riak 0.12.
  • Ripple::Document now supports update_attributes and update_attribute.
  • Inspection output has been improved for Ripple documents.
  • Ripple::Document classes can now have associations that use links.
  • Property-casting patches are now eagerly loaded.
  • Certain responses from MapReduce can be converted into Riak::RObjects. [Misha Gorodnitzky]
  • Key/bucket (un)escaping has been improved. [Nicolas Fouché]
  • Riak::CacheStore sets and uses bucket-default quorums instead of per-request parameters.
  • Riak::Bucket supports new quorum defaults.
  • The default configuration file for Ripple is now config/ripple.yml. [Ashley Woodard]
  • Added a Rails 3 model generator. [Ashley Woodard]
  • Serializing RObject data via Marshal is now simpler, using “application/x-ruby-marshal” content-type.
  • Large HTTP headers (Link tends to be one) are split into 8KB chunks for both backends.
  • Added session stores for Rack and Rails 3.
  • Document#find returns nil when all arguments are blank.
  • CurbBackend now properly handles IO objects as the request body data.
  • Ripple::Document classes that have the same bucket/key are equivalent using ==.
  • Ripple::Document classes can use a property as the key, as long as it’s a String.

0.7.1 Patch Release – 2010-06-08

This release has no new features but includes bug fixes and some internal refactoring of the Ripple::Document hierarchy.

  • The Net::HTTP backend should handle streamed keys better (although
still not perfectly).
  • The Riak::MapReduce#timeout method now returns self, allowing
chaining.
  • The Ripple::Document and Ripple::EmbeddedDocument are less coupled
from one another so numerous internal confusions about calling order are fixed.
  • When using Riak::RObject#to_link, a blank tag is no longer allowed.

0.7.0 Feature Release – 2010-05-06

This release includes a number of new features. The largest change is that the library is now split into two gems, 'riak-client’ and 'ripple’. 'riak-client’ supports ActiveSupport 2.3.5, 'ripple’ only supports 3.0.0.beta3.

A big kudos goes to Adam Hunter who contributed the majority of the new associations code.

In addition, these changes were made:

  • Keys should stream properly now from Bucket#keys (the “stream” option was left off).
  • Deletes can be issued directly from a Bucket without instantiating an RObject.
  • Added a ActiveSupport 3.0-compatible Cache Store. [Shay Frendt]
  • Added Bucket#exists?
  • A provisionally complete implementation of embedded document associations. [Adam Hunter]
  • Ripple::Document passes ActiveModel::Lint tests.
  • Updated Rails 3 dependencies to beta3 and RSpec to 2.0.0.beta6
  • Ripple::Document handles nil keys better. [John Lynch]

0.6.1 Patch Release – 2010-03-17

This is a minor release with fixes for a few issues:

  • Riak::Link objects will now be unique when added to RObject#links
Set. [John Lynch]
  • Attributes on Ripple::Document classes are no longer clone, which had
prevented non-scalar properties from being modified directly (e.g. Array).
  • Buckets, keys, and walk specs are properly escaped in URLs
(including slashes).
  • Time-related properties properly convert to string formats in JSON that
they will work in the context of MapReduce jobs.

0.6.0 Feature Release – 2010-03-05

This release contains enhancements and bugfixes in preparation for the
Riak 0.9 release.

  • The CurbBackend now uses fibers to prevent curl-handle corruption when
a block is given to streaming operations.
  • The default prefix is now “/riak/” to match the latest version of Riak.
  • The client configuration for Ripple is now used.
  • Added Bucket#new and Bucket#get_or_new for easily creating new objects.
  • Added Bucket#allow_mult and Bucket#n_value accessors for more easily setting
bucket properties.
  • Added timestamps! method for easily adding created_at/updated_at to documents.
[Adam Hunter]
  • The 'links’ collection on RObject is now a Set instead of an Array.
  • All literal messages are now stored in YAML localization files.
  • Object siblings (caused by concurrent updates when allow_mult is true) can now
be accessed directly.
  • Map-reduce jobs now have timeouts (in parity with Riak).

0.5.1 Patch Release – 2010-02-22

This is a minor release with fixes for Ruby 1.9, bundler/edge Rails,
and a minor feature addition. Changes:

  • Qualify namespaces for Ruby 1.9.
  • Decoupled a few specs that gave the appearance of failure.
  • Added “bucket” and “key” properties on Riak::Link objects. [John Lynch]
  • Fully-qualify the JSON constant, using ActiveSupport::JSON instead.
  • Adjusted gem specification to accommodate edge Rails. [Preston Marshall]

0.5 Initial Release – 2010-02-10

This is the first release of Ripple, which would not have been possible
without the generous support of Sonian and Basho Technologies. Many thanks.
It includes:

  • A robust basic client, Riak, with:
    • multiple HTTP backends (curb, net/http)
    • sensible client defaults (local, default port)
    • bucket access and manipulation, including key-streaming
    • object reading, storing, deleting and reloading
    • automatic de-serialization of JSON, YAML, and Marshal (when given the right content type)
    • streaming POST/PUT bodies (when given an IO)
    • method-chained map-reduce job construction
  • A document-style modeling library, Ripple, with:
    • ActiveModel 3.0 compatibility
    • Property/attribute definition with automatic type-casting
    • Bucket selection based on class name, with single-bucket inheritance (configurable)
    • Validations
    • Dirty-tracking
    • Simple finders – all documents, by key
    • Reloading
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.