Skip to content

Commit

Permalink
Update version to 3.0. Update release notes and dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
farost committed Dec 20, 2024
1 parent 485aa90 commit eb68124
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 40 deletions.
84 changes: 47 additions & 37 deletions RELEASE_NOTES_LATEST.md
Original file line number Diff line number Diff line change
@@ -1,62 +1,72 @@
## Distribution

Download from TypeDB Package Repository: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-console+version:3.0.0-alpha-9
Download from TypeDB Package Repository: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-console+version:3.0.0


## New Features

- **Update concept APIs to quickly access optional instances and values properties**

**Note that some of the primary APIs have changed (e.g., asBoolean -> getBoolean for Attribute and Value, to separate value retrieval and concept casting)**, but their functioning has not.

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.
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:
- you have an established workflow with constant queries and always expect these properties to exist;
- you want to implement a custom handling of cases where the expected values are missing shorter (without exceptions).

Additionally, value type checks like is_boolean/isBoolean are also declared on the top-level Concept.
Note that casting is still possible, and its benefits are, as usual:
- static type checking for your programs using TypeDB Driver;
- access to the non-optional get interfaces for specific subclasses of Concept like get_iid/getIID for Entity and Relation.
- **Introduce TypeDB Console 3.0**

We introduce the updated TypeDB Console compatible with TypeDB 3.0.
This bring significant opportunities and UX improvements, including:
- **Streamlined transactions**: Sessions and transactions are now consolidated into standalone transactions.
- **Unified authentication**: The updated authentication mechanism is shared across all types of the TypeDB server.
- **New query result formats**: Introducing `Concept Row`s for table-like outputs and `Concept Document`s for structured outputs used in `fetch` queries.
```
hi::read> match $x isa! person;
Finished validation and compilation...
Streaming answers...
--------
$x | iid 0x1e00000000000000000000 isa person
--------
Finished. Total answers: 1
hi::read> match $x isa! person; fetch {$x.*};
Finished validation and compilation...
Streaming documents...
{
"age": [ 25 ],
"balance": [ "1234567890.000123456789" ],
"birth-date": [ "2024-09-20" ],
"birth-time": [ "1999-02-26T12:15:05.000000000" ],
"current-time": [ "2024-09-20T16:40:05.000000000 Europe/London" ],
"current-time-off": [ "2024-09-20T16:40:05.028129323+05:45" ],
"expiration": [ "P1Y10M7DT15H44M5.003948920S" ],
"is-new": [ true ],
"name": [ "John" ],
"success": [ 66.6 ]
}
Finished. Total answers: 1
```
Some features are currently disabled due to limitations on the TypeDB Server side:
- Options.
- Replicas information.
Explore all the exciting features of TypeDB 3.0 [here](https://github.com/typedb/typedb/releases).
## Bugs Fixed

- **Speed up transaction opening and fix parallel**
- We fix transaction opening for all the supported drivers, speeding up the operation by 2x.
- We eliminate database-related errors happening during concurrent database management (create and delete operations) by multiple drivers due to cache mismatches.
- We make transaction opening requests immediately return errors instead of waiting for additional transaction operations to be performed (e.g. commit or query).
- **Remove promises resolves in destructors to eliminate redundant exceptions. Cleanup Python exceptions formatting**

We remove the feature of `Promises` 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.

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):
```python
for query in queries:
tx.query(query)
tx.commit()
```
If one of the `queries` contains an error and it's not resolved, it will be returned from the `commit` call, and no excessive errors will be printed on resource release.

Detailed examples for each language supported are presented in READMEs.

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.

## Code Refactors
## Other Improvements

- **Bump version to 3.0.0-alpha-9**

- **Update factory owners to typedb**
Update factory owners to typedb
- **Update factory owners to typedb**
- **Update final reference of git org to @typedb**
- **Replaced Vaticle with TypeDB in strings and copyrights**
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.0.0-alpha-9
3.0.0
4 changes: 2 additions & 2 deletions dependencies/typedb/repositories.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ def typedb_dependencies():
git_repository(
name = "typedb_dependencies",
remote = "https://github.com/typedb/typedb-dependencies",
commit = "7255cf0d972402964755b61106566b4e2ec0045d", # sync-marker: do not remove this comment, this is used for sync-dependencies by @typedb_dependencies
commit = "52191031bb1231c714a2f2017571d61c81b4a890", # sync-marker: do not remove this comment, this is used for sync-dependencies by @typedb_dependencies
)

def typedb_driver():
git_repository(
name = "typedb_driver",
remote = "https://github.com/typedb/typedb-driver",
commit = "af545f6dfb684ba5ed88910ae330e317958afa57", # sync-marker: do not remove this comment, this is used for sync-dependencies by @typedb_driver
tag = "3.0.0", # sync-marker: do not remove this comment, this is used for sync-dependencies by @typedb_driver
)

0 comments on commit eb68124

Please sign in to comment.