You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Available through [https://repo.typedb.com](https://cloudsmith.io/~typedb/repos/public-release/packages/detail/maven/typedb-driver/3.0.2/a=noarch;xg=com.typedb/)
We introduce the updated Rust, Java, and Python drivers compatible with TypeDB 3.0.
53
-
These updates bring significant opportunities and UX improvements, including:
54
-
-**Simplified querying workflow**: The `Concept API` has been removed, offering a single `tx.query()` entry point.
55
-
-**Streamlined transactions**: Sessions and transactions are now consolidated into standalone transactions.
56
-
-**Expanded attribute value types**: Added support for `decimal`, `date`, `datetime-tz`, and `duration`.
57
-
-**Unified authentication**: The updated authentication mechanism is shared across all drivers.
58
-
-**New query result formats**: Introducing `Concept Row`s for table-like outputs and `Concept Document`s for structured outputs used in `fetch` queries.
59
-
60
-
Some features are currently disabled due to limitations on the TypeDB Server side:
61
-
- Options.
62
-
- Replicas information.
63
-
64
-
For examples and usage of the new drivers, see the `README` files in their respective language packages. Explore all the exciting features of TypeDB 3.0 [here](https://github.com/typedb/typedb/releases).
65
-
66
-
67
-
-**Add Python 3.13 support**
68
-
69
-
We introduce support for Python 3.13. With this update, support for Python 3.8 has been discontinued, as it reached end-of-life ([details](https://devguide.python.org/versions/)). This change ensures consistent implementation of the `datetime-tz` value type introduced in TypeDB 3.0 across all supported Python versions.
70
-
71
50
72
51
## Bugs Fixed
73
-
-**Optimise driver dispatch loop**
74
-
75
-
We optimise the driver dispatch loop: previously, we could dispatch at most 1000 serial messages per second, though in practice tokio would sometimes sleep longer than expected and the query and transaction latencies increased. This stems from Tokio's approximately millisecond resolution. By moving the collect-dispatch loop to a dedicated thread, we can now dispatch messages after microseconds of batching, improving overall driver performance significantly.
52
+
-**Introduce 3.0 cloud driver tests**
53
+
We fix cloud drivers creation interfaces and introduce integration and behavior tests to cover these public methods.
54
+
55
+
-**BUGFIX python-3.0.0: remove extra argument in call to internal _Driver.cloud**
76
56
77
57
78
58
## Code Refactors
79
-
-**Rename long to integer**
80
-
Renamed the TypeQL `long` value tpe to `integer`
81
-
82
-
59
+
-**Add version filter for maven packages for Java release notes**
60
+
Add version filter for maven packages for Java release notes.
83
61
84
-
## Other Improvements
85
-
-**Speed up transaction opening and fix parallel**
86
-
* We fix transaction opening for all the supported drivers, speeding up the operation by 2x.
87
-
* We eliminate database-related errors happening during concurrent database management (create and delete operations) by multiple drivers due to cache mismatches.
88
-
* We make transaction opening requests immediately return errors instead of waiting for additional transaction operations to be performed (e.g. commit or query).
89
-
90
-
91
-
-**Refactor concepts APIs to quickly access optional instances and values properties**
92
-
We generalize the approach to getting concepts properties in TypeDB Drivers, introducing a set of new APIs for fetching optional values related to instances of `Concept` classes in Java and Python.
93
-
94
-
Now, all subclasses of `Concept` have a set of new interfaces starting with `try` to access IIDs, labels, value types, and values without a need to cast to a specific `Instance` or `Value`. These methods can be useful if:
95
-
* you have an established workflow with constant queries and always expect these properties to exist;
96
-
* you want to implement a custom handling of cases where the expected values are missing shorter (without exceptions).
97
-
98
-
Additionally, value type checks like `is_boolean`/`isBoolean` are also declared on the top-level `Concept`.
99
-
100
-
Note that casting is still possible, and its benefits are, as usual:
101
-
* static type checking for your programs using TypeDB Driver;
102
-
* access to the non-optional `get` interfaces for specific subclasses of `Concept` like `get_iid`/`getIID` for `Entity` and `Relation`.
62
+
-**Update Java APIs with marker throwing runtime TypeDBDriverExceptions**
103
63
104
-
Also note that some of the interfaces have changed (e.g., `asBoolean` -> `getBoolean` for `Attribute` and `Value` to separate value retrieval and concept casting), but their functioning has not.
105
-
106
-
107
-
-**Remove promises resolves in destructors to eliminate redundant exceptions. Cleanup Python exceptions formatting**
108
-
We remove the feature of `Promise`s to call `resolve` in destructors in languages like Java and Python. Now, if a promise is destroyed, it's not resolved, and, thus, not awaited. This helps the driver to remove the excessive duplicated errors printing in destructors of promises, although the error is already returned from a commit operation.
109
-
110
-
Now, if you just run queries and close the transaction, nothing will be awaited and persisted. However, if you commit your transaction, all the ongoing operations on the server side will finish before the actual commit. This lets you speed up the query execution (in case these queries don't collide with each other):
111
-
```py
112
-
for query in queries:
113
-
tx.query(query)
114
-
tx.commit()
115
-
```
116
-
If one of the `queries` contains an error and it's not `resolve`d, it will be returned from the `commit` call, and no excessive errors will be printed on resource release.
117
-
118
-
Detailed examples for each language supported are presented in `README`s.
119
-
120
-
Additionally, Python Driver's `TypeDBDriverError` exceptions no longer show the excessive traceback of its implementation, and only the short informative version for your executed code is presented.
121
-
122
-
123
-
-**Update final reference of git org to @typedb**
124
-
125
-
-**Update typedb-runner maven coordinate to com.typedb**
126
-
127
-
-**Rename typedb-cloud workspace to @typedb_cloud**
128
64
129
-
-**Renamed workspace to typedb-driver**
130
-
131
-
-**Update dependant repositories: @typedb_dependencies, @typedb_protocol, and @typedb_behaviour**
132
-
133
-
-**Rename /dependencies/vaticle to /typedb**
134
-
135
-
-**Replaced Vaticle with TypeDB in strings and copyrights**
136
-
137
-
-**Update CI images to 'typedb-ubuntu'**
65
+
## Other Improvements
66
+
-**Regenerate docs**
138
67
139
-
-**Unify transaction cleanup in driver BDDs when opening new transactions**
140
-
141
-
-**Add handler for initial TransactionOpen response instead of erroring**
68
+
-**Fix rust format**
142
69
143
-
-**Fix CircleCI jobs for Maven installation and python builds**
144
-
We fix two CircleCI issues:
145
-
*`brew install maven`[has been failing](https://app.circleci.com/pipelines/github/typedb/typedb-driver/911/workflows/9571978a-e2c7-40cc-afd6-372356f267f7/jobs/7072) for Rosetta configuration;
146
-
* python installation for Linux machines required a different process after we updated from `python3.8` to `python3.9` as a minimal version.
70
+
-**Update logback to a non-vulnerable version**
147
71
148
-
-**Bumped API version in antora config**
72
+
-**Remove debug println**
149
73
150
-
-**Rename maven groupId "com.vaticle" -> "com.typedb". Return a part of Java driver's CI tests**
151
-
We completely clean `com.vaticle` mentions in the `typedb-driver` repo:
152
-
* generated `pom` files for the Java driver now contain `com.typedb` instead of `com.vaticle.typedb`;
153
-
* docs for the Java driver are regenerated so it doesn't reference outdated `com.vaticle.typedb` package (other issues in these docs will be addressed in the following prs).
154
-
155
-
-**Fix native object ownership checks in python driver**
156
-
Fixes native object ownership checks in python driver
74
+
-**Update typedb behavior dependency and typedb server artifact to test the unblocked server features**
75
+
Update typedb behavior dependency and typedb server artifact to test the unblocked server features of rollback and write query fetches.
157
76
158
-
159
-
-**Rename Java package com.vaticle.typedb to com.typedb and remove typeql dependencies.**
160
-
We rename the Java driver's package from `com.vaticle.typedb` to `com.typedb`.
161
-
We remove dependencies on `typeql` as it's no more needed.
77
+
-**Remove transaction pop from java tests on rollback**
162
78
163
-
-**Add typedb 3 roadmap link to the release notes**
79
+
-**Update examples to fix their build**
164
80
165
-
-**Apply fix that allows connecting to servers listening on 0.0.0.0**
0 commit comments