|
1 | 1 | ## Distribution
|
2 | 2 |
|
3 |
| -Download from TypeDB Package Repository: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-console+version:3.0.5 |
| 3 | +Download from TypeDB Package Repository: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-console+version:3.1.0 |
4 | 4 |
|
5 | 5 |
|
6 | 6 | ## New Features
|
7 |
| - |
| 7 | + |
| 8 | +### Rust console |
| 9 | + |
| 10 | +We re-implement TypeDB console in Rust, using a slightly more sophisticated architecture. Most of the UX of the console remains the same, with the exception of three usages: |
| 11 | + |
| 12 | +- **TLS enabled by default** |
| 13 | + |
| 14 | +TypeDB console enables TLS connections by default. This further will error if you try to connect to an HTTP endpoint, instead of an HTTPS one. This change was required because username and password are now required to connect to the any TypeDB 3.0 server. |
| 15 | + |
| 16 | +To disable TLS (for example, for local development), use the `--tls-disabled` flag when booting TypeDB console. Note that this will send passwords in plaintext over the network. |
| 17 | + |
| 18 | +- **Replacement of `--core=<address>` and `--cloud=<address>` with `--address=<address>`** |
| 19 | + |
| 20 | +To connect to a TypeDB server (either a Core/CE 3.0, or a Cloud 3.0 deployment) use the new `--address=<address>` argument to the console. |
| 21 | + |
| 22 | +- **The command to open a transaction has changed** |
| 23 | + ``` |
| 24 | + >> transaction <db> <read|write|schema> |
| 25 | + ``` |
| 26 | +Has become: |
| 27 | + ``` |
| 28 | + >> transaction <read|write|schema> <db> |
| 29 | + ``` |
| 30 | +Note how the position of the database name has been swapped. |
| 31 | + |
| 32 | +### Build |
| 33 | + |
| 34 | +This repository is now supports dual Bazel/Cargo build systems. |
| 35 | + |
| 36 | +To run TypeDB console directly from this repository, please see the updated README! |
| 37 | + |
| 38 | +### Artifacts |
| 39 | + |
| 40 | +As before, Console will be published as platform-specific archives. However, they now contain a single bash/bat file and the compiled console binary. No more Java libs or requirement to have Java installed! |
| 41 | + |
| 42 | +We also no longer deploy a `console-runner` artifact, since it was only used to run the local `assembly` test. The assembly test is now written in rust, using an unpublished, repository-local runner library that drives both a Server and a Console in the test. |
| 43 | + |
| 44 | +### Note |
| 45 | + |
| 46 | +Some details of the TypeDB Console UX has changed. Please try it out and don't hesitate to reach out to share your thoughts! |
8 | 47 |
|
9 | 48 | ## Bugs Fixed
|
10 | 49 |
|
11 | 50 |
|
12 | 51 | ## Code Refactors
|
13 |
| -- **Update the Driver dependency to work with optional concepts from rows** |
| 52 | +- **Update TypeDB driver dependency and constructor** |
| 53 | + Update TypeDB driver dependency and use the unified driver constructor to support the latest API. |
| 54 | + |
14 | 55 |
|
15 | 56 |
|
16 | 57 | ## Other Improvements
|
| 58 | +- **Fix query command parsing** |
| 59 | + |
| 60 | +- **Fix next-command index bug** |
| 61 | + |
| 62 | +- **Improve UX of Ctrl+C and fix bugs in command submission** |
| 63 | + |
| 64 | + We an important bug: |
| 65 | + 1. |
| 66 | + ``` |
| 67 | + >> match |
| 68 | + $x isa person; | |
| 69 | + ``` |
| 70 | + 2. navigate cursor and enter newlines |
| 71 | + ``` |
| 72 | + >> match |
| 73 | + |
| 74 | + | $x isa person; |
| 75 | + ``` |
| 76 | + |
| 77 | + Various things would break, including submitting the "script" prematurely. Now, the block is only submitted when the sequence of commands entered are a valid script. |
| 78 | + |
| 79 | + Additionally, the UX if Ctr+C is improved: when hitting Ctrl+C on a non-empty line, the line is retained, rather than cleared. |
| 80 | + |
| 81 | + |
| 82 | +- **Multiline script paste and unified scripting format** |
| 83 | + |
| 84 | + We refactor the Console to allow pasting a "script" into the current REPL. This will be correctly interpreted and executed as a block of separate commands. The inputs must look as they would when using the console interactively: |
| 85 | + ``` |
| 86 | + database create tmp |
| 87 | + transaction schema tmp |
| 88 | + define entity person; |
| 89 | + |
| 90 | + commit |
| 91 | + ``` |
| 92 | + |
| 93 | + With the empty newline, as in regular interactive console, being used to mark the end of the query. |
| 94 | + |
| 95 | + This is particularly useful for pasting fully self-contained examples from TypeDB documentation into the console! |
| 96 | + |
| 97 | + The format of `--file` scripts (now called `--script`) must follow this same format, instead of using `\` to write multiline queries. We will refer to this as the `TypeDB Console Script`, or `Scripted TypeQL` in some contexts. We use `.tqls` for console scripts, instead of the usual `.tql` which contains pure TypeQL. |
| 98 | + |
| 99 | + |
| 100 | +- **Strip newline before adding to history** |
| 101 | + |
| 102 | +- **Implement search based on currently entered term** |
| 103 | + |
| 104 | +- **Fix test-assembly** |
| 105 | + |
| 106 | +- **Clear line if ctrl+c is hit with content on the current line** |
| 107 | + |
| 108 | +- **Fix UX bugs and documentation** |
| 109 | + |
| 110 | +- **Incorporate UX improvements, fix windows distribution** |
| 111 | + |
| 112 | +- **Implement uncommitted changes indicator** |
| 113 | + |
| 114 | +- **Update database list error messages to print that none were found** |
0 commit comments