Releases: typedb/typeql
TypeQL 2.14.0
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
andlibc
explicitly as Rust dependencies. They are conditional transitive dependencies ofantlr-rust
andchrono
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
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
, anddelete
-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
orDescending
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
andupdate
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
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
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
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
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
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 deploytypeql-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
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 methodGraql.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 havetype_scoped
as well as the defaulttype
that is unscoped. To make this make sense at the object level, we create a new object calledLabel
that we will soon remove fromcore
andclient-java
that can be scoped and unscoped types - Labels are now used throughout Graql to represent types. Where possible, we provide helper methods that consumeString
, creating the requiredLabel
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
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
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
updatesrules-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 modifyModifiers.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 aModifier
object to holdget
filter, and optionallimit
,offset
, andsort
Other Improvements
Please refer to full release notes of 2.0.0-alpha to see the changes in 2.0.0.