Skip to content

Releases: typedb/typedb

TypeDB 3.7.3

13 Jan 16:39
57157a8

Choose a tag to compare

Download from TypeDB Package Repository:

Distributions for 3.7.3

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 direct drop implementation 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 in ImmediateExecutor::find_next

  • Detect empty iterator queue in intersection iterator

    Keep the exhausted iterator in a Done state when seeking.

    Seeking on an exhausted intersection iterator just after retrieving its last element would put it in a Used state 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_toplevel to 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_delay of 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 the diagnostics.reporting.metrics flag 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

07 Jan 09:29
50aa9e6

Choose a tag to compare

TypeDB 3.7.0-alpha-2 Pre-release
Pre-release

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

13 Dec 03:31
d17049a

Choose a tag to compare

Download from TypeDB Package Repository:

Distributions for 3.7.2

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, and decimal). 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

12 Dec 00:03
8d413bd

Choose a tag to compare

Download from TypeDB Package Repository:

Distributions for 3.7.1

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/data for 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:latest

    Which works for either ARM or x86 builds.

Other Improvements

  • Change cmd to entrypoint in docker setup

TypeDB 3.7.0

03 Dec 16:20
a03f209

Choose a tag to compare

Download from TypeDB Package Repository:

Distributions for 3.7.0

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, and update. Only top-level try blocks 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 handle match $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 tracing log 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 to m4pro.medium and xcode version to 16.4.0 in 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

17 Nov 17:05
6a8c8d8

Choose a tag to compare

Download from TypeDB Package Repository:

Distributions for 3.7.0-rc0

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, and update. Only top-level try blocks 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 handle match $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 tracing log 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 to m4pro.medium and xcode version to 16.4.0 in 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

20 Oct 20:02
da71041

Choose a tag to compare

Download from TypeDB Package Repository:

Distributions for 3.5.5

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 symlink bin/typedb to libexec/typedb instead of moving. This allows us to maintain the directory structure of the original distribution and allows the typedb script 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

10 Oct 22:24
2ae4d10

Choose a tag to compare

Download from TypeDB Package Repository:

Distributions for 3.5.4

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

07 Oct 16:39
548755f

Choose a tag to compare

Download from TypeDB Package Repository:

Distributions for 3.5.2

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.errors was 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

24 Sep 09:31
984c5ce

Choose a tag to compare

Download from TypeDB Package Repository:

Distributions for 3.5.1

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 iterator when 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.