Skip to content
This repository has been archived by the owner on Nov 30, 2021. It is now read-only.

1.7 changelog

Ali Ince edited this page May 9, 2019 · 13 revisions

v1.7.4

  • Added alpine-3.9 packaging support #72,
  • Fixed several concurrency (and stability) issues that are detected by valgrind tools (memcheck, helgrind and drd) #72, #73, #74, #75 and #76.

v1.7.3

  • Introduced Windows SCHANNEL implementation for TLS on windows that removes openssl dependency on windows #69,
  • Compare on-disk bolt-version.h before overwriting it to avoid excessive re-compilations #69,
  • Enable seabolt17-static.pc generation when SCHANNEL is used on windows to enable static linking #69,
  • Hide a couple of low level BoltConnection functions which were previously exported as public #70,
  • Pass access mode as part of the statement metadata for Bolt V3 connections #70.

v1.7.2

  • Use nullptr instead of NULL in tests, commit 833b621,
  • Split internal platform based functionalities into seperate source codes, #67,
  • Use QueryPerformanceCounter Windows API instead of GetSystemTimePreciseAsFileTime, which is not available on Windows 7 #67,,
  • Set build configuration for cmake --build command so that MSVC based builds get built in the desired configuration rather than the default (i.e. Debug) #67,
  • Include build toolchain in binary packages generated for windows #68,
  • Set Windows version to Windows 7 in windows builds #68,
  • Address an issue with vsnprintf behaviour on MINGW where it returns -1 on truncation rather than the actual needed buffer size #68.

v1.7.1

  • Switch to linux containers for CI and binary package building (adds more platforms for binary packages) #56,
  • Either install a signal handler for SIGPIPE or set socket options accordingly to prevent crashing on SIGPIPE signals #57,
  • Fix BoltValue_to_string implementation to always add a null terminator #58,
  • Fix compilation error on gcc 8 related to buffer truncation warning #59,
  • Add initial API Docs for publishing #60,
  • Introduce support for condition variables when waiting for free connections on a full pool #61.

v1.7.0

  • Build scripts now also generate a seabolt17-static.pc file (excluding Windows) that contains directives prepared for static linking. Please note that both seabolt17.pc and seabolt17-static.pc files contain path entries from the system that the actual build is run, so make sure that you're using the artifacts on an identical base system.
  • Updated integral (int, uint, etc.) public function parameters to be sized counterparts, like int32_t or uint64_t.

v1.7.0-rc03

  • Added encapsulation to the exported struct types and functions to the internal space. Any interaction with the connector should be done only through exported functions since the struct fields are be visible from outside.
  • Added static library support. The seabolt-cli and seabolt-test targets now by default link to the static output rather than the shared one.

v1.7.0-rc02

This release adds a couple of changes about better error reporting and also includes several structural refactorings to get prepared for distribution.

Please note that we've removed the OPENSSL_LIB_ROOT environment variable requirement and instead use the CMake's default name OPENSSL_ROOT_DIR, i.e. if seabolt build complains about OpenSSL not found set the OPENSLL_ROOT_DIR environment variable to point to the home installation folder of OpenSSL.

The library name itself now contains version suffix, i.e. seabolt17 and there are experimental binary distribution packages available on here.

v1.7.0-beta03

This release introduces more configuration options around TLS, connection related timeouts (lifetime, acquisition and socket timeouts). It also improves concurrency and reliability of the routing driver.

  • struct BoltConfig structure now exposes the following new options.
    • struct BoltTrust *trust: Defines how the driver establishes trust with the Neo4j instance it is connected to.
      • char *certs and int32_t certs_len: User provided PEM encoded trusted certificate list and its length.
      • int skip_verify: Whether to ignore X509 verification results and trust any peer.
      • int skip_verify_hostname: Whether to skip hostname verification step.
    • int max_connection_lifetime: Maximum connection life time on pooled connections. Values less than or equal to 0 disables the lifetime check.
    • int max_connection_acquire_time: Maximum amount of time to either acquire an idle connection from the pool or create a new connection (when the pool is not full).
    • struct BoltSocketOptions* sock_opts: Defines options to apply on the underlying socket.
      • int connect_timeout: Connect timeout in ms that will be set on underlying sockets.
      • int recv_timeout: Receive timeout in ms that will be set on underlying sockets.
      • int send_timeout: Send timeout in ms that will be set on underlying sockets.
      • int keepalive: Whether to enable TCP keep alive on underlying sockets.

v1.7.0-alpha4

  • Removed master branch and made 1.7 the default which will hold the long run stable 1.7 release
  • Made the logger to be specified as callback functions
  • Added support for bolt+routing scheme to work against causal cluster deployments
  • Added support for specifying custom address resolver as callback functions - which can map <hostname>:<port> pair provided to multiple entries (i.e to provide all core server addresses) - so that all those mapped entries are tried in turn until routing table is fetched
  • Enabled SNI extension on TLS sessions

v1.7.0-alpha3

  • Added support for Bolt V2

v1.7.0-alpha2

  • Fixed some buffering issues

v1.7.0-alpha1

  • The first release of the Neo4j Official C Connector. It only includes support for Bolt V1 and works only on direct mode (no clustering support)