Skip to content

Releases: typedb/typedb-studio

TypeDB Studio 2.21.0

15 Aug 15:36
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

See the compatibility table at our Studio documentation for which versions of Studio are compatible with which versions of TypeDB.


New Features

Bugs Fixed

  • Minimise queries made to refresh state after a schema write

We no longer reload the entire schema and all its connections on each schema write. Instead, we now reload the type hierarchy (for the Type Browser), and also, while there is a Type Editor open, it reloads all its data on a schema write.

This change drastically reduces the time taken to complete schema write operations.

Code Refactors

Other Improvements

TypeDB Studio 2.18.0

07 Jun 19:13
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

See the compatibility table at our Studio
documentation for which versions of Studio are compatible with which versions of TypeDB.


New Features

  • Refactor schema vertex rendering for graph visualisation

    Previously, Studio would visualise 'owns' edges that are inherited multiple times, even if the type from which it inherited this ownership is also present on the graph with its own 'owns' edge to the same attribute type.

    Now, Studio only visualises owns, plays and sub edges for the 'super-est' edges that own, plays or are subtypes for those types that are visible on the graph.

  • TypeDB Client Java 2.18 support
    We've bumped the version of TypeDB Client Java that Studio uses.

Bugs Fixed

Code Refactors

  • Use remote concept API to derive has edges for graph visualisation

    We've refactored the graph building process to derive 'has' edges from the remote concept API. This is hugely faster than the previous approach of running explicit reasoning queries per concept.

  • Terminology update for Type Editor and Type Browser

    We've renamed two parts of our system that pertain to the displaying of information about types.

Other Improvements

  • Update release notes workflow

    We integrate the new release notes tooling. The release notes are now to be written by a person and committed to the repo.

  • Update CODEOWNERS

TypeDB Studio 2.17.0

26 Apr 11:52
1acc516
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

See the compatibility table at our Studio
documentation for which versions of Studio are compatible with which versions of TypeDB.


New Features

  • Update for 2.17.0

    We've bumped our dependencies for the upcoming release of Studio 2.17.0.

  • Improve password expiry notification

    We've updated the version of typedb-client-java being depended upon, adding support for passwordExpirySeconds, a new user API that replaces passwordExpiryDays.

    We've also improved the password expiry notification, improving its clarity.

  • Password expiry notification

    We've added a password expiry notification advising users to use Console to update their password once it is within 7 days of expiring.

  • Extended unicode character support

    We've added support for characters in Studio's text editor larger than 16 bits.

  • Bump Compose, rules_kotlin

    We want to upgrade to the latest versions of Compose Multiplatform and Kotlin for increased performance and functionality.

  • Transaction Timeout Preference

    We've added a field to the query runner preferences, allowing for the configuration of transaction timeouts.

  • Allow running selected query from non-TypeQL files.

    We allow the running of a selected query from non-TypeQL files.

Bugs Fixed

  • Provide friendly warning when trying to explain an inference while explanations are not enabled

    We have provided a friendly warning to users when they try to explain an inference while explanations are not enabled.

  • Home/end keys move to beginning/end of content

    We've changed the behaviour of the home key in the text editor, moving it to the beginning of the content covered by the text editor rather than the beginning of the line. This falls in line with our current implementation where SHIFT+HOME selects everything to the beginning of the content.

TypeDB Studio 2.14.2

08 Dec 14:54
197bf9b
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

See the compatibility table at our Studio documentation for which versions of Studio are compatible with which versions of TypeDB.


New Features

Bugs Fixed

  • Schema editor loop fix

    We have fixed a bug in the schema editor where it would enter a loop through a few layers of indirection.

  • Fix text selection causing scrolling

    We have fixed a bug that caused the text editor to scroll whenever text was highlighted at the bottom of the text editor:

Code Refactors

Other Improvements

TypeDB Studio 2.14.1

25 Nov 20:01
041307b
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

See the compatibility table at our Studio documentation for which versions of Studio are compatible with which versions of TypeDB.


New Features

Schema Editor

Our schema editing functionalities are out! Now, you can manipulate the entirety of your database's schema with ease from the comfort of Studio's intuitive UI. Start by opening a schema write transaction, then double-clicking on any of your types in the schema browser and edit to your heart's content. It has never been easier to iterate upon your schema in real time, with immediate notifications informing you of any schema exceptions.

