Revision history for Neo4j::Driver

0.36  2023-02-05

 - Add support for managed transaction functions.
 - Add "error" event, which makes details of server and network errors
   available to plug-ins as a Neo4j::Error object. (GH #7)

0.35  2023-01-24

 - Fix an issue which could cause a Bolt v3/v4 session to report
   "Bolt error -1" and become unusable after a server-side statement
   evaluation failure inside an explicit transaction.

0.34  2023-01-22

 - Refactor experimental plug-in API:
   - Rename PluginManager to Events, add_event_handler() to add_handler(),
     trigger_event() to trigger().
   - Specify behaviour of HTTP adapters for internal error responses generated
     by the network library.
   - Deprecate adding plug-ins by module name; use plug-in instance instead.
 - Deprecate experimental internal http_timeout setting; use config() instead.
 - Fix support for non-standard database name in explicit transaction on Bolt
 - Fix support for transaction begin on Bolt v1/v2

0.33  2022-12-30

 - Fix documentation to indicate that the Neo4j 5 non-numeric element ID for
   nodes and relationships is not yet supported with Bolt in Perl at this time.

0.32  2022-12-29

 - Introduce Neo4j 5 non-numeric element ID for nodes and relationships
 - Fix test suite for Neo4j 5
 - Improve IPv6 support
 - Add possible strategies to resolve HTTP connection problems when using
   dual-stack host names (e. g. localhost) to driver documentation

0.31  2022-06-13

 - Replace experimental net_module config option with plug-in interface
 - The cypher_params config option is no longer experimental
 - Announce plan to switch from JSON::PP::Boolean to Perl distinguished booleans

0.30  2022-05-20

 - Add experimental config option concurrent_tx to explicitly enable support
   for multiple concurrent transactions within the same HTTP session
 - Deprecate experimental config option jolt that allowed disabling Jolt
 - Deprecate experimental methods Result->attached() and Result->detach()
 - Deprecate method protocol() in experimental LWP net module
 - Rename method agent() to ua() in experimental LWP net module

0.28  2022-01-25

 - Deprecate experimental return of results in JSON "graph" format
 - Deprecate experimental query statistics flag return_stats
 - Add deprecation warning for experimental config option ca_file
 - Fix constructor fallback to default uri (issue #14)
 - Improve session creation performance

0.27  2021-08-28

 - Add config options for auth and uri
 - Allow config option hashes to be passed by reference
 - Allow passing config options to new()
 - Rename config option tls to encrypted
 - Rename config option tls_ca to trust_ca

0.26  2021-07-30

 - Change in experimental feature behaviour: Most methods that return lists
   now yield item count when called in scalar context
 - deprecate experimental list context syntax for run()
 - deprecate experimental methods Node->deleted() and Relationship->deleted()
 - deprecate experimental method ServerInfo->protocol();
   add method ServerInfo->protocol_version() as replacement
 - ServerInfo->version() is now a discouraged alias of ServerInfo->agent()
 - change syntax for experimental Cypher parameter conversion config option

0.25  2021-06-30

 - deprecate experimental Cypher type system customisation
 - deprecate experimental run() with array of multiple statements

0.24  2021-06-21  (TRIAL RELEASE)

 - Jolt is enabled by default and no longer experimental
 - Bolt for Neo4j 4 is no longer experimental

0.23  2021-04-23

 - work around breaking change in Neo4j 4.2.5 Jolt implementation

0.22  2021-02-11

 - allow statements to begin with whitespace (fix issue #13)
 - fix test failing in old Perls with non-English locale (issue #12)

0.21  2021-02-06

 - add experimental support for HTTP responses in Jolt format
 - add experimental option for custom networking modules
 - announce future switch from Neo4j::Driver::Type::* to Neo4j::Types::*
 - fix Node->labels() method, which could die on nodes without labels (issue #11)
 - declare Time::Piece 1.20 dependency (for Perl < 5.14)
 - remove REST::Client dependency

0.20  2021-01-10

 - track timeout of HTTP transactions

0.19  2021-01-09  (TRIAL RELEASE)

 - add experimental support for newer Bolt protocol versions (for Neo4j 4)
 - add experimental protocol() method to ServerInfo
 - version discovery succeeds on Neo4j 1.x (which is otherwise unsupported)
 - rename StatementResult module to Result, in line with the Neo4j Driver API
 - internal redesign (removes private Transport modules)

0.18  2020-10-24

 - fix handling of index/key collisions in field names
 - deprecate experimental Record->{column_keys} access
 - deprecate experimental Record->{meta} access
 - deprecate experimental Path->path() method
 - warn when accessing the internals of node/rel/path objects (see issue #8)

0.17  2020-10-12

 - the Neo4j 4 default database name is reliably auto-detected (fix issue #6)
 - the option to select a database is no longer experimental
 - the option to select a database is now safely ignored on Neo4j 2/3
 - fix rare assertion failure when retrieving nodes or relations on Neo4j 4
 - get ServerInfo automatically when opening a new session
 - try to improve compatibility with outdated JSON module versions

0.16  2020-04-12

 - add experimental option to select a database specified by name (Neo4j 4)
 - fix handling of outdated JSON module versions

0.15  2020-02-20

 - support for secure communication using TLS encryption
 - add stable support for the Bolt protocol
 - remove XS dependency to support Pure Perl environments (HTTP only)
 - improve performance of running queries over HTTP
 - improve robustness of URL parsing
 - deprecate experimental mutability of auth credentials after session creation

0.14  2019-12-21

REMINDER: Neo4j::Driver 0.13 deprecated the old syntax to access nodes,
relationships and paths. You need to use the new accessor methods introduced
in 0.13, or else your code will fail with a future version of this software.

 - make Cypher type system customisable
 - add experimental filter to convert {param} to $param in Cypher queries
 - new syntax to specify the network timeout and other config options
 - allow strings containing just the protocol scheme be used as URIs
 - deprecate experimental close() method
 - deprecate experimental suppression of exceptions (die_on_error = 0)

0.13  2019-10-14

 - declare API stable
 - add record streaming interface to StatementResult
 - implement Cypher type system, returning Neo4j entities as blessed objects
 - methods returning lists now expect to be called in list context
 - change HTTP transactions to make query statistics available by default
 - experimental support for HTTPS

0.12  2019-09-23

 - slightly more robust Bolt support

0.11  2019-01-12

 - repair broken list of dependencies

0.10  2019-01-11

 - experimental support for Bolt

0.09  2018-12-03

 - implement Record->data() and StatementResult->keys()
 - security fix: move ServerInfo from ResultSummary to Session
 - change get() to warn when omitting the field parameter leads to ambiguity
 - better error message for run() if called with an unblessed reference as query

0.08  2018-11-27

 - track whether transactions are open or closed
 - support Perl 5.10
 - add documentation and a test suite

0.07  2018-11-19

 - add ResultSummary and SummaryCounters, deprecate stats()
 - deprecate get_bool()
 - improve error handling

0.06  2018-11-17

 - change single() to die on failure rather than return undef
 - fix size() to avoid dying on results with no rows
 - allow REST::Neo4p::Query and Neo4j::Cypher::Abstract objects as queries

0.05  2018-04-23

 - make HTTP timeout configurable

0.04  2018-04-23

 - convert into a Dist::Zilla-compatible module
 - move supporting classes into Neo4j::Driver namespace
 - allow reuse under the terms of the Artistic License 2.0

0.03  2017-07-20

 - improve handling of server errors

0.02  2017-01-28

 - add Neo4j includeStats support
 - add method to handle boolean values specially

0.01  2016-11-19

 - implement the Neo4j Driver API
