Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 32 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]


## [0.19.0] - 2026-09-23

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super nit: rewrite the two entries below as user-facing prose and move the feature under ### Added (not blocking).

Lines 15-16 are raw commit subjects. Every prior section in CHANGELOG.md describes the change and its effect on callers. chore(databases): simplify fork error description is internal and carries no meaning for a crate consumer. scripts/extract-changelog.py feeds this section into the GitHub Release body, so the text reaches users verbatim. A release PR is the last chance to edit the text before the tag.

@shefeek-jinnah shefeek-jinnah Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 4f374bf. I rewrote the section as user-facing prose under Added and Changed. The #149 regen turned out to carry more than its title said: the constant-per-key endpoints, vector index precision, and a breaking rename of key_determines to constant_per_key. All of these are now listed.


### Added

- **Fork descriptions.** `ForkDatabaseRequest` has an optional `description`.
It records why the fork was taken, and you can set it only at fork time.
The server returns it on `ForkedFromInfo`, `LineageAncestorInfo` and
`LineageForkInfo`. On an ancestor entry, it describes the fork taken from
that ancestor (the next generation down).
- **Constant-per-key after table creation.** Two new operations change the
declaration on an existing table: `set_database_table_constant_per_key` and
`set_managed_table_constant_per_key`. Both take an
`UpdateManagedTableRequest` and return a
`ManagedTableConstantPerKeyResponse`. `TableInfo` now reports
`constant_per_key`. `JobType` has a new `TableConstantsUpdate` variant.
- **Vector index precision.** `CreateIndexRequest` has an optional
`vector_precision` field of type `VectorPrecision` (`float64`, `float32`,
`float16` or `float8`). `IndexInfoResponse` and `IndexEntryResponse` report
it.

### Changed

- feat(databases): add description field to fork lineage
- chore(databases): simplify fork error description
- **Breaking:** `key_determines` is now `constant_per_key` on
`AddManagedTableDecl`, `AddManagedTableRequest` and
`DatabaseDefaultTableDecl`. This matches the server, which rejects the old
name.
- **Breaking:** some generated models have new public fields, for example
`ForkDatabaseRequest.description` and `TableInfo.constant_per_key`. Code
that builds these structs as literals must set the new fields. To avoid
this in the future, start from `::new()` or `..Default::default()`.
- The API documentation now covers more detail: fork error cases,
`default_connection_id` and catalog attachment rules, the 16 GiB upload
limit, and case matching in database name search.

## [0.18.1] - 2026-09-18

Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hotdata"
version = "0.18.1"
version = "0.19.0"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: update the three README version pins to "0.19" (not blocking).

README.md pins hotdata = "0.18" at lines 17, 32 and 210. Cargo treats "0.18" on a 0.x crate as >=0.18.0, <0.19.0, so a reader who copies the install snippet resolves 0.18.1 and never gets this release. The README ships with the crate to crates.io, so the stale pin is the first thing a new user sees.

scripts/release.sh only stages Cargo.toml and CHANGELOG.md, so no tooling catches this drift on a minor bump.

@shefeek-jinnah shefeek-jinnah Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 4f374bf: all three README pins are now 0.19.

authors = ["developers@hotdata.dev"]
description = "Powerful data platform API for datasets, queries, and analytics."
license = "MIT"
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Add the crate to your `Cargo.toml`:

```toml
[dependencies]
hotdata = "0.18"
hotdata = "0.19"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
```

Expand All @@ -29,7 +29,7 @@ By default the crate builds against `native-tls`. To use `rustls` instead:

```toml
[dependencies]
hotdata = { version = "0.18", default-features = false, features = ["rustls"] }
hotdata = { version = "0.19", default-features = false, features = ["rustls"] }
```

## Authentication
Expand Down Expand Up @@ -207,7 +207,7 @@ Query results can be fetched as an [Apache Arrow](https://arrow.apache.org/) IPC

```toml
[dependencies]
hotdata = { version = "0.18", features = ["arrow"] }
hotdata = { version = "0.19", features = ["arrow"] }
```

`ArrowResult` hands back `arrow` types, so a crate that names them must depend
Expand Down
Loading