Releases: couchbase/couchbase-ruby-client
3.5.4
API Reference: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.5.4/index.html
Full Changelog: 3.5.3...3.5.4
Rubygems: https://rubygems.org/gems/couchbase/versions/3.5.4
# rubygems.org version
gem "couchbase", "3.5.4"
# use official repository
gem "couchbase", "3.5.4", :source => "https://packages.couchbase.com/clients/ruby"
Fixes
- Update core to 1.0.3 (#161). Release notes: couchbase-cxx-client 1.0.3
- Add scripts for Rocky Linux by @avsej in #159
3.5.3
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
- RCBC-496: do not include googletest into release package (#154)
- Update core to 1.0.1 (#157). Release notes: couchbase-cxx-client 1.0.1
3.5.2
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
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
- CXXCBC-489: Support scoped eventing functions. (#548, #554)
- CXXCBC-470: Distinguish between 'unset' and 'off' query_profile (#551)
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 (likeASM_NASM
on Windows).
3.5.0
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
- RCBC-469: Support for Scoped Search Indexes. (#132)
- RCBC-467: Add support for Vector search. (#131)
- RCBC-468: Support for maxTTL value of -1 for collection 'no expiry' (#130)
- RCBC-410, RCBC-458: Add support for the
couchbase2
protocol (#126, #127) - RCBC-472: Ping management service when specified in options. (#134)
- RCBC-463: Add DocumentNotLocked error. (#128)
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).
On0x0d (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
- CXXCBC-401: Add ping & diagnostics to public API. (#498, #503)
- CXXCBC-346: Support for maxTTL value of -1 for collection 'no expiry'. (#500)
- CXXCBC-442: Support for raw_json and raw_string transcoders. (#514)
- CXXCBC-440: Support for Scoped Search Indexes. (#512, #513)
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 topath_too_deep
error code. (#455) - CXXCBC-382: Fix
raw_binary_transcoder
so thatget
s 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
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
- CXXCBC-376: Revisit what 'create' and 'update' bucket operations send to the server. Make optional bucket settings fields optional, and do not send anything unless the settings explicitly specified. (couchbase/couchbase-cxx-client#451)
- CXXCBC-374: Return 'bucket_exists' error when the bucket already exists during 'create' operation. (couchbase/couchbase-cxx-client#449)
- CXXCBC-359: Reduce default HTTP idle timeout to 1 second (couchbase/couchbase-cxx-client#448)
- CXXCBC-367: CXXCBC-370: Add history retention settings to buckets/collection management. (couchbase/couchbase-cxx-client#446)
- CXXCBC-119: Return booleans for subdocument 'exists' operation instead of error code. (couchbase/couchbase-cxx-client#444, couchbase/couchbase-cxx-client#452)
- Detect 'collection_not_found' error in 'update_collection' response (couchbase/couchbase-cxx-client#450)
3.4.4
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
- RCBC-441: interpret Integer as milliseconds in duration context (#110, #111)
- RCBC-442: Support query with read from replica (#112)
- RCBC-391: SDK Support for Native KV Range Scans (#113, #117)
- RCBC-443: Support for Subdocument Read from Replica (#116)
- RCBC-451, RCBC-452: Expose any specific lookup_in spec errors (#118)
Underlying C++ SDK Core Changes
- CXXCBC-333: Fix parsing resolv.conf on Linux (#416)
- CXXCBC-335: Log connection options (#417)
- CXXCBC-343: Continue bootsrap if DNS-SRV resolution fails (#422)
- CXXCBC-242: SDK Support for Native KV Range Scans (#419, #423, #424, #428, #431, #432, #433, #434, #426)
- CXXCBC-339: Disable older TLS protocols (#418)
- CXXCBC-346: Allow to log network communication. (#425)
Couchbase::Backend.enable_protocol_logger_to_save_network_traffic_to_file("/tmp/cb.log")
- CXXCBC-350: Resolve collection ID before performing any scan operations (#433)
3.4.3
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
andRawStringTranscoder
& check flags when decoding document content (#93). -
RCBC-427: Add missing query index management options & use
InvalidArgument
error (#92). Add missing optionsscope_name
,collection_name
andindex_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
toattr_reader
(#104).
Underlying C++ SDK Core Changes
-
CXXCBC-324: Check port and network name on session restart (#401).
-
CXXCBC-323: Parse
bootstrap_timeout
andresolve_timeout
in connection string (#400). -
CXXCBC-327: Bundle Mozilla certificates with the library (#405, #408).
Source: https://curl.se/docs/caextract.html. Usedisable_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
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 onCouchbase::Cluster.connect
(#85). -
RCBC-418: Add durability to append and prepend options (#88).
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
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 asCollection#query_indexes
. Deprecatescope_name
andcollection_name
inQueryIndexManager
. (#75)
Underlying C++ SDK Core Changes
- Improved build with OpenSSL on CentOS 7 (couchbase/couchbase-cxx-client#382)
- CXXCBC-144: Search query on collections should not require you to pass in the scope name (couchbase/couchbase-cxx-client#379)
- CXXCBC-145: Search query request raw option not used (couchbase/couchbase-cxx-client#380)