Skip to content

Commit ca07f77

Browse files
authored
Prepare for release 3.4.4 (#781)
## Usage and product changes Update release notes template and latest, update artifacts and dependencies. ## Implementation
1 parent 68e9a47 commit ca07f77

File tree

5 files changed

+103
-49
lines changed

5 files changed

+103
-49
lines changed

RELEASE_NOTES_LATEST.md

Lines changed: 88 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ Documentation: https://typedb.com/docs/drivers/rust/overview
99

1010

1111
```sh
12-
cargo add typedb-driver@3.4.0
12+
cargo add typedb-driver@3.4.4
1313
```
1414

1515

1616
### Java driver
1717

18-
Available through [https://repo.typedb.com](https://cloudsmith.io/~typedb/repos/public-release/packages/detail/maven/typedb-driver/3.4.0/a=noarch;xg=com.typedb/)
18+
Available through [https://repo.typedb.com](https://cloudsmith.io/~typedb/repos/public-release/packages/detail/maven/typedb-driver/3.4.4/a=noarch;xg=com.typedb/)
1919
Documentation: https://typedb.com/docs/drivers/java/overview
2020

2121
```xml
@@ -29,7 +29,7 @@ Documentation: https://typedb.com/docs/drivers/java/overview
2929
<dependency>
3030
<groupid>com.typedb</groupid>
3131
<artifactid>typedb-driver</artifactid>
32-
<version>3.4.0</version>
32+
<version>3.4.4</version>
3333
</dependency>
3434
</dependencies>
3535
```
@@ -42,66 +42,109 @@ Documentation: https://typedb.com/docs/drivers/python/overview
4242
Available through https://pypi.org
4343

4444
```
45-
pip install typedb-driver==3.4.0
45+
pip install typedb-driver==3.4.4
4646
```
4747

48+
### HTTP Typescript driver
49+
50+
[//]: # (TODO: Update docs link)
51+
52+
NPM package: https://www.npmjs.com/package/typedb-driver-http
53+
Documentation: https://typedb.com/docs/drivers/
54+
55+
```
56+
npm install typedb-driver-http@3.4.4
57+
```
4858

4959
## New Features
50-
- **Introduce file-based database export and import**
51-
Introduce interfaces to export databases into schema definition and data files and to import databases using these files. Database import supports files exported from both TypeDB 2.x and TypeDB 3.x.
52-
53-
Both operations are blocking and may take a significant amount of time to execute for large databases. Use parallel connections to continue operating with the server and its other databases.
60+
61+
- **Typescript HTTP driver**
62+
63+
Add a relatively slim typescript driver based on our HTTP API, adapted from code used for this purpose in `typedb-studio`.
64+
65+
This driver is published to `npm` under the name `typedb-driver-http` through the same process as the old `nodejs` driver.
66+
67+
68+
- **Typescript HTTP driver docs generation**
5469

55-
Usage examples in Rust:
56-
```rust
57-
// export
58-
let db = driver.databases().get(db_name).await.unwrap();
59-
db.export_to_file(schema_file_path, data_file_path).await.unwrap();
70+
Introduce docs generation for the Typescript HTTP driver, based on the existing strategy for the NodeJS driver.
6071

61-
// import
62-
let schema = read_to_string(schema_file_path).unwrap();
63-
driver.databases().import_from_file(db_name2, schema, data_file_path).await.unwrap();
64-
```
72+
We divide the docs into:
6573

66-
Usage examples in Python:
67-
```py
68-
# export
69-
database = driver.databases.get(db_name)
70-
database.export_to_file(schema_file_path, data_file_path)
74+
- Connection
75+
- Response
76+
- Concept
77+
- Query Structure
7178

72-
# import
73-
with open(schema_file_path, 'r', encoding='utf-8') as f:
74-
schema = f.read()
75-
driver.databases.import_from_file(db_name2, schema, data_file_path)
76-
```
79+
within each section, static functions are grouped into a specific `Static Functions` section.
7780

78-
Usage examples in Java:
79-
```java
80-
// export
81-
Database database = driver.databases().get(dbName);
82-
database.exportToFile(schemaFilePath, dataFilePath);
81+
Additionally, `QueryConstraints`, `QueryVertices` in query structure; and `DriverParams` in connection are used as sub-categories (that is, `DriverParams`, `DriverParamsBasic`, and `DriverParamsTranslated` are all grouped under `DriverParams`).
8382

84-
// import
85-
String schema = Files.readString(Path.of(schemaFilePath));
86-
driver.databases().importFromFile(dbName2, schema, dataFilePath);
87-
```
83+
We also implement functionality for handling:
84+
- type aliases
85+
- indexable properties (e.g. `[varName: string]: Concept`)
8886

8987

9088

9189
## Bugs Fixed
92-
- **Handle "Unexpected response type for remote procedure call: Close" on query stream opening**
93-
Fix a rare `InternalError` returned by mistake when a client sends a query request while the transaction is being closed. Now, an expected "The transaction is closed and no further operation is allowed." error is returned instead.
94-
95-
Additionally, wait for specific transaction responses in `rollback`, `commit`, and `query` to solidify the protocol and ensure that the server acts as expected.
96-
97-
90+
9891

9992
## Code Refactors
10093

10194

10295
## Other Improvements
103-
104-
- **Update zlib dependency**
105-
Support build on Apple Clang 17+ by updating dependencies (details: https://github.com/typedb/typedb-dependencies/pull/577).
96+
- **Enforce explicit https addresses for TLS connections**
97+
Drivers return explicit error messages when connection addresses and TLS options are mismatched. TLS connections require addresses to have `https`. Non-TLS connections require addresses not to have `https`.
98+
99+
100+
- **Enable TLS by default in Python**
101+
102+
We want to enable a secure-by-default setting in TypeDB Drivers. In Java and Rust, `DriverOptions` have to be explicitly set, and there are no defaults. However, Python features a disabled TLS default. While this is compatible with TypeDB CE, it's an insecure default & not compatible with TypeDB Cloud without explicitly enabling it.
103+
104+
Instead, we set the default to TLS being __enabled__ in Python. This means when using an insecure, plaintext connection the user must explicitly set it, and is more likely to become aware of the plaintext communication.
105+
106+
107+
- **Ensure PNPM config in CI matches config locally**
108+
109+
We add an `.npmrc` file to ensure the PNPM config in local machines and CI match so that installation succeeds in CI.
106110

107111

112+
- **Install PNPM deps in CI release pipeline**
113+
114+
The release pipeline in CI now correctly installs PNPM dependencies for the HTTP TS driver.
115+
116+
117+
- **Make the HTTP TypeScript driver dual-module (CJS+ESM)**
118+
119+
The HTTP TypeScript driver is now dual-module, offering both CommonJS and ES Module support.
120+
121+
122+
- **Set HTTP Typescript driver dependencies as dev dependencies**
123+
124+
We set all dependencies of the Typescript HTTP driver as dev dependencies, as they aren't required at runtime.
125+
126+
127+
- **Rename docs antora module**
128+
129+
We rename the docs antora module used to host the generated driver references from `api-ref` to `external-typedb-driver`, to support refactoring in the typedb docs repository.
130+
131+
- **Revert the HTTP driver to a CommonJS package**
132+
133+
We convert `typedb-driver-http` back into using `commonjs`. This allows us to also revert `import`/`export` syntax to not require file extensions.
134+
135+
136+
- **Correct the package and tsconfig for HTTP driver**
137+
138+
We fix issues in `package.json` that prevented `typedb-driver-http` from being used correctly
139+
140+
141+
- **Fix CircleCI release configuration for HTTP driver**
142+
143+
We fix a typo that made the CircleCI release configuration invalid.
144+
145+
146+
- **Use release version of typedb server artifact**
147+
148+
- **Update to latest typedb server artifact**
149+
150+

RELEASE_TEMPLATE.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,20 @@ Available through https://pypi.org
4646
pip install typedb-driver=={version}
4747
```
4848

49+
### HTTP Typescript driver
50+
51+
[//]: # (TODO: Update docs link)
52+
53+
NPM package: https://www.npmjs.com/package/typedb-driver-http
54+
Documentation: https://typedb.com/docs/drivers/
55+
56+
```
57+
npm install typedb-driver-http@{version}
58+
```
59+
4960
[//]: # (TODO: Please remove the unreleased drivers manually. Commenting them out in Markdown looks scary)
5061

51-
### NodeJS driver
62+
### NodeJS GRPC driver
5263

5364
NPM package: https://www.npmjs.com/package/typedb-driver
5465
Documentation: https://typedb.com/docs/drivers/nodejs/overview

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.4.0
1+
3.4.4

dependencies/typedb/artifacts.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def typedb_artifact():
2525
artifact_name = "typedb-all-{platform}-{version}.{ext}",
2626
tag_source = deployment["artifact"]["release"]["download"],
2727
commit_source = deployment["artifact"]["snapshot"]["download"],
28-
tag = "3.4.1"
28+
commit = "ee675e16030aaff1751f5c91cf3afa3b7c1a84ad"
2929
)
3030

3131
#def typedb_cloud_artifact():

dependencies/typedb/repositories.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,5 @@ def typedb_behaviour():
3535
git_repository(
3636
name = "typedb_behaviour",
3737
remote = "https://github.com/typedb/typedb-behaviour",
38-
commit = "d05a284e445a53de96868c3d27a35ffbef58a077", # sync-marker: do not remove this comment, this is used for sync-dependencies by @typedb_behaviour
38+
commit = "913455bf2923f8a6853f513bab9d3dc34d12c254", # sync-marker: do not remove this comment, this is used for sync-dependencies by @typedb_behaviour
3939
)

0 commit comments

Comments
 (0)