Releases: typedb/typedb
TypeDB 3.7.3
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.7.3
New Features
Bugs Fixed
-
Cleaner snapshot drop
We eliminate
SnapshotDropGuard, which was only protecting us half the time, in favor of a directdropimplementation on Snapshot. Misuse of the drop guard could lead to difficult to diagnose and sporadic memory leaks. -
Simplify merge iterator seek
We simplify the implementation of merge iterators by removing explicit tracking of the iterator state. The iterator queue fully determines the state instead.
We also resolve the issue where a seek on a just-initialized merge iterators would cause a crash.
-
Fix index usage in ImmediateExecutor::find_next
Fix mixed up array index inImmediateExecutor::find_next -
Detect empty iterator queue in intersection iterator
Keep the exhausted iterator in a
Donestate when seeking.Seeking on an exhausted intersection iterator just after retrieving its last element would put it in a
Usedstate with no iterators in queue. Retrieving the next item from it would then make it panic as there is no next iterator in the queue, causing a server crash.
Code Refactors
-
Speed up bazel build
Add
--remote_download_toplevelto the bazel-rc for build jobs, which improves CI build times using the remote cache significantly (10-20% baseline) by not downloading intermediate rule outputs. We also allow parallelization of multiple checkstyle jobs.
Other Improvements
-
Update README with resource links
-
Update links in README for newsletter and learning center
-
Update TypeDB site link in README
-
Fix TypeDB banner image link in README
-
Create CONTRIBUTING.md with contribution guidelines
-
Remove Discussion Forum badge from README
-
Reduce diagnostics noise from CI of TypeDB users
Add a requirement for
initial_delayof diagnostics reports, which, if not met, forces the reporter to skip the first report cycle. This allows silencing CI jobs built by the users of TypeDB not using thediagnostics.reporting.metricsflag without significant harm to the data (the data will be added to the next report unless the server stops early).Additionally, clean up the diagnostics logic from the outdated code from TypeDB 2.x not used in TypeDB 3.x.
TypeDB 3.7.0-alpha-2
This is an alpha release for CLUSTERED TypeDB 3.x. Do not use this as a stable version of TypeDB.
Instead, reference a non-alpha release of the same major and minor versions.
Download from TypeDB Package Repository:
Distributions for 3.7.0-alpha-2
Pull the Docker image:
docker pull typedb/typedb:3.7.0-alpha-2
New Features
Support TypeDB Cluster and user extensions
TypeDB is rearchitected to support extensions like TypeDB Cluster. It is done through arced implementations of ServerState.
In order to boot up your own version of TypeDB, implement your own impl ServerState and replicate main.rs using your version
of the state.
All the features of TypeDB are preserved, but, since it's an alpha version, unexpected behaviour or bugs might be observed.
Also note that this server only supports GRPC Drivers and Console of the same version, and other versions of the clients
can lead to crashes. The HTTP endpoint is unchanged and safe to use similarly to the non-alpha version of TypeDB.
Bugs Fixed
Other Improvements
TypeDB 3.7.2
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.7.2
New Features
-
Implement min and max expressions
Implement min and max for expressions, usable for numerical types (
integer,double, anddecimal). Works for exactly 2 arguments:match let $x = min(10, 12); let $y = max(10, 12);
Bugs Fixed
- Fix docker container build
Code Refactors
Other Improvements
- Update VERSION for release
TypeDB 3.7.1
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.7.1
New Features
Bugs Fixed
Code Refactors
-
Improve docker setup to use /var/lib/typedb/data for data dir
We improve the TypeDB Docker setup by using
/var/lib/typedb/datafor the architecture-agnostic data directory for TypeDB. This path is hardcoded into the built-in docker command for starting the command.This means, we now simplify the docker external volume mount to be:
docker volume create typedb-data
and
docker create --name typedb -v typedb-data:/var/lib/typedb/data -p 1729:1729 -p 8000:8000 typedb/typedb:latestWhich works for either ARM or x86 builds.
Other Improvements
- Change cmd to entrypoint in docker setup
TypeDB 3.7.0
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.7.0
New Features
-
Implement abs and rounding functions for Decimal
We implement the following functions for
Decimal:abs,round,ceil,floor.
This completes the value type coverage for implemented intrinsic functions.
-
Revise HTTP & GRPC protocol compatibility
All HTTP messages will now silently ignore unused fields. This avoids breaking compatibility when an optional field is added to a client request payload. The server will simply ignore the field - This means the addition of any fields which may not be ignored must explicitly increment the API version.
GRPC messages will have an extension field going forward. Newer drivers (>3.5.0) with older servers (<3.5.x) may face "forward compatibility" issues where a method in the driver does not exist on the server and returns an error. Newly added options may also be ignored by the older server. -
Support try blocks in write stages
We implement
try {}block handling in all write stages, viz.insert,delete,put, andupdate. Only top-leveltryblocks are currently allowed, with no nesting.
Bugs Fixed
-
Consider include_query_structure option
We only include the pipeline structure in concept row responses if the include_query_structure flag in query options is set. -
Allow named role to be fully specified label when encoding pipeline structure
Allows a named role to be fully specified label when encoding pipeline structure. This is needed to handlematch $r relates relation:role; -
Expression executor must copy over provenance
The expression executor was not copying over provenance from the input row. Fixes this.
Code Refactors
-
Add in panic logging via the global panic_hook
We ensure that panics are written to the configured
tracinglog file, by intercepting the panic event and routing it via the logger. This code is borrowed from https://github.com/LukeMathWalker/tracing-panic ! -
Align HTTP analyze response with GRPC
Align HTTP analyze response with GRPC
Other Improvements
-
Improve type-seeding failure error experience
We improve the error message returned when type-seeding fails before the iterative pruning step by including the constraint name in the message.
We also make type-inference propagate labels across 'isa' constraints first, since these are likely to be the most informative. This makes for more intuitive error messages when the 'isa' constraint is the unsatisfiable one. -
Prepare release 3.7.0-rc0
We update the release notes and bump the version to 3.7.0-rc0.
-
Fix debug assertion to be more specific
-
Update CircleCI mac executors and xcode version
Update CircleCI mac executors tom4pro.mediumand xcode version to16.4.0in view of upcoming deprecations. -
Update PR template
-
Add rustfmt test CI job
-
Add analyze to GRPC
Add analyze to GRPC -
Minimize variants of cucumber steps to reduce bloat
Cucumber codegen leads to significantly bloated rlibs. We remove unused step variant implementations (Given, When, Then) as low hanging fruit. -
Add BDD testing for analyzing queries
Tests the query structure returned by the analyze endpoint (and used by studios' graph visualizer)
TypeDB 3.7.0-rc0
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.7.0-rc0
New Features
-
Revise HTTP & GRPC protocol compatibility
All HTTP messages will now silently ignore unused fields. This avoids breaking compatibility when an optional field is added to a client request payload. The server will simply ignore the field - This means the addition of any fields which may not be ignored must explicitly increment the API version.
GRPC messages will have an extension field going forward. Newer drivers (>3.5.0) with older servers (<3.5.x) may face "forward compatibility" issues where a method in the driver does not exist on the server and returns an error. Newly added options may also be ignored by the older server. -
Support try blocks in write stages
We implement
try {}block handling in all write stages, viz.insert,delete,put, andupdate. Only top-leveltryblocks are currently allowed, with no nesting.
Bugs Fixed
-
Allow named role to be fully specified label when encoding pipeline structure
Allows a named role to be fully specified label when encoding pipeline structure. This is needed to handlematch $r relates relation:role; -
Expression executor must copy over provenance
The expression executor was not copying over provenance from the input row. Fixes this.
Code Refactors
-
Add in panic logging via the global panic_hook
We ensure that panics are written to the configured
tracinglog file, by intercepting the panic event and routing it via the logger. This code is borrowed from https://github.com/LukeMathWalker/tracing-panic ! -
Align HTTP analyze response with GRPC
Align HTTP analyze response with GRPC
Other Improvements
-
Fix debug assertion to be more specific
-
Update CircleCI mac executors and xcode version
Update CircleCI mac executors tom4pro.mediumand xcode version to16.4.0in view of upcoming deprecations. -
Update PR template
-
Add rustfmt test CI job
-
Add analyze to GRPC
Add analyze to GRPC -
Minimize variants of cucumber steps to reduce bloat
Cucumber codegen leads to significantly bloated rlibs. We remove unused step variant implementations (Given, When, Then) as low hanging fruit. -
Add BDD testing for analyzing queries
Tests the query structure returned by the analyze endpoint (and used by studios' graph visualizer)
TypeDB 3.5.5
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.5.5
New Features
Bugs Fixed
-
Fix unreachable crashes in type seeder
For cases where the preconditions may not be satisfied by VariableCategory checks, we seed empty sets of types instead of having an "unreachable" panic.Fixes the crash in #7607
-
Fix brew install
We now symlinkbin/typedbtolibexec/typedbinstead of moving. This allows us to maintain the directory structure of the original distribution and allows thetypedbscript to correctly resolve the install directory.
Code Refactors
- Write type-check errors specify variable name
Write type check errors now provide the variable name instead of id.
Other Improvements
- Lower DB import/export logging to DEBUG
TypeDB 3.5.4
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.5.4
New Features
Bugs Fixed
Use latest console with fixed optional argument parsing
Code Refactors
Other Improvements
TypeDB 3.5.2
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.5.2
New Features
Bugs Fixed
-
Fix variable name unwrap when creating error message in insert executable
Fixes an unwrap when reading the variable name for returning an error message -
SpillOverCache removes key before inserting
Fixes a bug causing in SpillOverCache where a key can be inserted in both the memory backed map, and the disk back mapped. -
Fix relation indices recalculation on schema changes
Correctly regenerate and delete relation role player indices on schema changes. This fixes a bug when some query results could be ignored because of an incorrectly configured index used for optimization purposes. -
Reenable Sentry crash reporting
Fix a bug when TypeDB Server did not send crash reports for diagnostics even when--diagnostics.reporting.errorswas enabled.
Code Refactors
- Replace serializable_response macro with available serde annotations
Replace custom implementation of Serialize for concepts in the HTTP API with the derived serialize and serde annotations.
Other Improvements
TypeDB 3.5.1
Download from TypeDB Package Repository:
Pull the Docker image:
docker pull typedb/typedb:3.5.1
New Features
Bugs Fixed
-
Only seek iterators in k-way merge when behind
Fix intermittent crashes with
Key behind the stored item in a Peekable iteratorwhen a roleplayer index constraint is part of a join.
Code Refactors
Other Improvements
-
Print non-typedb source errors
Print source of error when it's not a TypeDB error as well as part of the generated stack trace.