Skip to content

Releases: typedb/typeql

TypeQL 2.14.0

24 Nov 15:47
Compare
Choose a tag to compare

TypeQL Grammar and Language Library distributions for Java

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.vaticle.typeql</groupId>
        <artifactId>typeql-grammar</artifactId>
        <version>2.14.0</version>
    </dependency>
    <dependency>
        <groupId>com.vaticle.typeql</groupId>
        <artifactId>typeql-lang</artifactId>
        <version>2.14.0</version>
    </dependency>
</dependencies>

TypeQL Grammar distribution for Python

Available through https://pypi.org

pip install typeql-grammar==2.14.0

New Features

  • Regex validation

    We perform validation of the regex in a RegexConstraint.

  • Parameter and structure validation in TypeQL Rust

    We implement methods that allow us to check the validity of parsed and constructed typeql queries and patterns, and that provide a report of all the errors discovered during validation.

  • Enable disjunctions in rules
    Enables disjunctions in rules, and updates rule-validation accordingly.

Bugs Fixed

Code Refactors

  • Delete Rust dependencies that were added to patch issue building on M1 Macs

    We deleted some unnecessary Rust dependencies that were added to patch an issue building on M1 Macs in #250.

  • Add transitive Rust deps that aren't included by default on M1 Macs

    We added core-foundation-sys and libc explicitly as Rust dependencies. They are conditional transitive dependencies of antlr-rust and chrono respectively. Due to typedb/typedb-dependencies#385 they are not included by default.

  • Add Rust IDE sync tool

    We added the Rust IDE sync tool to enable Rust development in IDEs.

Other Improvements

  • bump VERSION to 2.14.0

TypeQL 2.12.0

03 Nov 10:53
Compare
Choose a tag to compare

TypeQL Grammar and Language Library distributions for Java

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.vaticle.typeql</groupId>
        <artifactId>typeql-grammar</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>com.vaticle.typeql</groupId>
        <artifactId>typeql-lang</artifactId>
        <version>2.12.0</version>
    </dependency>
</dependencies>

TypeQL Grammar distribution for Python

Available through https://pypi.org

pip install typeql-grammar==2.12.0

New Features

  • Implement group and aggregate queries in TypeQL Rust

    We implement grouping and aggregation (e.g. count, mean) support for match queries. This change completes TypeQL parser and builder.

  • Define queries support in TypeQL Rust

    We add support for schema queries, viz. define/undefine, and schema query concepts such as rules.

  • Implement Insert and Delete queries in Rust

    We implement the data write queries, viz. delete, insert, and delete-insert, aka "update".

  • Feature complete match query handling in TypeQL Rust

    We complete the implementation of the match query building and parsing by adding handlers for inequality and string predicates and logical operations (and, or, not).

  • TypeQL Rust prototype

    We implement a subset of the TypeQL parser in Rust. The scope encompasses basic, i.e. non-aggregate, match queries like:

    match
    $brando "Marl B" isa name;
    (actor: $brando, $char, movie: $movie);
    $movie has title $title,
        has release-date 2020-05-07T00:00;
    get $char, $title; sort $title;
    
  • Allow sorting per-variable

    TypeQL can support sorting each variable in either Ascending or Descending order independently. Previously, TypeQL only supported ordering all the variables in the same order.

Bugs Fixed

  • Rule conclusion must explicitly specify role types

    Enforce roles in the conclusion of a rule to be specified.
    Since role-types in rule-conclusion must be unambiguous, best practice dictates the user writes explicit, and not variabilised, roles.

Code Refactors

  • Rust code style refactor

    Refactor the code to be more idiomatic: use established traits and avoid star imports.

  • Remove error propagation and force error handling as early as possible

    We create a macro emulating an unstable try-blocks feature that enables us to restrict the Result<...> return type to fallible function calls only. We also remove error propagation through builder functions.

  • Introduce unformatted toString

    We introduce an unformatted toString method which will not introduce any indentation or newlines.

    This fixes a bug where a user's strings with newlines in them receive indentation in the middle of the attribute. Now, to avoid this visual or downstream effect the API exists to disable newlines and indentation.

  • Rust Architecture Refactor

    We restructure TypeQL Rust for ease of development down the line.

  • Split delete_or_update in the grammar into separate parser rules

    We split the delete and update queries into separate parser rules in the TypeQL grammar, resolving a TODO in the process.

  • Remove obsolete tests

    We remove a test that used to test functionality that is no longer supported, namely, match queries with no named variables.

