Skip to content

Releases: couchbase/couchbase-cxx-client

1.0.0-dp.4

21 Feb 14:51
1.0.0-dp.4
ec53d75
Compare
Choose a tag to compare
1.0.0-dp.4 Pre-release
Pre-release

API documentation: https://docs.couchbase.com/sdk-api/couchbase-cxx-client-1.0.0-dp.4

  • 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 or cluster options).

  • CXXCBC-188: Implement ChangePassword in user management API.

  • Resource management and performance improvements:

    • Fix tracer and meter ref-counting (#370)
    • Replace minstd_rand with mt19937_64, as it gives less collisions (#356)
    • CXXCBC-285: Write to sockets from IO threads, to eliminate potential race conditions. (#348)
    • Eliminate looping transform in mcbp_parser::next (#347)
    • CXXCBC-205: Use thread-local UUID generator (#340)
    • CXXCBC-293: Performance improvements:
      • Speed up UUID serialization to string (#346)
      • Don't allow to copy mcbp_message objects (#345)
      • Avoid extra allocation and initialization (#344)
  • Build system fixes:

    • Fix build with gcc-13 (#372)
    • Fix gcc 12 issue (#367)
    • Include branch name in CI badge links (#352)
    • Set build timeouts for github actions (#351)
  • CLI tools:

    • Added cbc tool, similar to what libcouchbase provides. At the moment three sub-commands available: version, get and query. (#366)
    • tool_kv_loader: allow to use generated value in loader tool (#343)
    • tool_kv_loader: allow to exit after certain number ops executed (#341)
  • Enhancements:

    • Allow to get list of available configuration profiles. Useful for validation and UX. (#362)
    • Add more fmt helpers: query_scan_consistency, query_status, and change cas representation into fixed length base-16 number. (#361)
    • Include bucketless KV service when ping is requested. (#339)
    • CXXCBC-290: add header with feature macros (#355)
    • Include OS name in SDK identifier (#349)
    • Expose more functions to get version info (#353)
    • Add function to generate semantic version from git-describe (#354)
    • CXXCBC-286: Decode value of user_agent_extra argument when it is URL-encoded and passed through connection string. (#350)
  • Transactions:

    • CXXCBC-289: Refactor transactions logging to match rest of C++ SDK.

1.0.0-dp.3

21 Feb 14:48
1.0.0-dp.3
e3be8b0
Compare
Choose a tag to compare
1.0.0-dp.3 Pre-release
Pre-release
  • CXXCBC-275: Update query_context handling in query management calls. Known issue: query management operations will fail with 1065: Unrecognized parameter in request: query_context error on server version 6.6.

  • Build system fixes:

    • Update badges (#330)
  • Enhancements:

    • CXXCBC-276: Use interval from the options for config poll, which previous was hard-coded to 2.5 seconds. (#336)
  • Transactions:

    • CXXCBC-259: Transactions public API expects bucket already open, so the library will automatically open buckets inside transaction logic. (#334)
    • CXXCBC-197: Add support for ExtInsertExisting. (#332)
    • TXNCXX-260: Fixed ExtBinaryMetadata bug. (#333)
    • CXXCBC-261: Query error handling issues. (#324)
  • Preview features:

1.0.0-dp.2

20 Feb 11:44
1.0.0-dp.2
65e328a
Compare
Choose a tag to compare
1.0.0-dp.2 Pre-release
Pre-release
  • CXXCBC-270: Rename logging macros, adding CB_ prefix (e.g. LOG_DEBUG -> CB_LOG_DEBUG) (#323)

  • CXXCBC-242: Drain waiting commands list on MCBP session close (#321)

  • CXXCBC-271: Fix get_all_replicas behaviour: do not propagate error if result set is not empty, while the last response has failed. (#322)

  • Build system fixes:

    • Issue with CMakeFile when including in other projects (#314)
    • Remove pipefail option from test shell script (#316)
    • Updates test scripts to include backtraces after failure (#315, #317, #319)
  • Transactions:

  • Preview features:

    • Key/Value range scan:

1.0.0-dp.1

01 Nov 00:58
1.0.0-dp.1
ace55e8
Compare
Choose a tag to compare
1.0.0-dp.1 Pre-release
Pre-release

First developer preview of the C++ Couchbase client. Other than additions, we expect to make as few (if any) changes to the current interface as we move towards a general release. Please check out the /examples directory for some example usage of the API, both the synchronous and asynchronous versions. Also, the tests in /test should provide more examples, as well.

The API documentation will be fleshed out more thoroughly in coming DP releases, as will the examples and tests.

Like any Developer Preview, this should not be used in production.

This docs/stability.hxx describes our API stability tags. We don't expect changes to the classes and methods that are marked with the @committed tag, although other interfaces might be changed or removed. Please open tickets at https://issues.couchbase.com/projects/CXXCBC if something is missing, or with general questions. We are also available in Discord and Forums (more details at CONTRIBUTING.md).

  • CXXCBC-142: Update SRV resolution for Windows (#303)
  • CXXCBC-172: Refresh DNS SRV when cluster uncontactable (#275, #290)
  • CXXCBC-234: Error message for bucket hibernation and update error message for authentication_failure. (#280, #285)
  • CXXCBC-235: Load system CAs when the trust certificate is not provided and do not fail if trust certificate is not specified (#283, #281)
  • CXXCBC-245: Fix encoding of durability frame (#277)
  • CXXCBC-246: Convert not_stored code to document_exists (#278)
  • CXXCBC-251: Fix snappy decompression for get_replica (#296)
  • CXXCBC-253: query_options not setting scope_qualifier (#300)
  • SDKQE-2761: Fix failures in serverless mode (#274)
  • Don't log expected warnings in DNS resolver (#294)

Public API:

Resource management and performance fixes:

  • CXXCBC-225: don't throw exceptions when socket options cannot be set (#270)

Build system fixes:

  • Move away from reinterpret_pointer_cast<> for MacOS build issue (#288)
  • Improve OpenSSL detection on Windows (#272)
  • CXXCBC-226: ensure that moving from movable_function will clear the source (#271)

Enhancements:

  • Update ASIO to get most recent channels (#299)
  • CXXCBC-235: update code comment about default root CA (#282)
  • CXXCBC-221: Update "wan_development" config profile (#269)
  • CXXCBC-249: allow to construct cluster object using public API (#291)

Transactions:

1.0.0-beta.3

20 Feb 13:14
1.0.0-beta.3
821645b
Compare
Choose a tag to compare
1.0.0-beta.3 Pre-release
Pre-release

Public API:

  • Split private/public API and update namespaces (#230)
  • Expose lookup_in as public API (#248)
  • Expose touch and get_and_touch in public API (#245)
  • Improve usability of mutate_in API (#244)
  • CXXCBC-53: expose get and mutation operations to public API (#240)
  • Move error codes to public API (#232)
  • CXXCBC-88: Set production as default namespace for view query (#209)
  • CXXCBC-52: Implement replica read operations (#221, #253, #234)
  • CXXCBC-151: Add support for raw to view request (#177)
  • CXXCBC-170: use hostname to detect Capella suffix (#198)
  • CXXCBC-152: Add on error option to view request (#178)

Bug fixes:

  • CXXCBC-134: Close http_session before conecting to next endpoint (#213)
  • CXXCBC-179: fix parsing responses with chunked meta trailer (#191)
  • CXXCBC-170: add extra check for missing CA for TLS connections (#197)
  • CXXCBC-182: add extra check for keywords in query index fields (#196)
  • CXXCBC-173: complete streaming lexer even if pointer didn't match (#195)
  • CXXCBC-212: reprepare and retry query on 4040, 4050 and 4070 (#257)
  • CXXCBC-174: reduce scope of the http request lock (#259)
  • CXXCBC-176: ignore 'is_primary' for named primary indexes when dropping (#202)
  • return subdocument error context from future-based subdoc methods (#258)

Enhancements:

  • CXXCBC-198: Implement build deferred indexes per RFC-54 (#238)
  • CXXCBC-220: query_index_build_deferred (#267)
  • CXXCBC-219: compound operation for build deferred indexes (#264)
  • Add missing includes to query_index_build_deferred (#266)
  • CXXCBC-53: implement legacy durability for mutation operations (#252, #241)
  • Fixed insert ops incorrectly encoding durability framing extras. (#217)
  • use movable_function for observe poller (#265)
  • [CXXCBC-217]: allow to get tao::json:(https://issues.couchbase.com/browse/CXXCBC-217):value from transcoder (#261)
  • CXXCBC-215: hide subdoc implementation details (#256)
  • CXXCBC-216: allow to use movable_function for replica callbacks (#260)
  • CXXCBC-156: use vector of bytes instead of string for binary data (#216)
  • CXXCBC-161, CXXCBC-94: update ping implementation (#211)
  • CXXCBC-93: Use an enum for analytics metadata status (#225)