Skip to content

Latest commit

 

History

History
131 lines (105 loc) · 6 KB

RELEASE_NOTES.textile

File metadata and controls

131 lines (105 loc) · 6 KB

Riak-Client/Ripple Release Notes

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