Skip to content

Commit

Permalink
Update VERSION and release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
flyingsilverfin committed May 31, 2023
1 parent 1f396a6 commit 8c0caa1
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 4 deletions.
96 changes: 96 additions & 0 deletions RELEASE_NOTES_LATEST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
Documentation: http://docs.vaticle.com/docs/client-api/java

## Distribution

Available through https://repo.vaticle.com

```xml
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>{version}</version>
</dependency>
</dependencies>
```


## New Features
- **Introduce protocol versioning**

We use a new protocol API to perform a "connection open". This API does server-side protocol version compatibility checks, and also replaces our previous need to do a generic RPC call to check that the network is available.

The user will receive an error about a protocol version mismatch if they are using a client-server combination that are not using exactly compatible protocols.
1. The server will raise an error if the client tries to connect with a mismatching protocol version
2. The client will raise an error if it tries to connect to the server and the server does not have that API

Both errors imply a client-server mismatch and the error will suggest this as a fix.

This change depends on https://github.com/vaticle/typedb-protocol/pull/185, which means that this client now implements protocol version 1.


- **Introduce Values to support expressions**

Introduce the 'Value' type, which is returned as the result of an expression's computation. This change follows from https://github.com/vaticle/typeql/pull/260, which outlines the capabilities of the new expression syntax.

Values (representing any of Long, Double, Boolean, String, or DateTime) are returned as part of `ConceptMap` answers and are subtypes of `Concept` for the time being. Their main API is made of the `.getValue()` method and `.getValueType()` method, along with all the standard safe downcasting methods to convert a `Concept` into a `Value`, using `Concept.isValue()` and `Concept.asValue()`.

We also move the import location of `ValueType` from being nested in `AttributeType` to `Concept` and remove some APIs such as `isKeyable` from them.


- **Check BDD value equality using native types**

In BDD steps implementation we checked the equality of all values through the conversion to `String`s. It might be incorrect when comparing `Double`s especially if one of these values is a result of arithmetics.
Now we compare `Double`s by their absolute error.
For consistency we compare all values using their native types equality.


- **Support generalised annotations and uniqueness**

We update the Typedb Protocol and TypeQL to the latest versions, which support the uniqueness annotation and generalised `Type` APIs. These generalised APIs allow querying by a set of annotations, rather than just boolean = `true|false`.

For example:
`AttributeType.getOwners(boolean onlyKey)` becomes `AttributeType.getOwners(Set<TypeQLToken.Annotation> annotations)`

all usages of boolean flags to indicate key-ness should be replaced by using `TypeQLToken.Annotation.KEY`. The new `@unique` annotation is available as the token `TypeQLToken.Annotation.UNIQUE`.



- **Add behaviour test step definition for retrieving the currently connected user**

We've added a behaviour test step `get connected user` in line with changes made in https://github.com/vaticle/typedb-behaviour/pull/247



## Bugs Fixed


## Code Refactors


## Other Improvements
- **Update release notes workflow**

We integrate the new release notes tooling. The release notes are now to be written by a person and committed to the repo.


- **Update BDD steps to reflect new annotation clause commas**

- **Add build cache to build-dependency job**

- **Add remote cache setup to ci tools**

- **Use bazel cache for snapshot deployment jobs**

- **Increase JSON serialisation test size**

- **Enable the bazel cache**



2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.17.1
2.18.0
6 changes: 3 additions & 3 deletions dependencies/vaticle/repositories.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -32,21 +32,21 @@ def vaticle_typedb_common():
git_repository(
name = "vaticle_typedb_common",
remote = "https://github.com/vaticle/typedb-common",
commit = "9372dfb227d54c6eb631eed02e67f250e55e657e" # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typedb_common
tag = "2.18.0" # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typedb_common
)

def vaticle_typeql():
git_repository(
name = "vaticle_typeql",
remote = "https://github.com/vaticle/typeql",
commit = "8dd5504898be7039bdc8e8cbcbde03e80559a86a", # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typeql
tag = "2.18.0", # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typeql
)

def vaticle_typedb_protocol():
git_repository(
name = "vaticle_typedb_protocol",
remote = "https://github.com/vaticle/typedb-protocol",
commit = "3c844deff72f1411d8085584b1bdc7311bbeb37a", # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typedb_protocol
tag = "2.18.0", # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typedb_protocol
)

def vaticle_typedb_behaviour():
Expand Down

0 comments on commit 8c0caa1

Please sign in to comment.