The following actions are possible within Studio's Schema Editor:

  1. Navigating seamlessly between your types.
  2. Define and undefine types.
  3. Changing any Thing's supertype and making any Thing abstract or not abstract.
  4. Adding and removing attributes from entities.
  5. Full editing of relationships, adding and removing attributes, changing of role players of the relationship and the adding of the relationship itself to other relationships!

Image

Preferences

You can now change various behaviours of Studio! Default match query limits, toggle the auto saving of files and more! We've laid the groundwork for adding more preferences in the future (such as different graph themes!), so make sure to send in any of your burning feature requests.

You can access the preferences dialog by clicking on the gear icon in the top right corner of Studio.

Changing the following settings is currently supported:

  1. Toggling the graph output.
  2. Ignoring certain paths (with globbing support!)
  3. Toggling auto saving of files.
  4. Changing the default match query limit.

Image

Cluster Experience Improvements

We've improved the experience of connecting to your TypeDB Cluster. You can add as many Cluster addresses as you like now!

Image

Test suite for Studio

We have developed a suite of tests concerning the integration of discrete sections of Studio.

Bugs Fixed

  • Fix icon clipping

    We've fix a bug we introduced where the size of icons was initialised as "Unspecified". As a result, certain icons became 'clipped'.

  • Shift+Home/End selects to end of line

    Matching the way navigating with the Home & End keys works, adding the shift key should only select to the end of the line rather than the end of the file.

  • Hybrid wait-based approach for test suite

    We've refactored the test suite to make use of a hybrid wait-based approach for the Studio test suite. That is, when we expect elements of the GUI to change we use ComposeTestRule's waitUntil, blocking until a given condition is satisfied or a timeout is reached. This polls the UI for changes and also recomposes inbetween polls.

    We have not entirely refactored out our static delays as some of the events we wait for are outside the scope of elements that fall entirely within Studio's GUI.

  • Fix replace shortcut for text editor on macOS

    The shortcut to open the replace dialog in Studio on macOS was CTRL+R, but it should be CMD+R. This has now been fixed.

  • Toggling infer no longer toggles explanations

    When we run a query, we automatically include TypeDBOptions given the state of the toolbar. Currently, we derive the value of explain for TypeDBOptions from infer. We should derive it from explain.

  • Provide window context for error windows

    We have fixed a bug where error windows were not provided window contexts and crashed before being able to show the error.

  • Fix WindowContext not reflecting changes to window size

    We fixed a bug in WindowContext where resizing the underlying window was not reflected when getting its values (i.e. height, width, x and y). This fixes a bug where certain actions such as mouse hovering didn't render tooltips because of windowContext reporting the incorrect height and width.

Code Refactors

  • Preferences design changes

    We've made adjustments to the behaviour of the preferences dialog after some internal feedback. End users should notice a more pleasant UI/UX. Contributors and developers should notice little difference other than working examples of a multiline text input within a form to base future development off of.

  • Improve preference dialog canonicalness

    We have improved the code providing the preferences dialog so that it is easier to understand and maintain in the future. The end user should experience no impact. Contributors and developers should have an easier time reading, understanding, maintaining and extending and interacting with the preferences dialog in the future.

  • Use icons by purpose rather than shape, use consistent casing in enums

    We address icons by their purpose rather than by their shape. This leads to a more ergonomic development story where the icon is named by how we use it. For example, the icon for exporting a schema is now Icon.Purpose.EXPORT rather than Icon.Code.ARROW_UP_RIGHT_FROM_SQUARE.

    Additionally, we want to have consistent casing for enum members.

  • Refactor integration test utilities and improve stability

    We have split a utilities object that was overloaded into a common folder that contains better named objects with a more rational division of responsibilities. Developers and contributors will have an easier time discerning the purpose of functions and understanding their function within the structure of the overall test suite. The test suite should also be more stable. End users of Studio should notice no change except for increased stability.

  • Migrate and stabilise Studio test suite

    The Studio tests that required an instance of TypeDB have been migrated to using typedb_kt_test, which use typedb-runner to provide TypeDB to the tests rather than typedb-extractor. This migration has provided stability, increased hermeticity and the opportunity to test Studio's interactions with cluster in the future.

