Skip to content

Commit 412799b

Browse files
authored
README: update version support (#812)
* Adopt new version support policy (starting with 5.0) * Add version support matrix
1 parent 2c2ce32 commit 412799b

File tree

2 files changed

+53
-16
lines changed

2 files changed

+53
-16
lines changed

README.rst

Lines changed: 52 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,22 @@ Neo4j Bolt Driver for Python
33
****************************
44

55
This repository contains the official Neo4j driver for Python.
6-
Each driver release (from 4.0 upwards) is built specifically to work with a corresponding Neo4j release, i.e. that with the same ``major.minor`` version number.
7-
These drivers will also be compatible with the previous Neo4j release, although new server features will not be available.
6+
Each driver release (from 5.0 upwards) is built specifically to work with a
7+
corresponding Neo4j release, i.e. that with the same ``major.minor`` version
8+
number.
9+
Only the latest ``major.minor`` release of each ``major`` driver series
10+
receives patches and support.
11+
These drivers will also be compatible with the previous Neo4j LTS release as
12+
well as the very next release, although only the common set of features
13+
between the chosen driver and server versions will be available.
14+
15+
See `Version Compatibility`_ for a compatibility matrix.
816

917
+ Python 3.10 supported.
1018
+ Python 3.9 supported.
1119
+ Python 3.8 supported.
1220
+ Python 3.7 supported.
1321

14-
Python 2.7 support has been dropped as of the Neo4j 4.0 release.
15-
1622

1723
Installation
1824
============
@@ -45,7 +51,7 @@ Quick Example
4551
for record in tx.run(query, name=name):
4652
print(record["friend.name"])
4753
48-
with driver.session() as session:
54+
with driver.session(database="neo4j") as session:
4955
session.execute_write(add_friend, "Arthur", "Guinevere")
5056
session.execute_write(add_friend, "Arthur", "Lancelot")
5157
session.execute_write(add_friend, "Arthur", "Merlin")
@@ -54,16 +60,20 @@ Quick Example
5460
driver.close()
5561
5662
57-
Connection Settings Breaking Change
58-
===================================
63+
Connection Settings Breaking Change (4.x)
64+
=========================================
5965

60-
+ The driver’s default configuration for encrypted is now false (meaning that driver will only attempt plain text connections by default).
66+
+ The driver’s default configuration for encrypted is now false
67+
(meaning that driver will only attempt plain text connections by default).
6168

62-
+ Connections to encrypted services (such as Neo4j Aura) should now explicitly be set to encrypted.
69+
+ Connections to encrypted services (such as Neo4j Aura) should now explicitly
70+
be set to encrypted.
6371

64-
+ When encryption is explicitly enabled, the default trust mode is to trust the CAs that are trusted by operating system and use hostname verification.
72+
+ When encryption is explicitly enabled, the default trust mode is to trust the
73+
CAs that are trusted by operating system and use hostname verification.
6574

66-
+ This means that encrypted connections to servers holding self-signed certificates will now fail on certificate verification by default.
75+
+ This means that encrypted connections to servers holding self-signed
76+
certificates will now fail on certificate verification by default.
6777

6878
+ Using the new ``neo4j+ssc`` scheme will allow to connect to servers holding self-signed certificates and not use hostname verification.
6979

@@ -77,8 +87,8 @@ See, https://neo4j.com/docs/migration-guide/4.0/upgrade-driver/#upgrade-driver-b
7787
See, https://neo4j.com/docs/driver-manual/current/client-applications/#driver-connection-uris for changes in default security settings between 3.x and 4.x
7888

7989

80-
Connecting with Python Driver 4.x to Neo4j 3.5
81-
----------------------------------------------
90+
Connecting with Python Driver 4.x to Neo4j 3.5 (EOL)
91+
----------------------------------------------------
8292

8393
Using the Python Driver 4.x and connecting to Neo4j 3.5 with default connection settings for Neo4j 3.5.
8494

@@ -93,8 +103,8 @@ Using the Python Driver 4.x and connecting to Neo4j 3.5 with default connection
93103
driver = GraphDatabase.driver("neo4j://localhost:7687", auth=("neo4j", "password"), encrypted=True, trust=False)
94104
95105
96-
Connecting with Python Driver 1.7 to Neo4j 4.x
97-
----------------------------------------------
106+
Connecting with Python Driver 1.7 (EOL) to Neo4j 4.x
107+
----------------------------------------------------
98108

99109
Using the Python Driver 1.7 and connecting to Neo4j 4.x with default connection settings for Neo4j 4.x.
100110

@@ -103,6 +113,33 @@ Using the Python Driver 1.7 and connecting to Neo4j 4.x with default connection
103113
driver = GraphDatabase.driver("neo4j://localhost:7687", auth=("neo4j", "password"), encrypted=False)
104114
105115
116+
Version Compatibility
117+
=====================
118+
119+
+------------------+-------+-------+-------+-------+-------+-------+-------+
120+
| Server \\ Driver | 1.7 | 4.0 | 4.1 | 4.2 | 4.3 | *4.4* | *5.0* |
121+
+==================+=======+=======+=======+=======+=======+=======+=======+
122+
| Neo4j 3.5 (EOL) | Yes | Yes | ? | ? | ? | ? | ? |
123+
+------------------+-------+-------+-------+-------+-------+-------+-------+
124+
| Neo4j 4.0 (EOL) | Yes | Yes | Yes | Yes | Yes | Yes | ? |
125+
+------------------+-------+-------+-------+-------+-------+-------+-------+
126+
| Neo4j 4.1 (EOL) | ? | Yes | Yes | Yes | Yes | Yes | ? |
127+
+------------------+-------+-------+-------+-------+-------+-------+-------+
128+
| Neo4j 4.2 (EOL) | ? | ? | Yes | Yes | Yes | Yes | ? |
129+
+------------------+-------+-------+-------+-------+-------+-------+-------+
130+
| Neo4j 4.3 | ? | ? | ? | Yes | Yes | Yes | ? |
131+
+------------------+-------+-------+-------+-------+-------+-------+-------+
132+
| Neo4j 4.4 (LTS) | ? | ? | ? | ? | Yes | Yes | Yes |
133+
+------------------+-------+-------+-------+-------+-------+-------+-------+
134+
| Neo4j 5.0 | ? | ? | ? | ? | ? | Yes | Yes |
135+
+------------------+-------+-------+-------+-------+-------+-------+-------+
136+
137+
* *emphasized*: currently supported driver versions
138+
* Yes: supported combination, although only the common set of features
139+
between the chosen driver and server versions will be available.
140+
* ?: might work, untested, no support.
141+
* (blank): not working.
142+
106143

107144
Other Information
108145
=================

tests/integration/test_readme.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def print_friends(tx, name):
4747
for record in tx.run(query, name=name):
4848
print(record["friend.name"])
4949

50-
with driver.session() as session:
50+
with driver.session(database="neo4j") as session:
5151
# === END: README ===
5252
session.run("MATCH (a) DETACH DELETE a")
5353
# === START: README ===

0 commit comments

Comments
 (0)