Skip to content

Releases: couchbase/couchbase-ruby-client

3.5.3

27 Aug 23:22
3.5.3
4aca72f
Compare
Choose a tag to compare
gem install couchbase -v 3.5.3

API Reference: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.5.3/index.html
Full Changelog: 3.5.2...3.5.3
Rubygems: https://rubygems.org/gems/couchbase/versions/3.5.3

# rubygems.org version
gem "couchbase", "3.5.3"

# use official repository
gem "couchbase", "3.5.3", :source => "https://packages.couchbase.com/clients/ruby"

Fixes

3.5.2

25 Jul 19:09
3.5.2
c31f434
Compare
Choose a tag to compare
gem install couchbase -v 3.5.2

API Reference: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.5.2/index.html
Full Changelog: 3.5.1...3.5.2
Rubygems: https://rubygems.org/gems/couchbase/versions/3.5.2

# rubygems.org version
gem "couchbase", "3.5.2"

# use official repository
gem "couchbase", "3.5.2", :source => "https://packages.couchbase.com/clients/ruby"

Improvements

Fixes

3.5.1

24 Apr 04:01
3.5.1
f5aae15
Compare
Choose a tag to compare
gem install couchbase -v 3.5.1

API Reference: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.5.1/index.html
Full Changelog: 3.5.0...3.5.1
Rubygems: https://rubygems.org/gems/couchbase/versions/3.5.1

# rubygems.org version
gem "couchbase", "3.5.1"

# use official repository
gem "couchbase", "3.5.1", :source => "https://packages.couchbase.com/clients/ruby"

Improvements