Other Improvements

  • Guard access to TextLayoutResult.getCursorRect from IndexOutOfBounds that could happen in concurrent modification events

  • Rename SchemaService.hasRunningTx to hasRunningCommand

  • Correct type page edit button titles

  • Improve validation logic of type dialogs

  • Fixed boolean logic of Toolbar.hasRunningCommand property

  • Update tooltip description for type editing functionalities

  • Make sure to update TypeState's copy of concept type when refreshing type states

  • Publish status of schema exceptions when modifying schema types

  • Make sure to close all type pages when closing schema service

  • Improved the formatting of error message to have line breaks

  • Fixed the tenses in the names of 'owns', 'plays', and 'relates' properties

  • Fixed overridable related role type list in relation TypePage

  • Allow changing overridden types of owns, plays, and relates

  • Allow undefining owned attribute types

  • Allow undefining played role types

  • Handle exceptions properly when running readTx in SchemaService

  • SchemaManager now tracks all running read tx, and TypePage prohibits actions when there's a running tx

  • Indicate when a Type is abstract in label details

  • Refactor TypeState.isAbstract to be recorded from Type field rather than remote method

  • Add column for abstract flag in attribute and role type tables

  • Hitting enter on relates role type input text submits the entry

  • Add menu items to visit owner types of attribute owner types table

  • Show 'extended type' in which attribute/role types are inherited from, in owns/plays/relates tables

  • Reorder and rename relates role type context menu items

  • Add context menu items to visit types in relates role types table

  • Add context menu items to visit types associated to played role type properties

  • Update TypeBrowser content after schem write query runs

  • Add context menu items to visit types associated to owned attribute type properties

  • Fixed Navigator coroutines by constructing an independent CoroutineScope per TypePage

  • Allow closing database by unselecting from dropdown

  • Allow clearing selected value of a dropdown

  • Allow changing the overridden type of a role type

  • Implement context menus in tables, and replace action buttons in TypePage tables with context menu

  • Temporarily print stack trace when failing to load type constraints to debug rare bug

  • When relation type has no role type, the root role type is no longer displayed

  • When type changes fail to commit, type pages now refresh

  • Improved attribute/role type inheritance logic and owns/plays definition

  • Allow defining thing type playing role types

  • Allow defining relation type relating role types

  • Ensure all write operations on SchemaManager handle their exceptions and notifications

  • Allow defining thing type owning attribute types

  • **Fixed logic for loading supertype to alwa...

Read more

TypeDB Studio 2.11.0

05 Jul 17:21
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

See the compatibility table at our Studio documentation for which versions of Studio are compatible with which versions of TypeDB.


New Features

  • Parallelise Navigator expansion logic, and update content in real-time

Bugs Fixed

Code Refactors

  • Renamed //view to //framework

  • Introduced a new //module package to move some //view sub-packages to

  • Moved Studio out of //view to root

Other Improvements

  • Rename "linux-java-binary" distribution to just "linux"

  • Update license headers to 2022 where necessary

  • Update package structure documentation


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

TypeDB Studio 2.10.0-alpha-10

24 Jun 17:36
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

  • 2.10.0 and above

New Features

  • Expand vertices on hover/focus, and wrap content by logical block

    Vertices will now expand on hover/focus. In the case of hover, this replaces the old "fade" effect.

    When the content of the vertex overflows the base size, we expand the vertex significantly more, inflating it so it can show much more content - e.g: the full label of a relation, or the full value of an attribute. (Exceptionally long values may still be truncated, but the full value is retrievable in the Preview pane.)

    Also, vertex content is now wrapped by logical block. So, for instance, type labels will break onto the next line at the positions of hyphens, rather than whenever they overflow the vertex bounds.

  • Autoscale Graph viewport, except if manually scaled

Bugs Fixed

  • Make the window icon Vaticle Bot

    We set Vaticle Bot as the application window icon.

  • Fix "jittering" when rendering vertices, edges and text

    Previously, text was rendered in a separate "layer" to shapes, meaning that to render the graph we needed 2 Canvases and 2 other "layers". We've significantly cleaned up the GraphArea implementation, by now drawing all Graph text (and shapes) onto a single Canvas. As a result, this has eliminated "jitter" where shapes and their labels would frequently go out of sync.

  • Replace "Replace" shortcut to Ctrl+H on Windows and Linux

    We've set the "Replace" shortcut to Ctrl+H on Windows and Linux. Previously, it was Ctrl+R which is non-standard.

