Revision history for Neo4j::Driver
1.02 2024-12-14
- Pass through Neo4j::Bolt values unchanged, reducing overhead. (GH #22)
- Optimise parsing of Jolt result values and events, improving performance.
(GH #23, #25)
- Spin off net adapter module Neo4j::Driver::Net::HTTP::LWP into the
separate distribution Neo4j-Driver-Plugin-LWP. The driver now defaults
to HTTP::Tiny. This drops the dependency on libwww-perl. (GH #25)
- Fix bug causing data() in Record to have extra or missing entries. (GH #21)
- The properties() method of nodes and relationships now returns a reference
to the internal hash. (GH #24)
1.01 2024-11-28 (TRIAL RELEASE)
- Using Jolt byte array objects in string context now yields the class name.
- Deprecate renamed methods summary() in Result, statement() in ResultSummary,
version() in ServerInfo and config options 'tls' / 'tls_ca'. (GH #20)
- Raise minimum supported versions to Neo4j::Bolt 0.4201, Neo4j::Types 2.00,
Perl v5.14. Raise support target for Perl to v5.20. (GH #18)
- Various internal changes affecting object structure, ResultColumns and more.
1.00 2024-11-21 (TRIAL RELEASE)
- Disallow all deprecated features. (GH #19)
0.52 2024-11-21
- Minor documentation updates.
- This is the last release in the 0.x branch of Neo4j::Driver.
0.51 2024-11-14
- Update documentation for the release of Neo4j::Bolt 0.5000.
- Minor documentation fixes and clarifications.
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.
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