Skip to content

Commit ec2268f

Browse files
authored
Relabel experimental features as preview
Add definition in README
1 parent c9bec0c commit ec2268f

File tree

4 files changed

+72
-34
lines changed

4 files changed

+72
-34
lines changed

README.md

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,26 @@ go get github.com/neo4j/neo4j-go-driver
4343
Drivers manual that describes general driver concepts in depth [here](https://neo4j.com/docs/go-manual/current/).
4444
Go package API documentation [here](https://pkg.go.dev/github.com/neo4j/neo4j-go-driver/v5).
4545

46+
## Preview Features
47+
48+
The preview feature is a new feature that is a candidate for a future <abbr title="Generally Available">GA</abbr>
49+
status.
50+
51+
It enables users to try the feature out and maintainers to refine and update it.
52+
53+
The preview features are not considered to be experimental, temporary or unstable.
54+
55+
However, they may change more rapidly, without following the usual deprecation cycle.
56+
57+
Most preview features are expected to be granted the GA status unless some unexpected conditions arise.
58+
59+
Due to the increased flexibility of the preview status, user feedback is encouraged so that it can be considered before
60+
the GA status.
61+
62+
Every preview feature gets a
63+
dedicated [GitHub Discussion](https://github.com/neo4j/neo4j-go-driver/discussions/categories/preview-feature-announcement)
64+
where users can share their initial impressions and thoughts.
65+
4666
## Migrating from previous versions
4767

4868
See [migration guide](MIGRATION_GUIDE.md) for information on how to migrate
@@ -145,20 +165,22 @@ func (i *Item) String() string {
145165
Please look at the [supported version's documentation](https://neo4j.com/developer/kb/neo4j-supported-versions/) for the
146166
most accurate information about Neo4j releases.
147167

148-
| Server \\ Driver | 1.7 | 4.0 | 4.2 | 4.3 | **4.4** | 5.0 | 5.1 | 5.2 | 5.3 | 5.4 | 5.5 |
149-
|---------------------|-----|-----|-------|-------|---------|-------|-------|-------|-------|-------|-------|
150-
| Neo4j 3.5 (EOL) | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
151-
| Neo4j 4.0 (EOL) | Yes | Yes | Yes | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
152-
| Neo4j 4.1 (EOL) | ? | Yes | Yes | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
153-
| Neo4j 4.2 (EOL) | ? | ? | Yes | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
154-
| Neo4j 4.3 (EOL) | ? | ? | Yes | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
155-
| **Neo4j 4.4 (LTS)** | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
156-
| Neo4j 5.0 (HO) | ? | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
157-
| Neo4j 5.1 (HO) | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes |
158-
| Neo4j 5.2 (HO) | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes |
159-
| Neo4j 5.3 (HO) | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes |
160-
| Neo4j 5.4 | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes |
161-
| Neo4j 5.5 | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes |
168+
| Server \\ Driver | 1.7 | 4.0 | 4.2 | 4.3 | **4.4** | 5.0 | 5.1 | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 | 5.7 |
169+
|---------------------|-----|-----|-------|-------|---------|-------|-------|-------|-------|-------|-------|-------|-------|
170+
| Neo4j 3.5 (EOL) | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
171+
| Neo4j 4.0 (EOL) | Yes | Yes | Yes | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
172+
| Neo4j 4.1 (EOL) | ? | Yes | Yes | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
173+
| Neo4j 4.2 (EOL) | ? | ? | Yes | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
174+
| Neo4j 4.3 (EOL) | ? | ? | Yes | Yes | Yes | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
175+
| **Neo4j 4.4 (LTS)** | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | (Yes) |
176+
| Neo4j 5.0 (HO) | ? | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | (Yes) |
177+
| Neo4j 5.1 (HO) | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | (Yes) |
178+
| Neo4j 5.2 (HO) | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | (Yes) |
179+
| Neo4j 5.3 (HO) | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | (Yes) |
180+
| Neo4j 5.4 (HO) | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | (Yes) |
181+
| Neo4j 5.5 (HO) | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | (Yes) |
182+
| Neo4j 5.6 | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | (Yes) |
183+
| Neo4j 5.7 | ? | ? | ? | ? | (Yes) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
162184

163185
- `(EOL)`: End Of Life, a server version is marked as such when it is not supported anymore
164186
- `(HO)`: Hotfixes only, a server version is marked as such when it is only updated for security patches

neo4j/bookmarks.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import (
3232
type Bookmarks = []string
3333

3434
// BookmarkManager centralizes bookmark manager supply and notification
35-
// This API is experimental and may be changed or removed without prior notice
35+
// This is currently a preview feature (see README on what it means in terms of support and compatibility guarantees)
3636
type BookmarkManager interface {
3737
// UpdateBookmarks updates the bookmark tracked by this bookmark manager
3838
// previousBookmarks are the initial bookmarks of the bookmark holder (like a Session)
@@ -44,8 +44,8 @@ type BookmarkManager interface {
4444
GetBookmarks(ctx context.Context) (Bookmarks, error)
4545
}
4646

47-
// BookmarkManagerConfig is an experimental API and may be changed or removed
48-
// without prior notice
47+
// BookmarkManagerConfig is part of the BookmarkManager preview feature (see README on what it means in terms of support
48+
// and compatibility guarantees)
4949
type BookmarkManagerConfig struct {
5050
// Initial bookmarks per database
5151
InitialBookmarks Bookmarks

neo4j/driver_with_context.go

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ const (
5252
type DriverWithContext interface {
5353
// DefaultExecuteQueryBookmarkManager returns the bookmark manager instance used by ExecuteQuery by default.
5454
//
55-
// This API is currently experimental and may change or be removed at any time.
55+
// DefaultExecuteQueryBookmarkManager is part of the BookmarkManager preview feature (see README on what it means in
56+
// terms of support and compatibility guarantees)
5657
//
5758
// This is useful when ExecuteQuery is called without custom bookmark managers and the lower-level
5859
// neo4j.SessionWithContext APIs are called as well.
@@ -87,7 +88,8 @@ type DriverWithContext interface {
8788

8889
// ResultTransformer is a record accumulator that produces an instance of T when the processing of records is over.
8990
//
90-
// This API is currently experimental and may change or be removed at any time.
91+
// ResultTransformer is part of the ExecuteQuery preview feature (see README on what it means in terms of support
92+
// and compatibility guarantees)
9193
type ResultTransformer[T any] interface {
9294
// Accept is called whenever a new record is fetched from the server
9395
// Implementers are free to accumulate or discard the specified record
@@ -350,7 +352,7 @@ func (d *driverWithContext) Close(ctx context.Context) error {
350352
// ExecuteQuery runs the specified query with its parameters and returns the query result, transformed by the specified
351353
// ResultTransformer function.
352354
//
353-
// This API is currently experimental and may change or be removed at any time.
355+
// This is currently a preview feature (see README on what it means in terms of support and compatibility guarantees)
354356
//
355357
// result, err := ExecuteQuery[*EagerResult](ctx, driver, query, params, EagerResultTransformer)
356358
//
@@ -545,12 +547,14 @@ func (e *eagerResultTransformer) Complete(keys []string, summary ResultSummary)
545547

546548
// ExecuteQueryConfigurationOption is a callback that configures the execution of DriverWithContext.ExecuteQuery
547549
//
548-
// This API is currently experimental and may change or be removed at any time.
550+
// ExecuteQueryConfigurationOption is part of the ExecuteQuery preview feature (see README on what it means in terms of
551+
// support and compatibility guarantees)
549552
type ExecuteQueryConfigurationOption func(*ExecuteQueryConfiguration)
550553

551554
// ExecuteQueryWithReadersRouting configures DriverWithContext.ExecuteQuery to route to reader members of the cluster
552555
//
553-
// This API is currently experimental and may change or be removed at any time.
556+
// ExecuteQueryWithReadersRouting is part of the ExecuteQuery preview feature (see README on what it means in terms of
557+
// support and compatibility guarantees)
554558
func ExecuteQueryWithReadersRouting() ExecuteQueryConfigurationOption {
555559
return func(configuration *ExecuteQueryConfiguration) {
556560
configuration.Routing = Readers
@@ -559,7 +563,8 @@ func ExecuteQueryWithReadersRouting() ExecuteQueryConfigurationOption {
559563

560564
// ExecuteQueryWithWritersRouting configures DriverWithContext.ExecuteQuery to route to writer members of the cluster
561565
//
562-
// This API is currently experimental and may change or be removed at any time.
566+
// ExecuteQueryWithWritersRouting is part of the ExecuteQuery preview feature (see README on what it means in terms of
567+
// support and compatibility guarantees)
563568
func ExecuteQueryWithWritersRouting() ExecuteQueryConfigurationOption {
564569
return func(configuration *ExecuteQueryConfiguration) {
565570
configuration.Routing = Writers
@@ -568,7 +573,8 @@ func ExecuteQueryWithWritersRouting() ExecuteQueryConfigurationOption {
568573

569574
// ExecuteQueryWithImpersonatedUser configures DriverWithContext.ExecuteQuery to impersonate the specified user
570575
//
571-
// This API is currently experimental and may change or be removed at any time.
576+
// ExecuteQueryWithImpersonatedUser is part of the ExecuteQuery preview feature (see README on what it means in terms of
577+
// support and compatibility guarantees)
572578
func ExecuteQueryWithImpersonatedUser(user string) ExecuteQueryConfigurationOption {
573579
return func(configuration *ExecuteQueryConfiguration) {
574580
configuration.ImpersonatedUser = user
@@ -577,7 +583,8 @@ func ExecuteQueryWithImpersonatedUser(user string) ExecuteQueryConfigurationOpti
577583

578584
// ExecuteQueryWithDatabase configures DriverWithContext.ExecuteQuery to target the specified database
579585
//
580-
// This API is currently experimental and may change or be removed at any time.
586+
// ExecuteQueryWithDatabase is part of the ExecuteQuery preview feature (see README on what it means in terms of
587+
// support and compatibility guarantees)
581588
func ExecuteQueryWithDatabase(db string) ExecuteQueryConfigurationOption {
582589
return func(configuration *ExecuteQueryConfiguration) {
583590
configuration.Database = db
@@ -586,7 +593,8 @@ func ExecuteQueryWithDatabase(db string) ExecuteQueryConfigurationOption {
586593

587594
// ExecuteQueryWithBookmarkManager configures DriverWithContext.ExecuteQuery to rely on the specified BookmarkManager
588595
//
589-
// This API is currently experimental and may change or be removed at any time.
596+
// ExecuteQueryWithBookmarkManager is part of the ExecuteQuery preview feature (see README on what it means in terms of
597+
// support and compatibility guarantees)
590598
func ExecuteQueryWithBookmarkManager(bookmarkManager BookmarkManager) ExecuteQueryConfigurationOption {
591599
return func(configuration *ExecuteQueryConfiguration) {
592600
configuration.BookmarkManager = bookmarkManager
@@ -595,7 +603,8 @@ func ExecuteQueryWithBookmarkManager(bookmarkManager BookmarkManager) ExecuteQue
595603

596604
// ExecuteQueryWithoutBookmarkManager configures DriverWithContext.ExecuteQuery to not rely on any BookmarkManager
597605
//
598-
// This API is currently experimental and may change or be removed at any time.
606+
// ExecuteQueryWithoutBookmarkManager is part of the ExecuteQuery preview feature (see README on what it means in terms of
607+
// support and compatibility guarantees)
599608
func ExecuteQueryWithoutBookmarkManager() ExecuteQueryConfigurationOption {
600609
return func(configuration *ExecuteQueryConfiguration) {
601610
configuration.BookmarkManager = nil
@@ -604,7 +613,8 @@ func ExecuteQueryWithoutBookmarkManager() ExecuteQueryConfigurationOption {
604613

605614
// ExecuteQueryWithBoltLogger configures DriverWithContext.ExecuteQuery to log Bolt messages with the provided BoltLogger
606615
//
607-
// This API is currently experimental and may change or be removed at any time.
616+
// ExecuteQueryWithBoltLogger is part of the ExecuteQuery preview feature (see README on what it means in terms of
617+
// support and compatibility guarantees)
608618
func ExecuteQueryWithBoltLogger(boltLogger log.BoltLogger) ExecuteQueryConfigurationOption {
609619
return func(configuration *ExecuteQueryConfiguration) {
610620
configuration.BoltLogger = boltLogger
@@ -613,7 +623,8 @@ func ExecuteQueryWithBoltLogger(boltLogger log.BoltLogger) ExecuteQueryConfigura
613623

614624
// ExecuteQueryConfiguration holds all the possible configuration settings for DriverWithContext.ExecuteQuery
615625
//
616-
// This API is currently experimental and may change or be removed at any time.
626+
// ExecuteQueryConfiguration is part of the ExecuteQuery preview feature (see README on what it means in terms of
627+
// support and compatibility guarantees)
617628
type ExecuteQueryConfiguration struct {
618629
Routing RoutingControl
619630
ImpersonatedUser string
@@ -624,17 +635,20 @@ type ExecuteQueryConfiguration struct {
624635

625636
// RoutingControl specifies how the query executed by DriverWithContext.ExecuteQuery is to be routed
626637
//
627-
// This API is currently experimental and may change or be removed at any time.
638+
// RoutingControl is part of the ExecuteQuery preview feature (see README on what it means in terms of support and
639+
// compatibility guarantees)
628640
type RoutingControl int
629641

630642
const (
631643
// Writers routes the query to execute to a writer member of the cluster
632644
//
633-
// This API is currently experimental and may change or be removed at any time.
645+
// Writers is part of the ExecuteQuery preview feature (see README on what it means in terms of
646+
// support and compatibility guarantees)
634647
Writers RoutingControl = iota
635648
// Readers routes the query to execute to a writer member of the cluster
636649
//
637-
// This API is currently experimental and may change or be removed at any time.
650+
// Readers is part of the ExecuteQuery preview feature (see README on what it means in terms of
651+
// support and compatibility guarantees)
638652
Readers
639653
)
640654

@@ -662,7 +676,8 @@ func (c *ExecuteQueryConfiguration) selectTxFunctionApi(session SessionWithConte
662676

663677
// EagerResult holds the result and result metadata of the query executed via DriverWithContext.ExecuteQuery
664678
//
665-
// This API is currently experimental and may change or be removed at any time.
679+
// EagerResult is part of the ExecuteQuery preview feature (see README on what it means in terms of
680+
// support and compatibility guarantees)
666681
type EagerResult struct {
667682
Keys []string
668683
Records []*Record

neo4j/session_with_context.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,8 @@ type SessionConfig struct {
150150
ImpersonatedUser string
151151
// BookmarkManager defines a central point to externally supply bookmarks
152152
// and be notified of bookmark updates per database
153-
// This is experimental and may be changed or removed without prior notice
153+
// This is part of the BookmarkManager preview feature (see README on what it means in terms of
154+
// support and compatibility guarantees)
154155
// Since 5.0
155156
// default: nil (no-op)
156157
BookmarkManager BookmarkManager

0 commit comments

Comments
 (0)