Code Refactors

  • Concept Preview architecture refactor

    We refactored the Graph Visualiser's Concept Preview dialog, introducing a Concept preview library in the process.

  • Rename BrowserGroup, NotificationGroup, and PageGroup, to Browsers, Notifications, and Pages

  • Move Page into PageGroup

  • Move PageArea and NotificationArea into //view/material

  • Update package structure documentation

  • Merged and dissolved //view/concept into //view/material

  • Refined package name build definitions of //view/editor/highlighter

  • Update package structure documentation

  • Move //view/highlighter into //view/editor

  • Encapsulate syntax highlighting into TextEditor.State, decoupling it from //view/output

  • Minor method refactorings

  • Moved tryRenameFile() and trySaveFileTo() into FileState

  • Moved tryMoveDirectory() into DirectoryState

  • Moved tryRenameDirectory() into DirectoryState

  • Moved tryCreateFile() and tryCreateDirectory() into DirectoryState

  • Rename Item to Path in //state/project

  • Update package structure documentation

  • Optimised imports

  • Rename GlobalState to StudioState, and rename leftover names of Resource to Pageable

  • Renamed File to FileState, Directory to DirectoryState, and ProjectItem to PathState

  • Renamed Resource to Pageable, ResourceManager to PageManager, and //state/resource to //state/page

  • Update package structure documentation

  • Remove methods in Resource that are not generically needed

  • Move RunnerManager into //state/connection next to QueryRunner

  • Refactor logic to open and run file into File class as opposed to ResourceManager

  • Simplified ResourceManager next and previous logic

  • Refactor logic for opening and activating Resources

  • Simplified File/Directory constructors by minimising dependencies injected

  • Encapsulate file & directory renaming, saving, moving, and deleting initiation into File/Directory classes

  • Split 'delete' context menu item to a separate context menu category, and refactor ProjectDialog properties

  • Moved dialog composable invocations into their respective domains

  • Refactor File renaming, saving, and moving logic, to encapsulate canonical domain logic into File class

  • ConfirmationManager should always close on confirm, and SafeFile dialog should run on AWT on separate asynchronously

  • Extract border definition out of Table library, and rename showHeaders argument to showHeader

  • Rename FixedScheduleRunner to BackgroundTask

  • Move FixedScheduleRunner to view.graph

Other Improvements

  • Bump version to 2.10.0-alpha-10

  • Hide graph text longer during 'explosion', for performance


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

TypeDB Studio 2.10.0-alpha-9

12 Jun 17:35
5914318
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

  • 2.10.0 and above

New Features

  • Add button to copy text in notification box

Bugs Fixed

  • Fixed left/right scroll navigation buttons horizontal tabs
  • Make notification area scrollable when list notification messages overflow screen
  • Increase contrast of warning background
  • Restrict graph visualiser output only for match queries

Code Refactors

  • Refactor RunOutputGroup consumeResponse() logic for clarity

Other Improvements

  • Close server dialog when connection attempt is successful
  • Ignore .git folder in project directory, and lay down scaffolding for preference manager

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

TypeDB Studio 2.10.0-alpha-8

10 Jun 19:06
b3731cb
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

  • 2.10.0 and above

Bugs Fixed

  • Fixed the bug that caused TextEditor to crash when deleting content longer than screen size

Other Improvements

  • Improved the layout algorithm of the graph visualiser to minimise vertices and edges crossing over each other in knots

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

TypeDB Studio 2.10.0-alpha-7

09 Jun 19:07
Compare
Choose a tag to compare

Distribution

TypeDB Studio is available for Linux, Mac and Windows (download binaries below).

For Mac, TypeDB Studio is also available through Homebrew:

brew tap vaticle/tap
brew install --cask vaticle/tap/typedb-studio

TypeDB Server Compatible Versions

  • 2.10.0 and above

Important: For clarity, TypeDB Studio's project data directories have been renamed from .tdbs to .typedb-studio. If you had unsaved files, you can recover them from .tdbs. Feel free to delete .tdbs after. On MacOS and Linux, we've also changed the app data directory, which is now ~/.typedb-studio. (On Windows, this remains unchanged at %AppData%/TypeDB Studio.) This is where the logs and global config are stored.

Please note: If you previously installed 2.10.0-alpha on Windows, you'll need to uninstall it first in order to upgrade. This will continue to be the case until the base version moves up from "2.10.0"; the executable's version tag doesn't contain the alpha number.

New Features

Bugs Fixed

  • Remove all blocking operations in Coroutines of QueryRunner and RunOutputGroup

  • Optimise non-blocking queue polling in QueryRunner and RunOutputGroup

  • Make text input placeholder more obvious that it's a placeholder

Code Refactors

Other Improvements

  • Move app data directory for Mac and Linux to user home dir

  • Replace all state CoroutineScope EmptyCoroutineContext with Dispatchers.Default


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