RCBC-482: Only expand MutateIn macros when the relevant symbols are used as values (#141)

Bug Fixes

RCBC-476: FeatureNotAvailable for cb2 ping/diagnostics (#139)

Underlying C++ SDK Core Changes

Enhancements

Fixes

  • CXXCBC-487: Check if alternate addressing is used when bootstrapping. (#545)
  • CXXCBC-503: Ignore configuration if it contains an empty vBucketMap. (#556, #558)
  • CXXCBC-30: Inconsistent behaviour when using subdoc opcodes incorrectly (#559)
  • CXXCBC-492: Use retry strategy in collections_component's get_collection_id. (#552)
  • CXXCBC-494: Fix memory issue in range scan implementation. (#549)
  • Always attempt to extract common query code if error has not been set. (#561) Fixes quota/rate limit checks for older servers.

Build and Tests Fixes

  • CXXCBC-502: Apply /bigobj for SDK objects only. (#550) Avoid using global add_definitions() as it might leak to non-CXX languages (like ASM_NASM on Windows).

3.5.0

18 Mar 04:36
3.5.0
b0166c6
Compare
Choose a tag to compare
gem install couchbase -v 3.5.0

API Reference: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.5.0/index.html
Full Changelog: 3.4.5...3.5.0
Rubygems: https://rubygems.org/gems/couchbase/versions/3.5.0

# rubygems.org version
gem "couchbase", "3.5.0"

# use official repository
gem "couchbase", "3.5.0", :source => "https://packages.couchbase.com/clients/ruby"

Improvements

Bug Fixes

  • Ensure that truncating keys in CouchbaseStore preserves the validity of their encoding (#125)
  • RCBC-461: Call extract_expiry_time in to_backend of options instead of constructor (#124)

Build and Test Improvements

  • RCBC-464: Improve stability of management tests. (#133)
  • Migrate most of the build & test tasks to Github Actions.

Underlying C++ SDK Core Changes

Changes in Couchbase C++ SDK 1.0.0-dp.14

Fixes

  • CXXCBC-482: Range scan orchestrator should use best effort retry strategy by default. (#542)
  • CXXCBC-481: Fix potential crash when parsing search result hits. (#541)
  • CXXCBC-461: Do not send ping to nodes that have not completed bootstrap. (#540)
  • CXXCBC-462: Fix hanging when specifying a custom metadata collection via the public API & expose errors. (#532)
  • CXXCBC-480: LookupInAnyReplica should not enforce any limits on number of specs in the library. (#539)
  • CXXCBC-479: Fix capabilities check for replica LookupIn operations. (#537)
  • CXXCBC-336: Do not fallback to 8.8.8.8, if we cannot obtain system DNS server (#533)

Changes in Couchbase C++ SDK 1.0.0-dp.13

New features and enhancements

  • CXXCBC-456: handle 0x0d (config_only) status from KV (#523).
    On 0x0d (EConfigOnly) status code SDK will request new configuration, and send current operation to retry orchestrator.
  • CXXCBC-191: Create Index Key Encoding (#519)

Fixes

  • CXXCBC-345: Range scan improvements & resolve concurrency issues (#525).
  • CXXCBC-284: Do not use session that is not bootstrapped to poll for config (#528)
  • CXXCBC-447: Use addresses from the config to bootstrap bucket (#516)
  • CXXCBC-450: Reset bootstrap handler before re-bootstrap (#524).
  • CXXCBC-452: Update capabilities and fail fast when selected feature is not available. (#522, #513)
  • CXXCBC-431: Add check for history retention bucket capability in collection create/update (#502, #505)
  • CXXCBC-421: Return feature_not_available when query preserve expiry is not supported (#510)

Changes in Couchbase C++ SDK 1.0.0-dp.12

New features and enhancements

Fixes

  • CXXCBC-284: Reduce network traffic when polling for cluster configuration. (#504)
  • CXXCBC-422: Add insufficient credentials error code to common query error code conversion. (#511)
  • CXXCBC-421: Return feature_not_available when query preserve expiry is not supported. (#510)
  • CXXCBC-426: Get with very large projection test is returning fields outside of the projection. (#499)

Changes in Couchbase C++ SDK 1.0.0-dp.11

Fixes

  • CXXCBC-404: KV_LOCKED status should be exposed as cas_mismatch for unlock. (#479)
  • CXXCBC-403: Allow retries for KV not_my_vbucket response. (#480)
  • CXXCBC-368: Subscribe to clustermap notifications to speedup failover. (#490)'
  • CXXCBC-419: Ensure that MCBP protocol parser starts with clean state. Fixes protocol parsing issues when bootstrap sequence is being retried. (#496)
  • CXXCBC-409: Add handling for 'index does not exist' query error. (#492)
  • CXXCBC-412: Support document_not_locked response. (#491)

Changes in Couchbase C++ SDK 1.0.0-dp.10

Fixes

  • CXXCBC-383: Map subdoc_doc_too_deep KV status to path_too_deep error code. (#455)
  • CXXCBC-382: Fix raw_binary_transcoder so that gets on binary data are possible. (#459)
  • CXXCBC-387: Cache formatted mbcp_session endpoints. (#462, #464)
  • Add more information to diagnose timeouts on NMV responses. (#475)

3.4.5

10 Oct 23:40
3.4.5
276c680
Compare
Choose a tag to compare

Rubygems: https://rubygems.org/gems/couchbase/versions/3.4.5
API docs: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.4.5
Full Changelog: 3.4.4...3.4.5

gem install couchbase -v 3.4.5
# rubygems.org version (does not have precompiled binaries)
gem "couchbase", "3.4.5"

# use official repository, supported Ruby ABIs: 3.0.0, 3.1.0, 3.2.0
gem "couchbase", "3.4.5", :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"

## precompiled binaries (uncomment line with effective ABI version of ruby)
# gem "couchbase", "3.4.5", :platforms => :mri_32, :source => "https://packages.couchbase.com/clients/ruby/3.2.0/"
# gem "couchbase", "3.4.5", :platforms => :mri_31, :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"
# gem "couchbase", "3.4.5", :platforms => :mri_30, :source => "https://packages.couchbase.com/clients/ruby/3.0.0/"

Improvements

  • RCBC-450: Set value of subdoc exists to true or false if result is success or path-not-found (#120)
  • RCBC-453: Support history retention in collection and bucket management (#119)

Underlying C++ SDK Core Changes

3.4.4

21 Aug 13:17
3.4.4
167d2e5
Compare
Choose a tag to compare

Rubygems: https://rubygems.org/gems/couchbase/versions/3.4.4
API docs: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.4.4
Full Changelog: 3.4.3...3.4.4

gem install couchbase -v 3.4.4
# rubygems.org version (does not have precompiled binaries)
gem "couchbase", "3.4.4"

# use official repository, supported Ruby ABIs: 3.0.0, 3.1.0, 3.2.0
gem "couchbase", "3.4.4", :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"

## precompiled binaries (uncomment line with effective ABI version of ruby)
# gem "couchbase", "3.4.4", :platforms => :mri_32, :source => "https://packages.couchbase.com/clients/ruby/3.2.0/"
# gem "couchbase", "3.4.4", :platforms => :mri_31, :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"
# gem "couchbase", "3.4.4", :platforms => :mri_30, :source => "https://packages.couchbase.com/clients/ruby/3.0.0/"

Improvements

Underlying C++ SDK Core Changes

3.4.3

17 May 15:56
3.4.3
ef79cc8
Compare
Choose a tag to compare

Rubygems: https://rubygems.org/gems/couchbase/versions/3.4.3
API docs: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.4.3
Full Changelog: 3.4.2...3.4.3

gem install couchbase -v 3.4.3
# rubygems.org version (does not have precompiled binaries)
gem "couchbase", "3.4.3"

# use official repository, supported Ruby ABIs: 3.0.0, 3.1.0, 3.2.0
gem "couchbase", "3.4.3", :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"

## precompiled binaries (uncomment line with effective ABI version of ruby)
# gem "couchbase", "3.4.3", :platforms => :mri_32, :source => "https://packages.couchbase.com/clients/ruby/3.2.0/"
# gem "couchbase", "3.4.3", :platforms => :mri_31, :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"
# gem "couchbase", "3.4.3", :platforms => :mri_30, :source => "https://packages.couchbase.com/clients/ruby/3.0.0/"

Improvements

  • RCBC-420: Implement RawJsonTranscoder, RawBinaryTranscoder and RawStringTranscoder & check flags when decoding document content (#93).

  • RCBC-427: Add missing query index management options & use InvalidArgument error (#92). Add missing options scope_name, collection_name and index_name for #create_primary method.

  • RCBC-436: Always use PLAIN SASL mechanism with TLS connections (#103, CXXCBC-296).

  • Fix the durability level always being set to none in the C++ core (#99).

  • Add constructor for SearchRowLocation (#95).

  • Change attr to attr_reader (#104).

Underlying C++ SDK Core Changes

  • CXXCBC-324: Check port and network name on session restart (#401).

  • CXXCBC-323: Parse bootstrap_timeout and resolve_timeout in connection string (#400).

  • CXXCBC-327: Bundle Mozilla certificates with the library (#405, #408).
    Source: https://curl.se/docs/caextract.html. Use disable_mozilla_ca_certificates connection string option to disable
    bundled certificates. Use the following script to inspect certificates metadata:

    Couchbase::BUILD_INFO[:cxx_client].select{|k, _| k =~ /mozilla/}
    # =>
    # {:mozilla_ca_bundle_date=>"Tue Jan 10 04:12:06 2023 GMT",
    #  :mozilla_ca_bundle_embedded=>true,
    #  :mozilla_ca_bundle_sha256=>"fb1ecd641d0a02c01bc9036d513cb658bbda62a75e246bedbc01764560a639f0",
    #  :mozilla_ca_bundle_size=>137}
  • Introduce connection string option dump_configuration for debugging (#398). It logs cluster configuration on trace level.

3.4.2

12 Apr 16:22
3.4.2
527358f
Compare
Choose a tag to compare

Rubygems: https://rubygems.org/gems/couchbase/versions/3.4.2
API docs: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.4.2
Full Changelog: 3.4.1...3.4.2

gem install couchbase -v 3.4.2
# rubygems.org version (does not have precompiled binaries)
gem "couchbase", "3.4.2"

# use official repository, supported Ruby ABIs: 3.0.0, 3.1.0, 3.2.0
gem "couchbase", "3.4.2", :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"

## precompiled binaries (uncomment line with effective ABI version of ruby)
# gem "couchbase", "3.4.2", :platforms => :mri_32, :source => "https://packages.couchbase.com/clients/ruby/3.2.0/"
# gem "couchbase", "3.4.2", :platforms => :mri_31, :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"
# gem "couchbase", "3.4.2", :platforms => :mri_30, :source => "https://packages.couchbase.com/clients/ruby/3.0.0/"

Improvements

  • RCBC-419: Accept Couchbase::Configuration object on Couchbase::Cluster.connect (#85).

  • RCBC-418: Add durability to append and prepend options (#88).

  • RCBC-422: Cleanup search options (#89).

Underlying C++ SDK Core Changes

  • CXXCBC-31: Allow to use schema-less connection strings (e.g. "cb1.example.com,cb2.example.com". (#394)

  • CXXCBC-318: Always try TCP if UDP fails in DNS-SRV resolver. (#390)

3.4.1

20 Mar 10:39
3.4.1
97ca42a
Compare
Choose a tag to compare

Rubygems: https://rubygems.org/gems/couchbase/versions/3.4.1
API docs: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.4.1

gem install couchbase -v 3.4.1
# rubygems.org version (does not have precompiled binaries)
gem "couchbase", "3.4.1"

# use official repository, supported Ruby ABIs: 3.0.0, 3.1.0, 3.2.0
gem "couchbase", "3.4.1", :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"

## precompiled binaries (uncomment line with effective ABI version of ruby)
# gem "couchbase", "3.4.1", :platforms => :mri_32, :source => "https://packages.couchbase.com/clients/ruby/3.2.0/"
# gem "couchbase", "3.4.1", :platforms => :mri_31, :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"
# gem "couchbase", "3.4.1", :platforms => :mri_30, :source => "https://packages.couchbase.com/clients/ruby/3.0.0/"

Improvements

  • RCBC-396: Query index management is now available on Collection class as Collection#query_indexes. Deprecate scope_name and collection_name in QueryIndexManager. (#75)

Underlying C++ SDK Core Changes

3.4.0

20 Feb 05:56
3.4.0
85dacb9
Compare
Choose a tag to compare

Rubygems: https://rubygems.org/gems/couchbase/versions/3.4.0
API docs: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.4.0

gem install couchbase -v 3.4.0
# rubygems.org version (does not have precompiled binaries)
gem "couchbase", "3.4.0"

# use official repository, supported Ruby ABIs: 3.0.0, 3.1.0, 3.2.0
gem "couchbase", "3.4.0", :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"

## precompiled binaries (uncomment line with effective ABI version of ruby)
# gem "couchbase", "3.4.0", :platforms => :mri_32, :source => "https://packages.couchbase.com/clients/ruby/3.2.0/"
# gem "couchbase", "3.4.0", :platforms => :mri_31, :source => "https://packages.couchbase.com/clients/ruby/3.1.0/"
# gem "couchbase", "3.4.0", :platforms => :mri_30, :source => "https://packages.couchbase.com/clients/ruby/3.0.0/"

Improvements

  • RCBC-378: Implement change password for Management::User class. (#65)
  • RCBC-388: Add Configuration Profiles. At the moment one profile is defined "wan_development", and it could be applied using Options::Cluster#apply_profile. (#55)
  • RCBC-263: Implement legacy durability. See options :persist_to and :replicate_to of mutations. (#49)
  • RCBC-387: Implement replica reads with Collection#get_any_replica and Couchbase#get_all_replicas (#48)
  • RCBC-375: Implement log forwarding. See documentation of method Couchbase.set_logger and classes Couchbase::Utils::GenericLoggerAdapter, Couchbase::Utils::GenericLoggerAdapter (#45)
  • RCBC-371: Return id for *_multi results. (#40)
  • RCBC-393: Fix type conversion for query metrics. (#62)
  • RCBC-398: Add ClusterRegistry to allow custom connection string handlers. (#68)
  • RCBC-366: Allow to override default timeouts through Options::Cluster (#37)
  • RCBC-399: Add default options objects as class constants. (#69)

Underlying C++ SDK Core

Notable Changes in C++ SDK 1.0.0-beta.5

  • CXXCBC-275: Update implementation query context fields passed to the server. In future versions of the server versions it will become mandatory to specify context of the statement (bucket, scope and collection).
    This change ensures that both future and current server releases supported transparently.
  • CXXCBC-296: Force PLAIN SASL auth if TLS enabled. Using SCRAM SASL mechanisms over TLS protocol is unnecesary complication, that slows down initial connection bootstrap and potentially limits server ability to improve security and evolve credentials management.
  • CXXCBC-295: The get with projections opration should not fail if one of the the paths is missing in the document, because the semantics is "get the partial document" and not "get individual fields" like in lookup_in operation.
  • CXXCBC-294: In the Public API, if get operation requested to return expiry time, zero expiry should not be interpreted as absolute expiry timestamp (zero seconds from UNIX epoch), but rather as absense of the expiry.
  • CXXCBC-291: Allow to disable mutation tokens for Key/Value mutations (use enable_mutation_tokens in connection string).

Resource management and performance improvements

Build system fixes

Enhancements

Notable changes in C++ SDK 1.0.0-beta.4

Notable changes in C++ SDK 1.0.0-dp.2

Notable changes in C++ SDK 1.0.0-dp.1

Resource management and performance fixes

Build system fixes

Notable changes in C++ SDK 1.0.0-beta.3

Bug fixes

Read more