Other Improvements

  • update release-validate-deps

  • Bump dependencies and python version for GitHub deployment

    We've fixed the Python version learned from the successful GitHub deployment of typedb-common a definite working version of Python for this job.

  • Migrate to Factory

    We've migrated our continuous integration for this repo to Vaticle Factory from Grabl.

  • bump vaticle_typedb_behaviour

  • remove space at end of query

  • bump vaticle_typedb_behaviour

  • Fix toString() spacing

  • reformat toString()

  • update @vaticle_typedb_behaviour dependency

  • sort order defaults to ASC

  • Invert sort exception case

  • Bump typedb-common dependency
    Bump commit-marker to update outdated typedb-common.

  • Update link in README

  • Extend license checkstyle tests and update licenses

    We introduce a test that ensures that the license text is correct.

  • Trigger CI

  • Update link to Rust

  • Temporarily exclude LICENSE file from //rust:checkstyle

  • Add LICENSE file for //rust

  • Add license headers to //rust and fixed checkstyle

  • Merge typeql-lang-rust into typeql repository

  • Add 'rust/' from commit '2d16f83487931c1ef48440a4213760a444e198e8'

  • Temporarily exclude //java/LICENSE from checkstyle_test

  • Update maven snapshot an fixed checkstyle rule

  • Fixed broken automation.yml and bump @vaticle_dependencies

  • Fixed typo in grammar/README.md

  • Merged typeql-lang-java into typeql repository

  • Add 'java/' from commit '931c47b7f76bd50b840038f771c0529fb36e896d'

  • Bump copyright year to 2022 (#11)

  • Bump copyright year to 2022

    We update the copyright header year to 2022.

  • Update keywords to typeql pip and crate package

  • re-release as 2.11.0

  • update VERSION to 2.10.0

  • Fixed Parser logic to capture all error when it fails to parse, by constructing new Lexer and TokenStream each time a parse rule is executed

  • Update @vaticle_dependencies

  • Update @vaticle_dependencies

  • bump VERSION to 2.9.0

  • Update @vaticle_typeql

  • Upgrade to Bazel 5 (#10)

  • Improve error message for an invalid rule has syntax (#9)

  • Fixed test cases in MavenApplicationTest

  • New TypeQL code style: patterns and constraints are printed on new, indented lines

  • Minor cleanups

  • Implement missing BDD step

  • Bazel Cache is disabled temporarily until SSL is fixed

  • Bump VERSION to 2.8.0 and use latest deps

  • Deleted TypeQL Compute language framework

  • Bump @vaticle_typeql

  • Cleaned up import statements

  • Expose TypeQLLexer through public API: TypeQL.lexer()

  • Update dependencies and VERSION to 2.6.1

  • Update environment variable for the 'create notes' script

  • Update @vaticle_dependencies

  • bump dependencies with fixed create-notes script

  • Include @vaticle_typedb_common maven artifacts

  • bump dependencies to released and update VERSION to 2.6.0

  • Update artifacts.snapshot

  • Update build jobs to use Ubuntu 21.04

  • Bring in typeql_grammar as a dependency

  • Add mock modules and assemble/deploy targets

  • Initial project structure

  • Update @vaticle_dependencies and the release notes creation script

  • Strip leading and trailing whitespace prior to parsing (#8)

  • implement new reasoning BDD steps

  • regenerate maven artifacts

  • fix dependency on tag

  • update dependencies and VERSION for 2.4.0

  • update dependencies and VERSION for 2.4.0

  • Allow sorting on multiple variables (#6)

  • regenerate maven artifacts snapshot

  • update VERSION and dependencies

  • Fix error messages being duplicated (#5)

  • add missing exception string argument

  • delete erroneous sout

  • Update README.md

  • New README.md

  • Validate pattern variables have a named variable (#3)

  • cleanup release template

  • load pip deps

  • bump VERSION and deps to released tags

  • Update usage of rules_antlr (#2)

  • Upgrade @rules_antlr usage (#1)

  • Update all dependencies

  • Update @vaticle_dependencies

  • Update @vaticle_dependencies and remove an unneeded assemble_maven field

  • Set repository name to typeql-lang-java

  • Renamed workspace to vaticle_typeql_lang_java

  • Fixed CI and BUILD file

  • Upgrade to typedb/typedb-behaviour@e3c74f8

  • Fixed CI test-typeql-java

  • Update package structure documentation

  • Deleted //grammar and //plugins package, and change license to Apache

TypeQL 2.9.0

20 May 13:25
Compare
Choose a tag to compare

Distribution (for Java)

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.vaticle.typeql</groupId>
        <artifactId>typeql-grammar</artifactId>
        <version>2.9.0</version>
    </dependency>
</dependencies>

Distribution (for Python)

Available through https://pypi.org

pip install typeql-grammar==2.9.0

New Features

Bugs Fixed

Code Refactors

Other Improvements

  • bump VERSION to 2.9.0

  • Update CI jobs to use Python 3.7

  • Update @vaticle_dependencies

  • Upgrade to Bazel 5

Make the repository use Bazel 5. Bazel 4 and below only work with the deprecated Python 2, which is no longer included in some operating systems such as the latest Mac OS X.

TypeQL 2.8.0

22 Mar 12:01
Compare
Choose a tag to compare

Distribution (for Java)

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.vaticle.typeql</groupId>
        <artifactId>typeql-grammar</artifactId>
        <version>2.8.0</version>
    </dependency>
</dependencies>

Distribution (for Python)

Available through https://pypi.org

pip install typeql-grammar==2.8.0

New Features

Bugs Fixed

Code Refactors

Other Improvements

  • Bazel Cache is disabled temporarily until SSL is fixed

  • bump VERSION to 2.8.0

  • Delete TypeQL Compute grammar from ANTLR grammar file

  • Update environment variable for the 'create notes' script

  • Update @vaticle_dependencies

  • Update artifacts.snapshot

  • Update build jobs to use Ubuntu 21.04

  • Bump @vaticle_dependencies

  • Replace hyphens with underscore for rust targets

  • Complete checkstyle coverage

  • Rename rust grammar package to typeql-grammar

  • Split //grammar into /rust /java and /python

  • Bump @vaticle_dependencies

  • Make typeql-grammar for Rust use the latest assemble_crate

Utilize the latest version of assemble_crate rule which automatically retrieves crate's dependencies from rust_library's deps attribute

  • Assemble and deploy TypeQL Rust package

Assemble and deploy typeql-grammar package to allow Rust migration

  • Update @vaticle_dependencies and the release notes creation script

TypeQL 2.4.0

17 Sep 09:23
6a28e61
Compare
Choose a tag to compare

Distribution (for Java)

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.vaticle.typeql</groupId>
        <artifactId>typeql-grammar</artifactId>
        <version>2.4.0</version>
    </dependency>
</dependencies>

Distribution (for Python)

Available through https://pypi.org

pip install typeql-grammar==2.4.0

New Features

  • Allow sorting on multiple variables
    To enable typedb/typedb#6434, we add in the grammar that sorting on multiple (ordered) variables is allowed.

Bugs Fixed

Code Refactors

Other Improvements

TypeQL 2.3.0

23 Jul 15:48
Compare
Choose a tag to compare

Distribution (for Java)

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.vaticle.typeql</groupId>
        <artifactId>typeql-grammar</artifactId>
        <version>2.3.0</version>
    </dependency>
</dependencies>

Distribution (for Python)

Available through https://pypi.org

pip install typeql-grammar==2.3.0

New Features

Bugs Fixed

Code Refactors

Other Improvements

TypeQL 2.1.0

20 May 12:05
Compare
Choose a tag to compare

Distribution (for Java)

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.vaticle.typeql</groupId>
        <artifactId>typeql-grammar</artifactId>
        <version>2.1.0</version>
    </dependency>
</dependencies>

Distribution (for Python)

Available through https://pypi.org

pip install typeql-grammar==2.0.1

New Features

  • Assemble and deploy TypeQL Python package
    Assemble and deploy typeql-grammar package to help TypeQL adoption

Bugs Fixed

Code Refactors

Other Improvements

  • Update usage of rules_antlr
    Eliminate possible inconsistencies by loading ANTLR version from a constant

  • Upgrade @rules_antlr usage
    Update usage of @rules_antlr to match latest @vaticle_dependencies

  • Correcting AGPL date in README

Graql 2.0.0

31 Mar 11:31
Compare
Choose a tag to compare

Distribution (for Java)

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>io.graql</groupId>
        <artifactId>graql-lang</artifactId>
        <version>2.0.0</version>
    </dependency>
</dependencies>

New Features

  • Add Graql.parseLabel for label validation
    Because Graql type label validation is complex, we've introduced a method Graql.parseLabel that can be used to validate that a String is a valid type label.

  • Add labels and scoped roles to the grammar and parsers
    To being changes decided in #107 , we modify the grammar to have type_scoped as well as the default type that is unscoped. To make this make sense at the object level, we create a new object called Label that we will soon remove from core and client-java that can be scoped and unscoped types - Labels are now used throughout Graql to represent types. Where possible, we provide helper methods that consume String, creating the required Label objects internally and passing the Labels as required.

Bugs Fixed

Code Refactors

Other Improvements

Please refer to full release notes of 2.0.0-alpha to see the changes in 2.0.0.

Graql 2.0.0-alpha-9

03 Mar 18:22
a8c9414
Compare
Choose a tag to compare

Distribution (for Java)

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>io.graql</groupId>
        <artifactId>graql-lang</artifactId>
        <version>2.0.0-alpha-9</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

Code Refactors

Other Improvements

Please refer to full release notes of 2.0.0-alpha to see the changes in 2.0.0.

Graql 2.0.0-alpha-8

14 Feb 20:00
400f469
Compare
Choose a tag to compare

Distribution (for Java)

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>io.graql</groupId>
        <artifactId>graql-lang</artifactId>
        <version>2.0.0-alpha-8</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

  • Refactor code to work with latest @graknlabs_dependencies
    Latest version of @graknlabs_dependencies updates rules-python and therefore all repos that depend on it need to bring imports to an up-to-date state.

Code Refactors

  • Match modifier always returns non-empty filter
    To avoid code duplication in core, we modify Modifiers.filter() to return the set of all named variables if no filter is present.

  • Create GraqlMatch.Modifier to group filters
    To group together all the options available on a Match query, we create a Modifier object to hold get filter, and optional limit, offset, and sort

Other Improvements

Please refer to full release notes of 2.0.0-alpha to see the changes in 2.0.0.