From a025218ddabaa495c34dd0eedd973db2d51a6e41 Mon Sep 17 00:00:00 2001 From: Christophe Pettus Date: Thu, 9 Jul 2026 14:42:11 -0700 Subject: [PATCH] ci: validate the v1.0.0 release tree MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Temporary — same-history carrier for the exact file content on release/v1.0.0 (an orphan branch GitHub won't open a PR against), so CI can run against it before that branch replaces main's history. Not meant to be merged normally. --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- README.md | 12 ++++++------ bench/Cargo.toml | 2 +- python/Cargo.toml | 2 +- python/README.md | 2 +- python/pyproject.toml | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f45e4fe..57d2bdb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -247,7 +247,7 @@ dependencies = [ [[package]] name = "chisel" -version = "0.1.0" +version = "1.0.0" dependencies = [ "argon2", "base64ct", @@ -266,7 +266,7 @@ dependencies = [ [[package]] name = "chisel-bench" -version = "0.1.0" +version = "1.0.0" dependencies = [ "assert_cmd", "chisel", @@ -289,7 +289,7 @@ dependencies = [ [[package]] name = "chisel-py" -version = "0.1.0" +version = "1.0.0" dependencies = [ "chisel", "pyo3", diff --git a/Cargo.toml b/Cargo.toml index 9c8cdab..2ad44a0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ resolver = "2" [package] name = "chisel" -version = "0.1.0" +version = "1.0.0" edition = "2021" # MSRV: bump only with a release-notes call-out; CI pins this same version. # 1.82 is a conservative pin; the true stdlib floor is ~1.74 (io::Error::other, diff --git a/README.md b/README.md index eb22e0b..0e3edbe 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Chisel is designed for single-writer embedded use: one process holds the file vi ## Status -Pre-1.0. Current release: `0.1.0`. The API is stable-by-intent but subject to revision until 1.0 ships. The on-disk format is likewise pre-stable; see [On-disk format compatibility](#on-disk-format-compatibility) for the 1.0-and-onward promise. +1.0. Current release: `1.0.0`. Both the API and the on-disk format are now frozen per the compatibility promise in [On-disk format compatibility](#on-disk-format-compatibility). ## Features @@ -29,10 +29,10 @@ Add to your `Cargo.toml`: ```toml [dependencies] -chisel = "0.1" +chisel = "1.0" ``` -(While Chisel is pre-1.0 and not yet on crates.io, use a path or git dependency: `chisel = { path = "path/to/chisel" }`.) +(Not yet published to crates.io; use a path or git dependency in the meantime: `chisel = { path = "path/to/chisel" }`.) ## Quick Start @@ -362,11 +362,11 @@ Encryption introduces the second major: an encrypted database is stamped MAJOR = Write safety across minors is a narrower guarantee: a binary at MINOR = *m* opening a file at MINOR = *m' > m* cannot safely commit without risking overwriting fields it doesn't know about. The open gate is MAJOR-only by design, so minor variants coexist — same-major files of any minor open successfully, and the chunk-tags MINOR = 1 variant is the first such case. The write-refusal arm (refuse writes when file MINOR > binary MINOR) is implemented (I29): opening a newer-minor file forces the handle read-only, so any mutation returns `ReadOnlyMode` rather than risking a write that clobbers fields the binary doesn't know about. The post-1.0 cross-minor read-compatibility guarantee is absolute; write-compatibility requires binary MINOR ≥ file MINOR. -### Pre-1.0 caveat +### Format history -Until Chisel reaches 1.0, the on-disk format may change between pre-release builds without a major-version bump. Any such pre-1.0 change will be called out in release notes. The first 1.0 release freezes the plaintext format at MAJOR = 1 for the entire 1.x line; encrypted databases carry MAJOR = 2 (see above), and each major's on-disk format is sacred within that major. +Before 1.0, the on-disk format changed between pre-release builds without a major-version bump; such changes were called out in release notes. The 1.0 release freezes the plaintext format at MAJOR = 1 for the entire 1.x line; encrypted databases carry MAJOR = 2 (see above), and each major's on-disk format is sacred within that major going forward. -Files written by prior development builds (pre-1.0 flat `format_version`, which decodes as MAJOR = 0) are rejected at open time — recreate the database. No production-grade migration is provided for pre-release files. +Files written by prior pre-1.0 development builds (flat `format_version`, which decodes as MAJOR = 0) are rejected at open time — recreate the database. No production-grade migration is provided for pre-1.0 files. ## How durability works diff --git a/bench/Cargo.toml b/bench/Cargo.toml index 23af2df..6599648 100644 --- a/bench/Cargo.toml +++ b/bench/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "chisel-bench" -version = "0.1.0" +version = "1.0.0" edition = "2021" # MSRV mirrors the root crate (1.82). The path-dep on chisel inherits its # floor; bench-specific deps (criterion, rusqlite, clap) all support older diff --git a/python/Cargo.toml b/python/Cargo.toml index f6218dc..a33a6b1 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "chisel-py" -version = "0.1.0" +version = "1.0.0" edition = "2021" # MSRV mirrors the root crate (1.82 conservative pin; the root crate's true # stdlib floor is ~1.74 from io::Error::other). PyO3 has a lower MSRV of its diff --git a/python/README.md b/python/README.md index e4fffe8..8ca4aad 100644 --- a/python/README.md +++ b/python/README.md @@ -4,7 +4,7 @@ Python binding for [Chisel](..), a transactional slot-based storage engine writt ## Status -Pre-1.0. Current release: `0.1.0`. The API is stable-by-intent but subject to revision until 1.0 ships. The on-disk format is likewise pre-stable; see [On-disk format compatibility](#on-disk-format-compatibility) for the 1.0-and-onward promise. +1.0. Current release: `1.0.0`. Both the API and the on-disk format are now frozen per the compatibility promise in the [root README](../README.md#on-disk-format-compatibility). ## Install diff --git a/python/pyproject.toml b/python/pyproject.toml index e52960e..b2053f2 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "chisel" -version = "0.1.0" +version = "1.0.0" description = "Python binding for the Chisel transactional storage engine" readme = "README.md" requires-python = ">=3.11"