libcouchbase 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.travis.yml +2 -2
- data/ext/libcouchbase/CMakeLists.txt +51 -25
- data/ext/libcouchbase/CONTRIBUTING.md +46 -65
- data/ext/libcouchbase/RELEASE_NOTES.markdown +163 -0
- data/ext/libcouchbase/cmake/Modules/DownloadLcbDep.cmake +9 -11
- data/ext/libcouchbase/cmake/Modules/FindProfiler.cmake +16 -0
- data/ext/libcouchbase/cmake/Modules/GetVersionInfo.cmake +6 -6
- data/ext/libcouchbase/cmake/config-cmake.h.in +2 -0
- data/ext/libcouchbase/cmake/configure +16 -0
- data/ext/libcouchbase/example/CMakeLists.txt +17 -2
- data/ext/libcouchbase/example/analytics/.gitignore +1 -0
- data/ext/libcouchbase/example/analytics/analytics.c +158 -0
- data/ext/libcouchbase/example/analytics/build-queries.rb +34 -0
- data/ext/libcouchbase/example/analytics/cJSON.c +1 -0
- data/ext/libcouchbase/example/analytics/cJSON.h +1 -0
- data/ext/libcouchbase/example/analytics/queries.h +113 -0
- data/ext/libcouchbase/example/analytics/queries/00-show-dataverse.json +5 -0
- data/ext/libcouchbase/example/analytics/queries/01-setup-dataset-breweries.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/02-setup-dataset-beers.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/03-initiate-shadow.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/04-list-datasets.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/05-count-breweries.json +5 -0
- data/ext/libcouchbase/example/analytics/queries/06-first-brewery.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/07-key-based-lookup.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/08-exact-match-lookup.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/09-exact-match-lookup-different-shape.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/10-other-query-filters.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/11-equijoin.json +9 -0
- data/ext/libcouchbase/example/analytics/queries/12-equijoin-select-star.json +10 -0
- data/ext/libcouchbase/example/analytics/queries/13-ansi-join.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/14-join-select-values.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/15-nested-outer-join.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/16-theta-join.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/17-existential-quantification.json +9 -0
- data/ext/libcouchbase/example/analytics/queries/18-universal-quantification.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/19-simple-aggregation.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/20-simple-aggregation-unwrapped-value.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/21-simple-aggregation-explicit.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/22-grouping-and-aggregation.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/23-grouping-and-aggregation-with-hint.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/24-grouping-and-limits.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/25-named-parameters.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/26-positional-parameters.json +7 -0
- data/ext/libcouchbase/example/crypto/common_provider.c +2 -0
- data/ext/libcouchbase/example/crypto/common_provider.h +2 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_decrypt.c +5 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_encrypt.c +0 -1
- data/ext/libcouchbase/example/crypto/openssl_symmetric_provider.c +16 -26
- data/ext/libcouchbase/example/db/db.c +10 -6
- data/ext/libcouchbase/example/fts/.gitignore +1 -0
- data/ext/libcouchbase/example/fts/build-queries.rb +33 -0
- data/ext/libcouchbase/example/fts/fts.c +142 -0
- data/ext/libcouchbase/example/fts/queries.h +61 -0
- data/ext/libcouchbase/example/fts/queries/00-simple-text-query.json +12 -0
- data/ext/libcouchbase/example/fts/queries/01-simple-text-query-on-non-default-index.json +9 -0
- data/ext/libcouchbase/example/fts/queries/02-simple-text-query-on-stored-field.json +13 -0
- data/ext/libcouchbase/example/fts/queries/03-match-query-with-facet.json +19 -0
- data/ext/libcouchbase/example/fts/queries/04-docid-query.json +11 -0
- data/ext/libcouchbase/example/fts/queries/05-unanalyzed-term-query-with-fuzziness-level-of-0.json +13 -0
- data/ext/libcouchbase/example/fts/queries/06-unanalyzed-term-query-with-fuzziness-level-of-2.json +14 -0
- data/ext/libcouchbase/example/fts/queries/07-match-phrase-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries/08-phrase-query.json +16 -0
- data/ext/libcouchbase/example/fts/queries/09-query-string-query.json +9 -0
- data/ext/libcouchbase/example/fts/queries/10-conjunction-query.json +21 -0
- data/ext/libcouchbase/example/fts/queries/11-wild-card-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries/12-numeric-range-query.json +11 -0
- data/ext/libcouchbase/example/fts/queries/13-regexp-query.json +13 -0
- data/ext/libcouchbase/example/minimal/.gitignore +1 -0
- data/ext/libcouchbase/example/minimal/query.c +185 -0
- data/ext/libcouchbase/example/subdoc/subdoc-xattrs.c +2 -2
- data/ext/libcouchbase/example/tracing/cJSON.c +1 -1
- data/ext/libcouchbase/example/tracing/cJSON.h +1 -1
- data/ext/libcouchbase/include/libcouchbase/cbft.h +38 -4
- data/ext/libcouchbase/include/libcouchbase/cntl-private.h +8 -97
- data/ext/libcouchbase/include/libcouchbase/cntl.h +288 -8
- data/ext/libcouchbase/include/libcouchbase/couchbase.h +47 -10
- data/ext/libcouchbase/include/libcouchbase/crypto.h +214 -48
- data/ext/libcouchbase/include/libcouchbase/deprecated.h +12 -0
- data/ext/libcouchbase/include/libcouchbase/error.h +33 -2
- data/ext/libcouchbase/include/libcouchbase/ixmgmt.h +1 -1
- data/ext/libcouchbase/include/libcouchbase/n1ql.h +87 -13
- data/ext/libcouchbase/include/libcouchbase/subdoc.h +3 -7
- data/ext/libcouchbase/include/libcouchbase/tracing.h +174 -56
- data/ext/libcouchbase/include/libcouchbase/vbucket.h +21 -1
- data/ext/libcouchbase/include/libcouchbase/views.h +49 -4
- data/ext/libcouchbase/packaging/deb/control +2 -3
- data/ext/libcouchbase/packaging/parse-git-describe.pl +1 -1
- data/ext/libcouchbase/plugins/io/libev/CMakeLists.txt +7 -5
- data/ext/libcouchbase/plugins/io/libevent/CMakeLists.txt +7 -5
- data/ext/libcouchbase/plugins/io/libuv/CMakeLists.txt +14 -12
- data/ext/libcouchbase/plugins/io/libuv/libuv_compat.h +3 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-libuv.c +14 -6
- data/ext/libcouchbase/plugins/io/select/CMakeLists.txt +7 -5
- data/ext/libcouchbase/src/bootstrap.cc +6 -1
- data/ext/libcouchbase/src/bucketconfig/bc_cccp.cc +2 -7
- data/ext/libcouchbase/src/bucketconfig/bc_file.cc +1 -1
- data/ext/libcouchbase/src/bucketconfig/bc_http.cc +4 -11
- data/ext/libcouchbase/src/bucketconfig/clconfig.h +29 -36
- data/ext/libcouchbase/src/bucketconfig/confmon.cc +4 -2
- data/ext/libcouchbase/src/cntl.cc +181 -151
- data/ext/libcouchbase/src/config_static.h +1 -1
- data/ext/libcouchbase/src/connspec.cc +5 -1
- data/ext/libcouchbase/src/connspec.h +3 -1
- data/ext/libcouchbase/src/crypto.cc +93 -80
- data/ext/libcouchbase/src/dns-srv.cc +1 -1
- data/ext/libcouchbase/src/handler.cc +0 -1
- data/ext/libcouchbase/src/http/http-priv.h +1 -0
- data/ext/libcouchbase/src/http/http.cc +1 -2
- data/ext/libcouchbase/src/instance.cc +21 -2
- data/ext/libcouchbase/src/internal.h +1 -0
- data/ext/libcouchbase/src/lcbio/ctx.c +24 -3
- data/ext/libcouchbase/src/lcbio/ioutils.cc +1 -1
- data/ext/libcouchbase/src/lcbio/rw-inl.h +22 -1
- data/ext/libcouchbase/src/lcbio/ssl.h +2 -0
- data/ext/libcouchbase/src/mc/compress.cc +18 -11
- data/ext/libcouchbase/src/mc/mcreq.c +2 -0
- data/ext/libcouchbase/src/mc/mcreq.h +1 -1
- data/ext/libcouchbase/src/mcserver/mcserver.cc +163 -6
- data/ext/libcouchbase/src/mcserver/negotiate.cc +17 -7
- data/ext/libcouchbase/src/n1ql/n1ql.cc +12 -3
- data/ext/libcouchbase/src/newconfig.cc +4 -3
- data/ext/libcouchbase/src/nodeinfo.cc +1 -7
- data/ext/libcouchbase/src/operations/observe.cc +1 -0
- data/ext/libcouchbase/src/operations/ping.cc +5 -3
- data/ext/libcouchbase/src/retryq.cc +22 -0
- data/ext/libcouchbase/src/retryq.h +2 -1
- data/ext/libcouchbase/src/rnd.cc +5 -12
- data/ext/libcouchbase/src/settings.c +4 -7
- data/ext/libcouchbase/src/settings.h +6 -2
- data/ext/libcouchbase/src/strcodecs/base64.c +59 -0
- data/ext/libcouchbase/src/strcodecs/strcodecs.h +2 -0
- data/ext/libcouchbase/src/trace.h +2 -2
- data/ext/libcouchbase/src/tracing/span.cc +177 -45
- data/ext/libcouchbase/src/tracing/threshold_logging_tracer.cc +70 -28
- data/ext/libcouchbase/src/tracing/tracing-internal.h +33 -48
- data/ext/libcouchbase/src/vbucket/vbucket.c +146 -30
- data/ext/libcouchbase/src/wait.cc +1 -1
- data/ext/libcouchbase/tests/CMakeLists.txt +13 -4
- data/ext/libcouchbase/tests/iotests/mock-environment.cc +1 -1
- data/ext/libcouchbase/tests/iotests/t_misc.cc +2 -2
- data/ext/libcouchbase/tests/iotests/t_views.cc +1 -1
- data/ext/libcouchbase/tests/iotests/testutil.cc +3 -2
- data/ext/libcouchbase/tests/vbucket/confdata/map_node_present_nodesext_missing_nodes.json +94 -0
- data/ext/libcouchbase/tests/vbucket/t_config.cc +15 -0
- data/ext/libcouchbase/tools/CMakeLists.txt +11 -6
- data/ext/libcouchbase/tools/cbc-handlers.h +9 -0
- data/ext/libcouchbase/tools/cbc-proxy.cc +1 -1
- data/ext/libcouchbase/tools/cbc.cc +33 -5
- data/ext/libcouchbase/tools/common/options.cc +1 -1
- data/ext/libcouchbase/tools/extract-packets.rb +110 -0
- data/lib/libcouchbase/connection.rb +13 -5
- data/lib/libcouchbase/ext/tasks.rb +1 -1
- data/lib/libcouchbase/version.rb +1 -1
- metadata +62 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: b172187390ddfc2dc86237a79ef832a549bca165444698ede8f63809e4c3f105
|
|
4
|
+
data.tar.gz: fecdac01bd86eff07dd3df41255d1e32e69584ea68fe1fafee94a077f692a8e1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: faba3770db49503a88fda091f6dcc1fd4b7a597c5477086e546425c30da5bcebfd1e769429d35be9c0d9a6c2296642975460e474050f27cb8d89e361d82bbd48
|
|
7
|
+
data.tar.gz: bcd23374ae6b40ffb7e41aa9929289f1a653753533b7e07aa47d807beaf8bbe24aaef4e0a3316ccf281ddeb6f5a0ca19a52b178896879c0833f77f459db32ec2
|
data/.travis.yml
CHANGED
|
@@ -6,7 +6,7 @@ rvm:
|
|
|
6
6
|
- jruby-9.1.13.0
|
|
7
7
|
- jruby-head
|
|
8
8
|
- rubinius
|
|
9
|
-
- rubinius-3.
|
|
9
|
+
- rubinius-3.86
|
|
10
10
|
branches:
|
|
11
11
|
only:
|
|
12
12
|
- master
|
|
@@ -33,6 +33,6 @@ matrix:
|
|
|
33
33
|
- rvm: jruby-head
|
|
34
34
|
- rvm: ruby-head
|
|
35
35
|
- rvm: rubinius
|
|
36
|
-
- rvm: rubinius-3.
|
|
36
|
+
- rvm: rubinius-3.86
|
|
37
37
|
sudo: required
|
|
38
38
|
dist: trusty
|
|
@@ -23,9 +23,8 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)
|
|
|
23
23
|
# These variables can be modified as needed
|
|
24
24
|
|
|
25
25
|
# Couchbase mock path to download
|
|
26
|
-
SET(COUCHBASE_MOCK_VERSION
|
|
27
|
-
|
|
28
|
-
SET(COUCHBASE_MOCK_DLSERVER http://packages.couchbase.com/clients/c/mock)
|
|
26
|
+
SET(COUCHBASE_MOCK_VERSION 1.5.19)
|
|
27
|
+
SET(COUCHBASE_MOCK_URL "https://github.com/couchbase/CouchbaseMock/releases/download/${COUCHBASE_MOCK_VERSION}/CouchbaseMock-${COUCHBASE_MOCK_VERSION}.jar")
|
|
29
28
|
project(libcouchbase)
|
|
30
29
|
|
|
31
30
|
OPTION(LCB_NO_TESTS "Disable building of tests" OFF)
|
|
@@ -46,6 +45,13 @@ OPTION(LCB_EMBED_PLUGIN_LIBEVENT "Embed the libevent plugin" OFF)
|
|
|
46
45
|
OPTION(LCB_STATIC_LIBEVENT "Link static libevent (only applicable if EMBED_PLUGIN_LIBEVENT is ON" OFF)
|
|
47
46
|
OPTION(LCB_USE_HDR_HISTOGRAM "Use HdrHistogram for statistics recording" OFF)
|
|
48
47
|
OPTION(LCB_TRACING "Enable builtin tracing" ON)
|
|
48
|
+
OPTION(LCB_INSTALL_HEADERS "Install header files" ON)
|
|
49
|
+
OPTION(LCB_INSTALL_PKGCONFIG "Install pkgconfig/libcouchbase.pc" ON)
|
|
50
|
+
OPTION(LCB_DUMP_PACKETS "Enable dumping network packets on TRACE log level" OFF)
|
|
51
|
+
OPTION(LCB_USE_PROFILER "Build with profiler support (from gperftools)" OFF)
|
|
52
|
+
OPTION(LCB_SKIP_GIT_VERSION "Skip version detection using git" OFF)
|
|
53
|
+
|
|
54
|
+
STRING(TIMESTAMP LCB_BUILD_TIMESTAMP "%Y-%m-%d %H:%M:%S" UTC)
|
|
49
55
|
|
|
50
56
|
### END CONFIGURABLES ###
|
|
51
57
|
IF(MSVC)
|
|
@@ -77,11 +83,16 @@ INCLUDE(cmake/Modules/FindCouchbaseLibev.cmake)
|
|
|
77
83
|
INCLUDE(cmake/Modules/FindCouchbaseLibuv.cmake)
|
|
78
84
|
INCLUDE(cmake/Modules/GetPlatformCCInfo.cmake)
|
|
79
85
|
INCLUDE(cmake/Modules/GetVersionInfo.cmake)
|
|
80
|
-
|
|
86
|
+
IF (MSVC)
|
|
87
|
+
INCLUDE(cmake/Modules/CopyPDB.cmake)
|
|
88
|
+
ENDIF ()
|
|
81
89
|
INCLUDE(cmake/Modules/DownloadLcbDep.cmake)
|
|
82
90
|
INCLUDE(CheckIncludeFiles)
|
|
83
91
|
INCLUDE(cmake/source_files.cmake)
|
|
84
92
|
|
|
93
|
+
IF(LCB_USE_PROFILER)
|
|
94
|
+
INCLUDE(cmake/Modules/FindProfiler.cmake)
|
|
95
|
+
ENDIF()
|
|
85
96
|
IF(LCB_USE_HDR_HISTOGRAM)
|
|
86
97
|
INCLUDE(cmake/Modules/FindCouchbaseHdrHistogram.cmake)
|
|
87
98
|
ENDIF()
|
|
@@ -110,7 +121,7 @@ IF(NOT CMAKE_BUILD_TYPE)
|
|
|
110
121
|
SET(CPACK_INSTALL_SCRIPT
|
|
111
122
|
"${PROJECT_SOURCE_DIR}/cmake/Modules/DistScript.cmake")
|
|
112
123
|
ENDIF()
|
|
113
|
-
SET(lcb_package_name "libcouchbase-${LCB_VERSION}_${
|
|
124
|
+
SET(lcb_package_name "libcouchbase-${LCB_VERSION}_${LCB_CC_STRING}_${LCB_ARCH_STRING}")
|
|
114
125
|
SET(CPACK_PACKAGE_FILE_NAME ${lcb_package_name})
|
|
115
126
|
|
|
116
127
|
IF(WIN32)
|
|
@@ -229,19 +240,25 @@ IF(LCB_NO_SSL)
|
|
|
229
240
|
MESSAGE(STATUS "SSL support will be disabled")
|
|
230
241
|
ADD_DEFINITIONS(-DLCB_NO_SSL=1)
|
|
231
242
|
ELSE()
|
|
232
|
-
IF(
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
243
|
+
IF(NOT OPENSSL_FOUND)
|
|
244
|
+
# When building under Couchbase Server we've already detected
|
|
245
|
+
# and set the appropriate OpenSSL variables
|
|
246
|
+
IF(APPLE)
|
|
247
|
+
IF(NOT OpenSSL_DIR)
|
|
248
|
+
EXECUTE_PROCESS(COMMAND brew --prefix openssl
|
|
249
|
+
OUTPUT_VARIABLE OPENSSL_ROOT_DIR
|
|
250
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
251
|
+
MESSAGE(STATUS "Found OpenSSL Prefix: ${OPENSSL_ROOT_DIR}")
|
|
252
|
+
ENDIF()
|
|
238
253
|
ENDIF()
|
|
239
|
-
|
|
240
|
-
|
|
254
|
+
FIND_PACKAGE(OpenSSL)
|
|
255
|
+
ENDIF(NOT OPENSSL_FOUND)
|
|
256
|
+
|
|
241
257
|
IF(OPENSSL_FOUND)
|
|
242
258
|
MESSAGE(STATUS "SSL Found")
|
|
243
259
|
ELSE()
|
|
244
|
-
MESSAGE(STATUS "SSL Not Found")
|
|
260
|
+
MESSAGE(STATUS "SSL Not Found. SSL support will be disabled")
|
|
261
|
+
ADD_DEFINITIONS(-DLCB_NO_SSL=1)
|
|
245
262
|
ENDIF()
|
|
246
263
|
ENDIF()
|
|
247
264
|
|
|
@@ -320,12 +337,14 @@ ELSE()
|
|
|
320
337
|
SET_TARGET_PROPERTIES(couchbase PROPERTIES
|
|
321
338
|
LINK_FLAGS "-compatibility_version ${LCB_SONAME_MAJOR} -current_version ${LCB_SONAME_FULL}"
|
|
322
339
|
OUTPUT_NAME couchbase.2)
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
340
|
+
IF(NOT LCB_BUILD_STATIC)
|
|
341
|
+
ADD_CUSTOM_COMMAND(TARGET couchbase POST_BUILD
|
|
342
|
+
COMMAND rm -f libcouchbase.dylib
|
|
343
|
+
COMMAND ln libcouchbase.2.dylib libcouchbase.dylib
|
|
344
|
+
WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
|
|
345
|
+
INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libcouchbase.dylib
|
|
346
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
347
|
+
ENDIF()
|
|
329
348
|
ENDIF()
|
|
330
349
|
|
|
331
350
|
SET_TARGET_PROPERTIES(couchbase PROPERTIES PREFIX "lib")
|
|
@@ -334,6 +353,9 @@ SET(LCB_LINK_DEPS ${lcb_plat_libs} ${lcb_ssl_libs} ${LCB_HDR_HISTOGRAM_LINK})
|
|
|
334
353
|
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
335
354
|
SET(LCB_LINK_DEPS ${LCB_LINK_DEPS} rt)
|
|
336
355
|
ENDIF()
|
|
356
|
+
IF(LIBPROFILER)
|
|
357
|
+
SET(LCB_LINK_DEPS ${LCB_LINK_DEPS} ${LIBPROFILER})
|
|
358
|
+
ENDIF()
|
|
337
359
|
|
|
338
360
|
TARGET_LINK_LIBRARIES(couchbase ${LCB_LINK_DEPS})
|
|
339
361
|
TARGET_LINK_LIBRARIES(couchbaseS ${LCB_LINK_DEPS})
|
|
@@ -384,20 +406,24 @@ INSTALL(TARGETS couchbase
|
|
|
384
406
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
385
407
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
386
408
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
409
|
+
IF(LCB_INSTALL_HEADERS)
|
|
410
|
+
INSTALL(DIRECTORY include/libcouchbase ${LCB_GENSRCDIR}/libcouchbase
|
|
411
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
412
|
+
FILES_MATCHING PATTERN *.h PATTERN *.c)
|
|
413
|
+
ENDIF()
|
|
390
414
|
|
|
391
415
|
INSTALL(DIRECTORY doc/man/ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 FILES_MATCHING PATTERN *.1)
|
|
392
416
|
INSTALL(DIRECTORY doc/man/ DESTINATION ${CMAKE_INSTALL_MANDIR}/man4 FILES_MATCHING PATTERN *.4)
|
|
393
417
|
|
|
394
|
-
|
|
418
|
+
IF(MSVC)
|
|
419
|
+
INSTALL_PDBS(couchbase)
|
|
420
|
+
ENDIF()
|
|
395
421
|
|
|
396
422
|
SET(_lcb_tarname "libcouchbase-${LCB_VERSION}")
|
|
397
423
|
SET(_lcb_manifest "${LCB_GENINFODIR}/MANIFEST")
|
|
398
424
|
|
|
399
425
|
# pkg-config stuff goes with installation
|
|
400
|
-
IF(NOT WIN32)
|
|
426
|
+
IF(NOT WIN32 AND LCB_INSTALL_PKGCONFIG)
|
|
401
427
|
CONFIGURE_FILE(packaging/libcouchbase.pc.in packaging/libcouchbase.pc @ONLY)
|
|
402
428
|
INSTALL(FILES ${PROJECT_BINARY_DIR}/packaging/libcouchbase.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
403
429
|
ENDIF()
|
|
@@ -1,75 +1,61 @@
|
|
|
1
1
|
# Contributing
|
|
2
2
|
|
|
3
|
-
In addition to filing bugs, you may contribute by submitting patches
|
|
4
|
-
to
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
For something to be accepted into the codebase, it must be formatted
|
|
11
|
-
properly and have undergone proper testing. While there are no formatting
|
|
12
|
-
guidelines per se, the code should look similar to the existing code
|
|
13
|
-
within the library.
|
|
3
|
+
In addition to filing bugs, you may contribute by submitting patches to fix bugs in the library. Contributions may be
|
|
4
|
+
submitting to <http://review.couchbase.com>. We use Gerrit as our code review system - and thus submitting a change
|
|
5
|
+
would require an account there. Note that pull requests will not be ignored but will be responded to much quicker once
|
|
6
|
+
they are converted into Gerrit.
|
|
7
|
+
|
|
8
|
+
For something to be accepted into the codebase, it must be formatted properly and have undergone proper testing. While
|
|
9
|
+
there are no formatting guidelines per se, the code should look similar to the existing code within the library.
|
|
14
10
|
|
|
15
11
|
## Branches and Tags
|
|
16
12
|
|
|
17
|
-
Released versions of the library are marked as annotated tags inside
|
|
18
|
-
the repository.
|
|
13
|
+
Released versions of the library are marked as annotated tags inside the repository.
|
|
19
14
|
|
|
20
|
-
* The `
|
|
21
|
-
|
|
22
|
-
* The `master` branch represents the mainline branch. The master
|
|
23
|
-
branch typically consists of content going into the next release.
|
|
15
|
+
* The `master` branch represents the mainline branch. The master branch typically consists of content going into the
|
|
16
|
+
next release.
|
|
24
17
|
|
|
25
18
|
## Contributing Patches
|
|
26
19
|
|
|
27
|
-
If you wish to contribute a new feature or a bug fix to the library, try to follow
|
|
28
|
-
|
|
20
|
+
If you wish to contribute a new feature or a bug fix to the library, try to follow the following guidelines to help
|
|
21
|
+
ensure your change gets merged upstream.
|
|
29
22
|
|
|
30
23
|
### Before you begin
|
|
31
24
|
|
|
32
|
-
For any code change, ensure the new code you write looks similar to the code
|
|
33
|
-
|
|
34
|
-
code stand out as little as possible from its surrounding neighborhood (unless
|
|
25
|
+
For any code change, ensure the new code you write looks similar to the code surrounding it. We have no strict code
|
|
26
|
+
style policies, but do request that your code stand out as little as possible from its surrounding neighborhood (unless
|
|
35
27
|
of course your change is stylistic in nature).
|
|
36
28
|
|
|
37
|
-
If your change is going to involve a substantial amount of time or effort, please
|
|
38
|
-
|
|
39
|
-
and direction where possible.
|
|
29
|
+
If your change is going to involve a substantial amount of time or effort, please attempt to discuss it with the project
|
|
30
|
+
developers first who will provide assistance and direction where possible.
|
|
40
31
|
|
|
41
|
-
Additionally, note that the library uses C89 (AKA "ANSI C") with some extensions
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
Additionally, note that the library uses C89 (AKA "ANSI C") with some extensions that are known to work on both GCC and
|
|
33
|
+
Visual Studio for `.c` files, and C++11 for `.cc` files. Please ensure your code conforms to this, unless the new code
|
|
34
|
+
is specific to a given platform.
|
|
44
35
|
|
|
45
36
|
#### For new features
|
|
46
37
|
|
|
47
|
-
Ensure the feature you are adding does not already exist, and think about how
|
|
48
|
-
|
|
49
|
-
are more likely to be accepted.
|
|
38
|
+
Ensure the feature you are adding does not already exist, and think about how this feature may be useful for other
|
|
39
|
+
users. In general less intrusive changes are more likely to be accepted.
|
|
50
40
|
|
|
51
41
|
#### For fixing bugs
|
|
52
42
|
|
|
53
|
-
Ensure the bug you are fixing is actually a bug (and not a usage) error, and
|
|
54
|
-
|
|
55
|
-
notes as well as the issue tracker to see a list of open and resolved issues.
|
|
43
|
+
Ensure the bug you are fixing is actually a bug (and not a usage) error, and that it has not been fixed in a more recent
|
|
44
|
+
version. Please read the release notes as well as the issue tracker to see a list of open and resolved issues.
|
|
56
45
|
|
|
57
46
|
### Code Review
|
|
58
47
|
|
|
59
48
|
#### Signing up on Gerrit
|
|
60
49
|
|
|
61
|
-
Everything that is merged into the library goes through a code review process.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
page and selecting the _Agreements_ link on the left. When you've done that, be
|
|
71
|
-
sure to notify us in IRC (at _#libcouchbase_) and/or send an email to
|
|
72
|
-
**matt**AT**couchbase**DOTCOM as you will require manual approval before being
|
|
50
|
+
Everything that is merged into the library goes through a code review process. The code review process is done via
|
|
51
|
+
[Gerrit](http://review.couchbase.org) (Unfortunately we cannot merge pull requests, though it is fairly simple to
|
|
52
|
+
convert a pull request to gerrit, as seen later. If you know a way to integrate pull requests with Gerrit, please let us
|
|
53
|
+
know).
|
|
54
|
+
|
|
55
|
+
To sign up for a gerrit account, go to http://review.couchbase.org and click on the _Register_ link at the top
|
|
56
|
+
right. Once you've signed in you will need to sign the CLA (Contributor License Agreement) by going you your gerrit
|
|
57
|
+
account page and selecting the _Agreements_ link on the left. When you've done that, be sure to notify us in IRC (at
|
|
58
|
+
_#libcouchbase_) and/or send an email to **matt**AT**couchbase**DOTCOM as you will require manual approval before being
|
|
73
59
|
able to submit a request for change.
|
|
74
60
|
|
|
75
61
|
Once approved, you should add your public SSH key to gerrit.
|
|
@@ -90,35 +76,30 @@ $ scp -P 29418 ${USERNAME}@review.couchbase.org:hooks/commit-msg .git/hooks
|
|
|
90
76
|
$ chmod a+x .git/hooks/commit-msg
|
|
91
77
|
```
|
|
92
78
|
|
|
93
|
-
The last change is required for annotating each commit message with a special
|
|
94
|
-
|
|
95
|
-
revisions of the same patch.
|
|
79
|
+
The last change is required for annotating each commit message with a special header known as `Change-Id`. This allows
|
|
80
|
+
Gerrit to group together different revisions of the same patch.
|
|
96
81
|
|
|
97
82
|
#### Pushing a changeset
|
|
98
83
|
|
|
99
|
-
Now that you have your change and a gerrit account to push to, you need to
|
|
100
|
-
|
|
84
|
+
Now that you have your change and a gerrit account to push to, you need to upload the change for review. To do so,
|
|
85
|
+
invoke the following incantation:
|
|
101
86
|
|
|
102
87
|
```
|
|
103
88
|
$ git push gerrit HEAD:refs/for/master
|
|
104
89
|
```
|
|
105
90
|
|
|
106
|
-
Where `gerrit` is the name of the _remote_ added earlier. You may encounter
|
|
107
|
-
|
|
91
|
+
Where `gerrit` is the name of the _remote_ added earlier. You may encounter some errors when pushing. The most common
|
|
92
|
+
are:
|
|
108
93
|
|
|
109
|
-
* "You are not authorized to push to this repository". You will get this if your
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
`git rebase -i origin/master` and selecting `reword` for all the commits; which
|
|
115
|
-
will automatically fill in the Change-Id).
|
|
94
|
+
* "You are not authorized to push to this repository". You will get this if your account has not yet been approved.
|
|
95
|
+
* "Missing Change-Id". You need to install the `commit-msg` hook as described above. Note that even once you do this,
|
|
96
|
+
you will need to ensure that any prior commits already have this header - this may be done by doing an interactive
|
|
97
|
+
rebase (e.g. `git rebase -i origin/master` and selecting `reword` for all the commits; which will automatically fill
|
|
98
|
+
in the Change-Id).
|
|
116
99
|
|
|
117
100
|
|
|
118
|
-
Once you've pushed your changeset you can add people to review. Currently these
|
|
119
|
-
are:
|
|
101
|
+
Once you've pushed your changeset you can add people to review. Currently these are:
|
|
120
102
|
|
|
121
|
-
* Mark Nunberg
|
|
122
|
-
* Brett Lawson
|
|
123
103
|
* Sergey Avseyev
|
|
124
|
-
|
|
104
|
+
* Brett Lawson
|
|
105
|
+
* Ellis Breen
|
|
@@ -1,5 +1,168 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
+
## 2.9.5 (September 21 2018)
|
|
4
|
+
|
|
5
|
+
* [CCBC-980](https://issues.couchbase.com/browse/CCBC-980): Make idle timeout
|
|
6
|
+
for HTTP pool tunable
|
|
7
|
+
|
|
8
|
+
* [CCBC-977](https://issues.couchbase.com/browse/CCBC-977): Update
|
|
9
|
+
documentation analytics. Add example demonstrating analytics queries
|
|
10
|
+
|
|
11
|
+
* [CCBC-968](https://issues.couchbase.com/browse/CCBC-968): Improve log message
|
|
12
|
+
for `SELECT_BUCKET` on `EACCESS`. Add note saying that this error code might
|
|
13
|
+
be because of missing bucket.
|
|
14
|
+
|
|
15
|
+
* [CCBC-976](https://issues.couchbase.com/browse/CCBC-976): Keep HTTP
|
|
16
|
+
connections pooled after `lcb_ping3`
|
|
17
|
+
|
|
18
|
+
* [CCBC-975](https://issues.couchbase.com/browse/CCBC-975): Make sure kv
|
|
19
|
+
service is only enabled if in nodes list.
|
|
20
|
+
|
|
21
|
+
* [CCBC-972](https://issues.couchbase.com/browse/CCBC-972): Fix memory issues
|
|
22
|
+
reported by valgrind
|
|
23
|
+
|
|
24
|
+
* [CCBC-973](https://issues.couchbase.com/browse/CCBC-974): Correctly convert
|
|
25
|
+
non-null terminated tag buffers to `Json::Value`
|
|
26
|
+
|
|
27
|
+
## 2.9.4 (August 29 2018)
|
|
28
|
+
|
|
29
|
+
* [CCBC-970](https://issues.couchbase.com/browse/CCBC-970): Update list of retriable errors for
|
|
30
|
+
analytics
|
|
31
|
+
|
|
32
|
+
* [CCBC-965](https://issues.couchbase.com/browse/CCBC-965): Update log level in config cache
|
|
33
|
+
provider
|
|
34
|
+
|
|
35
|
+
* [CCBC-967](https://issues.couchbase.com/browse/CCBC-967): optimize Threshold Tracer queues/sorting
|
|
36
|
+
|
|
37
|
+
* [CCBC-963](https://issues.couchbase.com/browse/CCBC-963): remove global state from random
|
|
38
|
+
generator, and make it thread-safe.
|
|
39
|
+
|
|
40
|
+
* [CCBC-966](https://issues.couchbase.com/browse/CCBC-966): return current network for
|
|
41
|
+
LCB_CNTL_NETWORK
|
|
42
|
+
|
|
43
|
+
* [CCBC-969](https://issues.couchbase.com/browse/CCBC-969): Allow to skip version from git tags
|
|
44
|
+
|
|
45
|
+
* [CCBC-961](https://issues.couchbase.com/browse/CCBC-961): Add examples for FTS queries
|
|
46
|
+
|
|
47
|
+
* [CCBC-971](https://issues.couchbase.com/browse/CCBC-971): disable dead socket detection for older
|
|
48
|
+
libuv (fixes build on platforms, where old libuv-dev package installed).
|
|
49
|
+
|
|
50
|
+
* Report HELO features to logger in the single line.
|
|
51
|
+
|
|
52
|
+
* Allow to select compression mode in connection string. This might be useful for debugging
|
|
53
|
+
purposes. For example, to bypass inflation step when receiving data.
|
|
54
|
+
|
|
55
|
+
$ CONNSTRING=couchbase://localhost/default?compression=deflate_only
|
|
56
|
+
$ cbc cat -U $CONNSTRING 00000000.json > bindoc.dat
|
|
57
|
+
00000000.json CAS=0x15431f831dc60000, Flags=0x0, Size=739, Datatype=0x03(JSON,SNAPPY)
|
|
58
|
+
|
|
59
|
+
## 2.9.3 (July 18 2018)
|
|
60
|
+
|
|
61
|
+
* [CCBC-955](https://issues.couchbase.com/browse/CCBC-955): Parse uint32 as
|
|
62
|
+
unsigned ints instead of timeouts. Some settings were interpreted as time
|
|
63
|
+
values, while they should not (e.g. console_log_level, compression_min_size
|
|
64
|
+
etc). This issue forced the library to misinterpret user input (converter was
|
|
65
|
+
multiplying all values to 1000000, e.g. log level was always TRACE).
|
|
66
|
+
|
|
67
|
+
* [CCBC-957](https://issues.couchbase.com/browse/CCBC-957): Automatically
|
|
68
|
+
disable SSL support, when OpenSSL is unavailable.
|
|
69
|
+
|
|
70
|
+
* [CCBC-954](https://issues.couchbase.com/browse/CCBC-954): Define EFTYPE
|
|
71
|
+
error code if it does not exist. Fixes support of libuv 1.21 and higher.
|
|
72
|
+
|
|
73
|
+
* [CCBC-951](https://issues.couchbase.com/browse/CCBC-951): Remove
|
|
74
|
+
experimental warning from subdoc API.
|
|
75
|
+
|
|
76
|
+
* [CCBC-948](https://issues.couchbase.com/browse/CCBC-948): Consider retry
|
|
77
|
+
queue with only 0xb5 as empty. This allows a breakout from lcb_wait earlier
|
|
78
|
+
(when application operates in synchronous style). The old behavior, where
|
|
79
|
+
lcb_wait does not breakout until the library gets the first successful
|
|
80
|
+
configuration, still can be restored with `lcb_cntl(...,
|
|
81
|
+
LCB_CNTL_WAIT_FOR_CONFIG, ...)`.
|
|
82
|
+
|
|
83
|
+
* [CCBC-939](https://issues.couchbase.com/browse/CCBC-939): Optimize
|
|
84
|
+
the performance of built-in tracer. It now uses sllist for tags container
|
|
85
|
+
instead of Json::Value.
|
|
86
|
+
|
|
87
|
+
* [CCBC-958](https://issues.couchbase.com/browse/CCBC-958): Check tracing span
|
|
88
|
+
tags argument more pedantically and return error if arguments are not valid.
|
|
89
|
+
|
|
90
|
+
* [CCBC-956](https://issues.couchbase.com/browse/CCBC-956): Combine operation
|
|
91
|
+
id and name into single field in the threshold tracer.
|
|
92
|
+
|
|
93
|
+
* [CCBC-949](https://issues.couchbase.com/browse/CCBC-949): Do not hardcode
|
|
94
|
+
libevent dependencies in DEB packages. Instead let `dh_shlibdeps` script to
|
|
95
|
+
detect dependencies for each platform. This fixes a usless dependency on libevent-1
|
|
96
|
+
for ubuntu 18.04.
|
|
97
|
+
|
|
98
|
+
* [CCBC-947](https://issues.couchbase.com/browse/CCBC-947): Fix build scripts
|
|
99
|
+
for examples (when built with `-DLCB_BUILD_EXAMPLES=ON`).
|
|
100
|
+
|
|
101
|
+
And other small fixes and improvements.
|
|
102
|
+
|
|
103
|
+
## 2.9.2 (June 22 2018)
|
|
104
|
+
|
|
105
|
+
* [CCBC-946](https://issues.couchbase.com/browse/CCBC-946): Restore broken ABI in 360ea68ef7738d543bbd3feac3f2c3c6c8ff976b
|
|
106
|
+
|
|
107
|
+
## 2.9.1 (June 22 2018)
|
|
108
|
+
|
|
109
|
+
* [CCBC-942](https://issues.couchbase.com/browse/CCBC-942): Expose new error
|
|
110
|
+
codes for subdocument operations.
|
|
111
|
+
|
|
112
|
+
* [CCBC-866](https://issues.couchbase.com/browse/CCBC-866): Check cached
|
|
113
|
+
provider isn't NULL.
|
|
114
|
+
|
|
115
|
+
* [CCBC-890](https://issues.couchbase.com/browse/CCBC-890): Always check if SSL
|
|
116
|
+
used when getting ports.
|
|
117
|
+
|
|
118
|
+
* [CCBC-945](https://issues.couchbase.com/browse/CCBC-945): Allow to specify
|
|
119
|
+
logger in lcb_create().
|
|
120
|
+
|
|
121
|
+
* [CCBC-935](https://issues.couchbase.com/browse/CCBC-935): Display orphan
|
|
122
|
+
tracer report on WARN log level.
|
|
123
|
+
|
|
124
|
+
* [CCBC-936](https://issues.couchbase.com/browse/CCBC-936): Update default
|
|
125
|
+
tracing interval to 10 seconds.
|
|
126
|
+
|
|
127
|
+
* [CCBC-937](https://issues.couchbase.com/browse/CCBC-937): Implement support
|
|
128
|
+
for alternate addresses.
|
|
129
|
+
|
|
130
|
+
* [CCBC-943](https://issues.couchbase.com/browse/CCBC-943): Implement option to
|
|
131
|
+
dump TCP packets.
|
|
132
|
+
|
|
133
|
+
This change introduces new cmake option, which will force library to report
|
|
134
|
+
all incoming/outgoing TCP packets on TRACE log level. It renders the bytes
|
|
135
|
+
in Base64 encoding.
|
|
136
|
+
|
|
137
|
+
Also there is simple extraction tool, which beautifies packet traces, and
|
|
138
|
+
could be used like this:
|
|
139
|
+
|
|
140
|
+
cbc cat -vvv foo bar 2>&1 | tools/extract-packets.rb
|
|
141
|
+
|
|
142
|
+
## 2.9.0 (May 24 2018)
|
|
143
|
+
|
|
144
|
+
This release is mostly about API visibility bump from uncommited to committed,
|
|
145
|
+
but also includes several bug fixes.
|
|
146
|
+
|
|
147
|
+
* [CCBC-930](https://issues.couchbase.com/browse/CCBC-930): Dump threshold
|
|
148
|
+
logging tracer queues before destroying the tracer.
|
|
149
|
+
|
|
150
|
+
* Updates in crypto API as per RFC. This basically change of the API (ABI has
|
|
151
|
+
preserved compatible, but `v0` crypto API will return runtime error with 2.9.0
|
|
152
|
+
library. From this release, all encryption key management encapsulated into
|
|
153
|
+
crypto provider, so it does not need to expose key loader interface. In
|
|
154
|
+
addition, that user API is changed to conform RFC, and use noun `fields`
|
|
155
|
+
instead of `document` (e.g. `lcbcrypt_encrypt_fields`).
|
|
156
|
+
|
|
157
|
+
* [CCBC-925](https://issues.couchbase.com/browse/CCBC-925): Fix existence checks
|
|
158
|
+
for registered crypto providers.
|
|
159
|
+
|
|
160
|
+
* [CCBC-924](https://issues.couchbase.com/browse/CCBC-924): Initialize flag for
|
|
161
|
+
JSON server feature. Otherwise it might be left uninitialized and the library
|
|
162
|
+
will send JSON datatype to servers, which do not support it.
|
|
163
|
+
|
|
164
|
+
* [PCBC-543](https://issues.couchbase.com/browse/PCBC-543), [CCBC-932](https://issues.couchbase.com/browse/CCBC-932), [CCBC-933](https://issues.couchbase.com/browse/CCBC-933): Update log levels
|
|
165
|
+
|
|
3
166
|
## 2.8.7 (May 2 2018)
|
|
4
167
|
|
|
5
168
|
* [CCBC-917](https://issues.couchbase.com/browse/CCBC-917): Add tracing for
|