mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-07-06 02:52:11 +02:00
Prepare v0.2.0 release
This commit is contained in:
parent
6feae8cd34
commit
5daeae7571
6 changed files with 101 additions and 15 deletions
8
Cargo.lock
generated
8
Cargo.lock
generated
|
|
@ -4505,7 +4505,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "omnigraph"
|
name = "omnigraph"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
"arrow-cast",
|
"arrow-cast",
|
||||||
|
|
@ -4542,7 +4542,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "omnigraph-cli"
|
name = "omnigraph-cli"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"assert_cmd",
|
"assert_cmd",
|
||||||
"clap",
|
"clap",
|
||||||
|
|
@ -4562,7 +4562,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "omnigraph-compiler"
|
name = "omnigraph-compiler"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash",
|
"ahash",
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
|
|
@ -4583,7 +4583,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "omnigraph-server"
|
name = "omnigraph-server"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"axum",
|
"axum",
|
||||||
"cedar-policy",
|
"cedar-policy",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "omnigraph-cli"
|
name = "omnigraph-cli"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
description = "CLI for the Omnigraph graph database."
|
description = "CLI for the Omnigraph graph database."
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
@ -10,9 +10,9 @@ name = "omnigraph"
|
||||||
path = "src/main.rs"
|
path = "src/main.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
omnigraph = { path = "../omnigraph", version = "0.1.0" }
|
omnigraph = { path = "../omnigraph", version = "0.2.0" }
|
||||||
omnigraph-compiler = { path = "../omnigraph-compiler", version = "0.1.0" }
|
omnigraph-compiler = { path = "../omnigraph-compiler", version = "0.2.0" }
|
||||||
omnigraph-server = { path = "../omnigraph-server", version = "0.1.0" }
|
omnigraph-server = { path = "../omnigraph-server", version = "0.2.0" }
|
||||||
clap = { workspace = true }
|
clap = { workspace = true }
|
||||||
color-eyre = { workspace = true }
|
color-eyre = { workspace = true }
|
||||||
serde = { workspace = true }
|
serde = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "omnigraph-compiler"
|
name = "omnigraph-compiler"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
description = "Schema/query compiler for Omnigraph. Zero Lance dependency."
|
description = "Schema/query compiler for Omnigraph. Zero Lance dependency."
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "omnigraph-server"
|
name = "omnigraph-server"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
description = "HTTP server for the Omnigraph graph database."
|
description = "HTTP server for the Omnigraph graph database."
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
@ -10,8 +10,8 @@ name = "omnigraph-server"
|
||||||
path = "src/main.rs"
|
path = "src/main.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
omnigraph = { path = "../omnigraph", version = "0.1.0" }
|
omnigraph = { path = "../omnigraph", version = "0.2.0" }
|
||||||
omnigraph-compiler = { path = "../omnigraph-compiler", version = "0.1.0" }
|
omnigraph-compiler = { path = "../omnigraph-compiler", version = "0.2.0" }
|
||||||
axum = { workspace = true }
|
axum = { workspace = true }
|
||||||
clap = { workspace = true }
|
clap = { workspace = true }
|
||||||
color-eyre = { workspace = true }
|
color-eyre = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "omnigraph"
|
name = "omnigraph"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
description = "Lance-native graph database with git-style branching."
|
description = "Lance-native graph database with git-style branching."
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
@ -10,7 +10,7 @@ default = []
|
||||||
failpoints = ["dep:fail", "fail/failpoints"]
|
failpoints = ["dep:fail", "fail/failpoints"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
omnigraph-compiler = { path = "../omnigraph-compiler", version = "0.1.0" }
|
omnigraph-compiler = { path = "../omnigraph-compiler", version = "0.2.0" }
|
||||||
lance = { workspace = true }
|
lance = { workspace = true }
|
||||||
lance-datafusion = { workspace = true }
|
lance-datafusion = { workspace = true }
|
||||||
lance-file = { workspace = true }
|
lance-file = { workspace = true }
|
||||||
|
|
@ -41,7 +41,7 @@ async-trait = { workspace = true }
|
||||||
url = { workspace = true }
|
url = { workspace = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
omnigraph-compiler = { path = "../omnigraph-compiler", version = "0.1.0" }
|
omnigraph-compiler = { path = "../omnigraph-compiler", version = "0.2.0" }
|
||||||
tokio = { workspace = true }
|
tokio = { workspace = true }
|
||||||
lance-namespace-impls = { workspace = true }
|
lance-namespace-impls = { workspace = true }
|
||||||
serial_test = "3"
|
serial_test = "3"
|
||||||
|
|
|
||||||
86
docs/releases/v0.2.0.md
Normal file
86
docs/releases/v0.2.0.md
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
# Omnigraph v0.2.0
|
||||||
|
|
||||||
|
Omnigraph v0.2.0 focuses on day-to-day operability: safer schema evolution, more capable mutation queries, better local and remote ergonomics, and a documented HTTP surface for clients and tooling.
|
||||||
|
|
||||||
|
This release is especially relevant if you are running Omnigraph locally on RustFS or using the CLI and server together as a graph application backend.
|
||||||
|
|
||||||
|
## Highlights
|
||||||
|
|
||||||
|
### Schema planning and apply
|
||||||
|
|
||||||
|
Schema changes can now move from planning to execution with first-class CLI and server support.
|
||||||
|
|
||||||
|
- Added `omnigraph schema apply --schema ...` alongside `schema plan`
|
||||||
|
- Added `POST /schema/apply` on the server
|
||||||
|
- Added policy support for schema application through the `schema_apply` action
|
||||||
|
- Persisted accepted schema updates as part of a supported apply flow
|
||||||
|
|
||||||
|
This makes schema evolution an actual product capability instead of a plan-only diagnostic.
|
||||||
|
|
||||||
|
### Safer schema apply on live repos
|
||||||
|
|
||||||
|
After the initial schema-apply rollout, the apply path was hardened to avoid clobbering concurrent writes and to preserve indexes during table rewrites.
|
||||||
|
|
||||||
|
- Blocks writes while schema apply is in progress
|
||||||
|
- Verifies source heads before publishing rewritten tables
|
||||||
|
- Rebuilds the full expected index set after rewrite operations
|
||||||
|
- Keeps schema apply constrained to repos whose only branch is `main`
|
||||||
|
|
||||||
|
The result is a much more defensible v1 schema migration path.
|
||||||
|
|
||||||
|
### Multi-statement mutations
|
||||||
|
|
||||||
|
Mutation queries can now contain multiple sequential statements that execute atomically within one run.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```gq
|
||||||
|
query add_and_link($name: String, $age: I32, $friend: String) {
|
||||||
|
insert Person { name: $name, age: $age }
|
||||||
|
insert Knows { from: $name, to: $friend }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
This is a meaningful step toward richer write-side workflows without forcing multiple client round trips.
|
||||||
|
|
||||||
|
### OpenAPI support
|
||||||
|
|
||||||
|
The server now publishes an OpenAPI document at `/openapi.json`.
|
||||||
|
|
||||||
|
- Added schema-backed endpoint documentation for the Omnigraph HTTP API
|
||||||
|
- Documented request and response types for the current server surface
|
||||||
|
- Made the published spec reflect runtime auth mode, so open local deployments are documented correctly
|
||||||
|
|
||||||
|
This makes Omnigraph easier to integrate with generated clients, inspection tools, and API consumers that want a machine-readable contract.
|
||||||
|
|
||||||
|
### CLI and export ergonomics
|
||||||
|
|
||||||
|
Several rough edges in the CLI were fixed.
|
||||||
|
|
||||||
|
- Export now streams instead of buffering the full snapshot in memory first
|
||||||
|
- Load summaries now report actual loaded row counts
|
||||||
|
- Alias handling no longer steals legitimate first arguments
|
||||||
|
- `commit show` matches the documented `--uri` usage
|
||||||
|
- Remote and local usage are more consistent for common admin flows
|
||||||
|
|
||||||
|
## Additional Improvements
|
||||||
|
|
||||||
|
- RustFS CI is now scoped to relevant changes instead of burning time on unrelated pull requests
|
||||||
|
- README and install docs were tightened around public binary install behavior
|
||||||
|
- The local RustFS bootstrap remains aligned with the rolling `edge` binary channel
|
||||||
|
|
||||||
|
## Upgrade Notes
|
||||||
|
|
||||||
|
- If you use local or remote schema administration, prefer `schema plan` before `schema apply`
|
||||||
|
- `schema apply` is intentionally conservative in v1 and rejects repos with non-`main` branches
|
||||||
|
- If policy is enabled, make sure admin actors are allowed to perform `schema_apply`
|
||||||
|
- If you rely on published binaries, this release is the point where stable installers can pick up schema apply and the newer CLI/runtime behavior without using `edge`
|
||||||
|
|
||||||
|
## Included Changes
|
||||||
|
|
||||||
|
- PR #2: CLI ergonomics and streamed export output
|
||||||
|
- PR #5: schema apply command and policy support
|
||||||
|
- PR #7: schema apply concurrency and index-preservation hardening
|
||||||
|
- PR #4: multi-statement mutations
|
||||||
|
- PR #1: OpenAPI generation and auth-aware `/openapi.json`
|
||||||
|
- PR #8: RustFS CI scoping improvements
|
||||||
Loading…
Add table
Add a link
Reference in a new issue