Releases: typedb/typedb-driver
Grakn Client Java 1.8.0
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>{version}</version>
</dependency>
</dependencies>New Features
-
Add full async for queries.
Added fully async queries, which allows clients to queue up multiple queries that will run in sequence without requiring additional round-trips to receive results. This is especially useful for streaming large amounts of writes. -
Explain query flag.
We now give clients the option to specify whether or not the explanation cache is enabled for a given query.
Futher, we're taking the step to use an Options object for query options (such asinfer, and the newexplain, andbatch_size). This is exposed as a simple builder syntax to set the various options.
Bugs Fixed
-
Fix error message missing from async queries on commit.
Fix an issue where error messages were unclear when committing a transaction with async queries that fail. -
Fix metatypes.
To fix the basic metatype getters on transaction and add tests to ensure they don't break again in future. This was broken because the API was confused between using metatypes and using the actual types. Here, we can switch properly to using the actual types, as they contain all the methods and are type-compatible withsubs().
Code Refactors
- Remove implicit relhas.
Remove implicit relations and all associated functionality, reflecting the changes in the protocol as well (typedb/typedb-protocol#32)
Other Improvements
-
Downgrade gRPC 1.29.0 to 1.24.1 due to performance issue.
We have downgraded gRPC to the previous version we had (1.24.1) due to performance issue found in 1.29.0 -
Update gRPC, netty, and other related dependencies.
We have updated gRPC to 1.29.0. This necessitated netty and other related dependencies to be updated as well. -
Update gRPC to 1.29.0.
We have upgraded Grakn to use gRPC 1.29.0 -
Bump Protocol - datetime rename.
The protocol now reflects changes ingraqlthat usedatetimeinstead ofdate. This PR updates uses the new protocol and bumps various dependencies, includingverification -
Synchronise with graknlabs master branches.
This reverts commit d81d9b6, which removed usages ofValueTypeand replaced it withDataType, the old style, for a release. This gets back on track with 1.8 release of client-java by updating all the depencies to current master branches.
Grakn Client Java 1.7.3
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>{version}</version>
</dependency>
</dependencies>Bugs Fixed
-
Cast meta types to Type base type so that subs is compatible.
Fixed issue #98 where getting meta types via concept API caused a cast error. TheMetaTypeclass should be treated as aTypeso that it is compatible with regular type instances. This should prevents calls likesubson the meta type from incorrectly casting their subs to aMetaType. -
Use release version of tracing.
Fixed a dependency issue where a snapshot version of Grabl tracing was being used rather than a release version, requiring the user to add our snapshot repo. This release version was not available at the time but the snapshot repo was already in the maven test pom, which meant the issue was not noticed when the snapshot version was used. -
Fix static tracing not working for async requests.
Grabl tracing requires us to propagate the trace across threads ourselves, so the introduction of an async decoupling executor in our RPC transceiver (for the results streaming) breaks users of Grabl tracing. We have fixed this.
Other Improvements
- Use release version of dependencies.
Updated to the latest release of all graknlabs dependencies.
Grakn Client Java 1.7.2
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>1.7.2</version>
</dependency>
</dependencies>Bugs Fixed
A dependency, Grabl Tracing, was not released and thus depended by snapshot, and cause the Grakn Client Java not dependable through Maven. This has now been fixed.
Grakn Client Java 1.7.1
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>{version}</version>
</dependency>
</dependencies>New Features
- Async iteration.
To allow the client to begin iteration on their local stream of results before all of the results for a batch have completed being fetched.
Bugs Fixed
- Fix attribute type parameter args.
When we updated the concept API, we broke using type parameters to castasAttribute()to a particular data type e.g.concept.<String>asAttribute().
Grakn Client Java 1.7.0
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>{version}</version>
</dependency>
</dependencies>New Features
-
Allow duplicate role players.
Allowing duplicate roles to be played in a relation as of typedb/typedb#5667.
This means now thatrelation.getRolePlayerMap()should return a map fromRoletoList<Thing>rather thanSet<Thing> -
Read rules from the explanation response proto.
The rule that an explanation is explaining is now returned inside the explanation object. We receive this message via the gRPC and build aRuleinstance for the user to access fromgetRule()on an explanation.
This requires typedb/typedb-protocol#24
and is required by typedb/typedb#5657 -
Modify sup() behavior of Types Concept API.
We previously had the behavior that the supertype of one of the base types (Entity,Relation,Attribute) returned null. This was because going further up the chain ofsup()s results in a change of the Java Class itself when going fromEntitytoThing.
To make this change,sup()now generically returns aSchemaConceptinstead of a specialised type (such as anEntityalways returning aEntityviasup())
Bugs Fixed
-
Close transaction on fully on commit.
A transaction can currently be committed but still returntrueforisOpen(). We should have the following behavior:- comitting the tx should close the tx; re-committing the tx should throw an exception
- closing a committed/closed tx should be idempotent and do nothing.
-
Fix nullpointer when there is a NOOP trace on the thread.
To fix a bug when there is a NOOP trace on the thread.
Code Refactors
Other Improvements
-
Refactor GraknClient public methods and add grabl tracing.
To add grabl tracing to GraknClient. -
Implement insert behavior BDD tests.
Implement steps and behaviors for Insert Graql BDD scenarios. Add BDD to CircleCI jobs. -
Add steps for tx commit and close BDD.
To match BDD steps for transaction close and commit, we implement corresponding steps for commit throwing and closing transactions explicitly -
Graql Behavior Steps and Define.
Create the framework for BDD-based definitions of the graql behavior tests. This includes creating the step definitions for testing graql queries. -
Test transactions new.
To implement transaction tests as defined in@graknlabs_behaviour//connection/transaction.feature. -
Add tracing metadata to requests.
To add grabl tracing information to the metadata in the requests so that we can continue the tracing on the Grakn server side. -
Upgrade to Bazel 3.0.0.
Upgrade Bazel to latest upstream version -
Add sync-deps marker for grabl-tracing.
Add a sync-dependencies marker for grabl-tracing. -
Fix excessive rebuilding.
Previously, when switching between IDE and terminal builds, build cache would be fully invalidated. due to changed $PATH which defeats the sole purpose of caching. As per suggestion in this thread, we're enabling strict environment for actions (which sets PATH alongside with other variables to minimally viable preconfigured values). -
Undefine and Match BDD tests.
Implement and get the Undefine and match BDD tests up and running. -
Avoids running
sync-dependencies-snapshoton user-facing repositories.
examplesanddocsare user-facing repositories that should always depend on the latest stable release ofclient-java. For this reason, they have been removed from targets ofsync-dependencies-snapshot. -
Update LICENSE.
In #75 we forgot to renameGrakn Labs LtdtoGrakn Labs -
Update license year.
Update year in Apache license and bumpbuild-toolsversion
Grakn Client Java 1.6.2
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>{version}</version>
</dependency>
</dependencies>New Features
Bugs Fixed
- Upgrade gRPC to 1.16.0.
Upgrade gRPC version to match one in@graknlabs_protocol
Code Refactors
Other Improvements
-
Update Graql and Build Tools.
We have updatedgraqlandbuild-tools. It fixes the broken build issue caused by the fact that Maven Central artefacts were no longer accessible as the URLs were all HTTP instead of HTTPS. -
Upgrade grpc to 1.24.1.
Update gRPC to a more recent version
Grakn Client Java 1.6.1
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>{version}</version>
</dependency>
</dependencies>New Features
Bugs Fixed
- Fix the issue of depending on a snapshot version of Graql.
We have fixed the issue which exist in 1.6.0, whereclient-javadepends on a snapshot version of Graql
Grakn Client Java 1.6.0
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>{version}</version>
</dependency>
</dependencies>New Features
- Retrieve Explanations Sequentially.
Matching protocol changes in typedb/typedb-protocol#20, we now iteratively retrieve layers of theExplanationtree of aConceptMapanswer.ConceptMap.explanation()does a round trip to the Grakn server and retrieves a list ofConceptMapthat explain how the given concept map was obtained. We also restrictExplanationto only be obtainable fromConceptMap, given that we have not implementedExplanationon delete, count, etc. queries.
Bugs Fixed
-
Client-Java bugfix due to netty errors.
De-conflict netty dependency that was causing server and client-java errors in the tests. -
Fix a typo in README.
Fix a typo in Bazel target name inREADME -
Adapt to latest changes in bazel-distribution.
typedb/bazel-distribution#191 changed the way Maven JARs are built. This PR adaptsprotocolto latest changes -
Fix data in generated pom.xml.
Fix #26
Specify fields needed for Maven Central deployment -
Minor bugfixes.
Change incorrect return type to beapi.Typeand remove unused method -
Return Type rather than SchemaConcept in getMetaConcept().
Recent changes returnSchemaConceptinstead ofTypefromtx.getMetaConcept(), which has been reverted to the old beavhior. -
Add Missing Tx Methods.
Add missing methods onclient.Transactionthat were present before, notable thegetMeta...()and variousexecute()methods do with aggregate and compute queries. -
Add autoclosable to session.
Previous PR #39 neglected to implementAutoClosableonSession, which is expected in Grakn Core for now
Code Refactors
-
Migrate //common to graknlabs/common.
Migrate common utility code - specificallyCollections,PairandTripleto depend on common code ingraknlabs/common -
Refactor how version is provided to deployment rules.
Adapt@graknlabs_client_javato latest changes in bazel-distribution (in particular, typedb/bazel-distribution#150) -
Re-implement grakn.client.concept.api Interfaces.
Reimplement the interfacesgrakn.client.concept.apithat used to exist ingrakn.core.concept.api.
Previously, we directly exposed the Implementations of eachConceptto the user, which included a confusing set of generics being exposed, such asTypeImpl<T extends SchemaConcept, S extends Thing> extends SchemaConceptImpl<....
So, to re-introduce a clean user API for concepts, the interface has been added back in.
The difference being able to do:// BEFORE either of these options: Stream instances = typeImpl.instances() //receive an untyped stream // OR enforce this: TypeImpl<Type, Thing> type = .... Stream<Thing> instances = type.instances(); // now we can receive properly constrained streamand now we can more cleanly write:
Stream<Thing> instances = type.instances(); -
Readd missing Tx And ConceptMap methods.
Prior refactors forgot to re-implemented generic query methods from the now-removedTransactioninterface --Transaction.execute(GraqlQuery). This has been re-added. -
Break Grakn-Core Dependency.
Remove code dependencies of Client-Java on Grakn Core, specificallyapi.Transactionandgrakn.core.conceptinterfaces. This will allow us to update Client-Java independently of Grakn, only fixing compatibility issues mandated by the protocol, in line with the other drivers.
Resolves #5288, #5289, and part of #5272
Other Improvements
-
Prepare for a release by update graknlabs_common and graknlabs_protocol to release versions.
- We've updated
commonandprotocolwhich are depended byclient-java. - Add
commonto therelease-validateCI job.
- We've updated
-
Add Apache License header to everything.
Fix #34 -
Behaviour-driven test implementation for client-java - Part 1.
Client Java implementation for the behaviour-driven test outline in issue typedb/typedb#4458.
Grakn Client Java 1.5.5
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>{version}</version>
</dependency>
</dependencies>New Features
Bugs Fixed
Code Refactors
Other Improvements
-
Use release-validate-deps to ensure that client-java depends on released versions of grakn and protocol.
We have added a validation step using//ci:release-validate-depsin order to ensure that client-java is releasable only if it depends on released versions of grakn and protocol -
Adapt to latest @graknlabs_bazel_distribution.
Newest changes inbazel-distribution(typedb/bazel-distribution#181) are backwards-incompatible.
Grakn Client Java 1.5.4
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>1.5.4</version>
</dependency>
</dependencies>New Features
- Supply authentication credentials for keyspace operations.
Recent changes in protocol (typedb/typedb-protocol#7) allow keyspace operations to be authenticated. This PR adapts Grakn Client Java to these recent changes.
Bugs Fixed
- Throw correct exception on failures with keyspace operations.
Failures with keyspace operations should throw exceptions of correct kind (GraknClientException) instead of raw RPC exceptions.
Code Refactors
- Update License to 2019.
Other Improvements
-
CI job now waits for an existing apt process to finish before proceeding.
Sometimes theaptcommand in the CI would fail because there is already an existingaptbackground process started automatically by the machine. This PR usesbuild-tools'sapt-wait.shto wait for it to finish before proceeding. -
Add Marco and Haikal as the code owners.
We've added Marco and Haikal as the code owners as the biggest contributors to the repository. -
Supply a title to Github Release.
Make GitHub releases less prone to error