Revision history for Neo4j::Driver
0.50 2024-10-28
- Various documentation improvements:
- Rewrite synopsis sections.
- Clarifications regarding proper error handling using try/catch and
HTTP result stream detachment.
- Update for bugs and limitations.
- Fix an issue that can cause CI failures in transaction.t when running
the test suite live on Neo4j 5.23.
0.49 2024-04-15
- Issue a Perl warning if a broken Neo4j::Client version is detected. For Bolt
support installed from CPAN, Neo4j::Client 0.46 is currently recommended.
0.48 2024-04-10
- The cypher_params config option now allows 'v2' as a synonym for v2.
- Minor documentation updates.
0.47 2024-04-09
- Returning a Result object from a managed transaction function now issues
a warning that the Result may not be valid outside the function.
- Clarify in documentation that concurrent_tx is a legacy feature.
- Minor documentation fixes.
- Minor testing improvements.
0.46 2024-03-03
- Add support for byte array values via Bolt and Jolt (Neo4j::Types v2).
- Fix Record->get() to not require its argument to be created as number when
used as index, or created as string when used as field name.
- Add check to prevent the HTTP-only concurrent_tx feature from being used
with neo4j: URIs.
- Add check to prevent plugin() after session().
- Update the "experimental" warning in the plug-in API documentation.
- Calling list methods in scalar context is no longer experimental.
- Avoid crash of types-temporal.t on Win32.
0.45 2024-02-16
- The boolean values used in HTTP query results are no longer chosen
by the JSON coder. Perl core booleans are used on v5.36 and newer;
on older Perl versions, JSON::PP booleans are used. (GH #16)
0.44 2024-02-06
- Result->peek() is no longer experimental.
- Result->consume() is no longer experimental.
- Result->summary() is discouraged in favour of consume().
- Internal change: Result->fetch() now detects an exhausted result stream
immediately when the last record is retrieved.
- Minor testing improvements.
0.43 2024-01-31
- Accept neo4j: URIs, converting them to bolt / http / https.
- Change default URI from http://localhost to neo4j://127.0.0.1.
0.42 2023-12-14
- Add support for spatial and temporal Cypher values (Neo4j::Types v2).
0.41 2023-11-21
- Calling element_id() on nodes and relationships from Neo4j version 4
and earlier issues a warning. It will not become fatal.
- New Neo4j::Driver::Types doc as an initial step towards Neo4j::Types v2.
0.40 2023-07-19
- Add documentation that calling element_id() on nodes and relationships
from Neo4j version 4 and earlier might change to become a fatal error.
0.39 2023-07-06
- The concurrent_tx option is no longer experimental (now defaults to off).
- Fix erroneous warnings for disabled concurrent transactions on HTTP.
- Internal change: Store driver config options in a hash of their own.
0.38 2023-06-18
- Mitigate more test failures on slow machines and on Perl v5.14 and older.
- Tests no longer fail for unexpected warnings, except during author testing.
0.37 2023-02-27 (TRIAL RELEASE)
- Add deprecation warning to node and relationship id() methods on Neo4j 5
- Fix a bug introduced in 0.36 which prevented some Bolt server/network errors
from being reported correctly.
- Mitigate test failures on slow machines and on Perl v5.10
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