Skip to content

4.0 changelog

Martin edited this page Aug 31, 2020 · 38 revisions

Driver Migration Guide

Please read our Driver Migration Guide for guidance and breaking changes when migrating from 1.7 drivers to 4.0 drivers.

Changelog

4.0.3

  • Error propagation on defunct connection
  • Fixed documentation tag issue

4.0.2

  • Bugfix for setup.py where encoding was not specified for opening the README.rst file.

4.0.1

  • Reintroduced neo4j.Record helper functions. (Result.value(key=0, default=None), Result.values(*keys), Result.data(*keys)) The key parameter have changed named from item to key and items to keys for alignment of the Record functions.

4.0.0

  • Updated the README. Added a section about connection settings (breaking change).
  • API documentation, improved the documentation.
  • Result.Graph() last node in a relationship labels missing, labels bug fix.
  • Temporal types rounding error bug fix.
  • Temporal types timezone fixes.

4.0.0rc1

  • API documentation, added the topic for Temporal Types.

4.0.0b2

  • For managed transactions (transaction functions), the retry timer is started after the first failed attempt.
  • API cleanup, improved pydocs.
  • API documentation, updated the documentation to a stable state.
  • The helper function Result.value(item, default=None) has been removed. Use Record.value(key=0, default=None) for each Record when iterating the Result object.
  • The helper function Result.values(*items) has been removed. Use Record.values(*keys) for each Record when iterating the Result object.
  • The helper function Result.data(*items) has been removed. Use Record.data(*keys) for each Record when iterating the Result object.
  • Transaction.sync() has been removed. Use Result.consume() if the behaviour is to exhaust the result object.
  • Transaction.success has been removed.
  • Transaction.close() behaviour changed. Will now only perform rollback if no commit have been performed.
  • Session.sync() has been removed. Use Result.consume() if the behaviour is to exhaust the result object.
  • Session.detach() has been removed. Use Result.consume() if the behaviour is to exhaust the result object.
  • Session.next_bookmarks() has been removed.
  • Session.has_transaction() has been removed.
  • Session.closed() has been removed

4.0.0b1

  • The fetch_size config setting for session is now in use for Bolt Protocol 4.0 and fetches records in batches as needed when invoking Session.run and Transaction.run.
  • Result.summary() have been replaced with Result.consume(), this behaviour is to consume all remaining records in the buffer and returns the ResultSummary.
  • Support for multiple active results within a transaction.
  • API cleanup.

4.0.0a4

  • Configuration max_retry_time is renamed to max_transaction_retry_time
  • Updated examples

4.0.0a3

  • Multi database support (#384)

4.0.0a2

  • Fix for non-blocking sendall (#378)

4.0.0a1

  • neobolt is not a dependency any more.

  • neotime is not a dependency any more.

  • pytz is not a dependency any more.

  • Support for Bolt Protocol 3.0

  • Support for Bolt Protocol 4.0 (Connection Layer Only)

  • Added a Bookmark class

  • Bookmarks are changed from a String to Bookmark object.

  • Added driver.verify_connectivity() method. (experimental)

  • Exceptions Changes:

    • Removed ConnectionExpired
    • Renamed neo4j.exceptions.CypherError to neo4j.exceptions.Neo4jError
    • Introduced Driver API class hierarchy with Neo4jError and DriverError
    • (Internal API) Introduced Connection API class hierarchy with BoltError (Please raise an issue on github if these surface to the user.)
    • Improved connection failure error message information.
    • Connecting to unsupported Bolt Protocol will raise an error explaining the supported versions available for the driver.
  • Removed transaction.success flag.

    The pattern is no longer valid for a transaction object, tx:

    tx = begin()
    # DO STUFF
    tx.success = True
    tx.close()
    

    Use the pattern instead:

    tx = begin()
    # DO STUFF
    tx.commit()
    
  • Connections are now unencrypted by default; to reproduce former behaviour, add encrypted=True to Driver configuration.

  • The neo4j.v1 subpackage is now no longer available; all imports should be taken from the neo4j package instead.

  • Changed session(access_mode) from a positional to a configuration (keyword argument) and renamed it to default_access_mode

  • The bolt+routing URI scheme is now named neo4j

  • Added new URI scheme bolt+ssc, this will set the direct driver to be secure and allow self signed sertificates.

  • Added new URI scheme bolt+s, this will set the direct driver to be secure.

  • Added new URI scheme neo4j+ssc, this will set the routing driver to be secure and allow self signed sertificates.

  • Added new URI scheme neo4j+s, this will set the routing driver to be secure.

  • Python 3.8 supported.

  • Python 3.7 supported.

  • Python 3.6 supported.

  • Python 3.5 supported.

  • Python 3.4 support has been dropped.

  • Python 3.3 support has been dropped.

  • Python 3.2 support has been dropped.

  • Python 3.1 support has been dropped.

  • Python 3.0 support has been dropped.

  • Python 2.7 support has been dropped.

Clone this wiki locally