Skip to content

v2.17.1 PR - #61

Merged
sphildreth merged 3 commits into
mainfrom
sph.2026-08-05.01
Aug 6, 2026
Merged

v2.17.1 PR#61
sphildreth merged 3 commits into
mainfrom
sph.2026-08-05.01

Conversation

@sphildreth

@sphildreth sphildreth commented Aug 6, 2026

Copy link
Copy Markdown
Owner

This pull request introduces several CI improvements, documentation updates, and version bumps across the project and all language bindings. The most important changes are the addition of new CI workflows for coverage and supply chain checks, expanded test coverage for grouped commit scenarios and web bindings, and improved documentation for the web binding and feature coverage matrix.

CI/CD Improvements:

  • Added a new nightly workflow .github/workflows/coverage-nightly.yml to run Rust coverage reports using cargo-llvm-cov and upload the results as artifacts.
  • Enhanced .github/workflows/ci.yml with new jobs: msrv (checks minimum supported Rust version) and supply-chain (runs cargo deny for dependency auditing).
  • Added a coverage-guided-fuzz job to .github/workflows/memory-safety-nightly.yml for running libFuzzer-based fuzzing on key engine targets.
  • Updated .github/workflows/release.yml to include grouped commit fault-injection harnesses, web binding smoke tests (WASM + browser OPFS), and to build/test for the wasm32-unknown-unknown target. [1] [2] [3]

Documentation Updates:

  • Expanded bindings/README.md and AGENTS.md to document the new web binding, its architecture, and added a feature coverage matrix comparing all language bindings. Also clarified the location and nature of fuzz targets. [1] [2] [3] [4]

Version Bumps:

These changes improve CI reliability, expand test coverage (especially for web and grouped commit scenarios), and ensure documentation and versioning remain up to date.

Copilot AI lite review requested due to automatic review settings August 6, 2026 15:01
- Introduced a new Cargo.toml for fuzz testing with dependencies on libfuzzer-sys and decentdb.
- Implemented fuzz target for record/row decoding to ensure it does not panic on malformed input.
- Created fuzz target for WAL recovery that validates recovery from fuzz-generated WALs without panicking.
- Added multiple JSON scenarios for grouped commit operations, including cases for successful commits, crashes after sync, and failures during commit and flush operations.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR updates DecentDB to release version 2.17.1 and includes a broad set of release engineering, testing, and documentation changes (CI additions, new fuzz targets, new harness scenarios, version propagation across bindings/docs, and cleanup of generated Python packaging artifacts).

Changes:

  • Bump workspace and binding versions to 2.17.1 and update related docs/locks.
  • Add new validation coverage: grouped-commit fault-injection harness scenarios, coverage-guided fuzz targets, and additional CI jobs (MSRV, supply-chain, coverage).
  • Clean up / stop tracking generated Python *.egg-info artifacts (and expand ignore rules).

Reviewed changes

Copilot reviewed 77 out of 99 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
VERSION Bump repository version to 2.17.1
Cargo.toml Workspace version bump + set MSRV (rust-version = 1.88)
Cargo.lock Dependency/version updates consistent with 2.17.1 release
crates/decentdb/Cargo.toml Inherit workspace rust-version; add fuzz-internals feature
crates/decentdb/src/lib.rs Add fuzzing module behind fuzz-internals feature
crates/decentdb/src/record/row.rs Harden row decode against oversized field counts + regression test
crates/decentdb/src/planner/mod.rs Widen visibility for internal planner helpers (crate-only)
crates/decentdb/src/exec/table_data.rs New extracted exec submodule (table row storage helpers)
crates/decentdb/src/exec/manifest.rs New extracted exec submodule (paged manifest/directory code)
crates/decentdb/src/exec/indexes.rs New extracted exec submodule (runtime index build/update)
crates/decentdb/src/exec/grouped.rs New extracted exec submodule (grouped query helpers/paths)
crates/decentdb/src/db/reactive_ops.rs New extracted db submodule (reactive watch/query APIs)
crates/decentdb/src/db/pragmas.rs New extracted db submodule (PRAGMA handling)
crates/decentdb/src/db/branch_ops.rs New extracted db submodule (branch operations APIs)
crates/decentdb-cli/Cargo.toml Inherit workspace rust-version
crates/decentdb-benchmark/Cargo.toml Inherit workspace rust-version
crates/decentdb-migrate/Cargo.toml Inherit workspace rust-version
crates/libpg_query_sys/Cargo.toml Inherit workspace rust-version
fuzz/Cargo.toml Add independent cargo-fuzz workspace crate + targets
fuzz/.gitignore Ignore fuzz build/corpus/artifacts outputs
fuzz/fuzz_targets/wal_recovery.rs Add fuzz target for WAL recovery robustness
fuzz/fuzz_targets/record_decode.rs Add fuzz target for record/row decode robustness
deny.toml Add cargo-deny configuration for supply-chain checks
tests/harness/grouped_commit_fault_injection_plan.md Document grouped-commit fault-injection scenarios and wiring
tests/harness/scenarios/grouped_commit_all_commit.json New harness scenario for grouped-commit baseline
tests/harness/scenarios/grouped_commit_fail_during_second_commit.json New harness scenario for failure during second commit
tests/harness/scenarios/grouped_commit_fail_sync_before_flush.json New harness scenario for fsync failure window
tests/harness/scenarios/grouped_commit_crash_after_sync.json New harness scenario for crash window after sync
scripts/do-pre-commit-checks.py Add stage-5 grouped-commit harness check
scripts/bump_version.sh Extend version bumping to web binding package metadata
.github/workflows/ci.yml Add MSRV and supply-chain CI jobs
.github/workflows/coverage-nightly.yml Add nightly llvm-cov coverage workflow
.github/workflows/memory-safety-nightly.yml Add coverage-guided fuzzing matrix job
.github/workflows/release.yml Add grouped-commit harnesses + web binding smoke to release validation
bindings/web/package.json Align web package version to 2.17.1
bindings/web/package-lock.json Align web lockfile version to 2.17.1
bindings/README.md Add binding inventory updates + feature coverage matrix
bindings/python/pyproject.toml Bump Python package version to 2.17.1
bindings/python/decentdb.egg-info/PKG-INFO Remove generated Python packaging artifact from repo
bindings/python/decentdb.egg-info/SOURCES.txt Remove generated Python packaging artifact from repo
bindings/python/decentdb.egg-info/dependency_links.txt Remove generated Python packaging artifact from repo
bindings/python/decentdb.egg-info/entry_points.txt Remove generated Python packaging artifact from repo
bindings/python/decentdb.egg-info/requires.txt Remove generated Python packaging artifact from repo
bindings/python/decentdb.egg-info/top_level.txt Remove generated Python packaging artifact from repo
.gitignore Ignore Python *.egg-info artifacts (and related paths)
bindings/python/.tmp/bench_complex_results.json Updates to generated benchmark output (should not be tracked)
bindings/node/decentdb/package.json Bump Node native package version to 2.17.1
bindings/node/decentdb/package-lock.json Bump Node native lockfile version to 2.17.1
bindings/node/knex-decentdb/package.json Bump Knex binding package version to 2.17.1
bindings/node/knex-decentdb/package-lock.json Bump Knex binding lockfile version to 2.17.1
bindings/java/driver/src/main/java/com/decentdb/jdbc/DecentDBDriver.java Bump JDBC driver version string to 2.17.1
bindings/java/driver/build.gradle Bump Java driver version to 2.17.1
bindings/java/dbeaver-extension/META-INF/MANIFEST.MF Bump DBeaver extension bundle and jar reference versions
bindings/java/dbeaver-extension/build.gradle Bump DBeaver extension version to 2.17.1
bindings/dart/dart/pubspec.yaml Bump Dart package version to 2.17.1
bindings/dart/flutter/pubspec.yaml Bump Flutter helper package version to 2.17.1
bindings/dart/flutter/pubspec.lock Update Flutter lockfile DecentDB version to 2.17.1
bindings/dart/flutter/example/pubspec.yaml Bump Flutter example version to 2.17.1
bindings/dart/flutter/example/pubspec.lock Update Flutter example lockfile DecentDB versions
bindings/dart/flutter/ios/decentdb_flutter.podspec Bump iOS podspec version to 2.17.1
bindings/dart/flutter/android/build.gradle Bump Android gradle version to 2.17.1
bindings/dart/examples/flutter_desktop/pubspec.lock Update desktop example lockfile DecentDB version
bindings/dart/examples/console/pubspec.lock Update console example lockfile DecentDB version
bindings/dart/examples/console_complex/pubspec.lock Update console_complex example lockfile DecentDB version
tests/bindings/dart/pubspec.lock Update dart binding test lockfile DecentDB version
benchmarks/rust-baseline/Cargo.lock Update baseline lockfile DecentDB versions
docs/about/changelog.md Add 2.17.1 changelog entry
docs/user-guide/benchmarks.md Update DecentDB benchmark version stamp to 2.17.1
design/VERSIONING_GUIDE.md Document web binding versioning + bump checklist updates
design/SPEC.md Update ADR reference to renumbered parser ADR
design/FUTURE_WINS.md Update “current public release” and planning bucket to 2.17.1
design/adr/0214-integer-primary-key.md Update ADR title header format (renumbered ADR)
design/adr/0213-sql-parser-libpg-query.md Add renumbered parser ADR content
design/adr/0212-bulk-load-api-specification.md Add renumbered bulk-load ADR content
design/adr/0207-inline-runtime-encoded-index-keys.md Update reference to renumbered integer PK ADR
design/adr/0205-compact-paged-row-directory.md Update reference to renumbered integer PK ADR
design/adr/0203-compact-dense-runtime-int64-index.md Update reference to renumbered integer PK ADR
design/adr/0123-phase1-table-btree-foundation.md Update reference to renumbered integer PK ADR
design/adr/0107-recursive-cte-execution.md Update reference to renumbered parser ADR
design/adr/0085-after-triggers-v0.md Update reference to renumbered parser ADR
design/adr/0078-cte-non-recursive-scope-v0.md Update reference to renumbered parser ADR
design/adr/0074-exists-subquery-surface-v0.md Update reference to renumbered parser ADR
design/adr/0071-sql-null-three-valued-logic.md Update reference to renumbered parser ADR
design/adr/0049-constraint-index-deduplication.md Update reference to renumbered integer PK ADR
AGENTS.md Update repo inventory to include fuzz + web binding details
Files not reviewed (3)
  • bindings/node/decentdb/package-lock.json: Generated file
  • bindings/node/knex-decentdb/package-lock.json: Generated file
  • bindings/web/package-lock.json: Generated file

Comment thread VERSION
@@ -1 +1 @@
2.17.0
2.17.1
Comment on lines 620 to 627
"status": "skipped"
}
},
"generated_at": "2026-08-02T13:28:31.230674+00:00",
"generated_at": "2026-08-06T14:16:08.781649+00:00",
"python": {
"executable": "/usr/bin/python3",
"executable": "/usr/bin/python",
"version": "3.14.6"
},
Comment thread fuzz/fuzz_targets/wal_recovery.rs Outdated
Comment on lines +39 to +60
fs::create_dir_all(&dir).expect("create template dir");
let db_path = dir.join("template.ddb");

let config = DbConfig {
wal_sync_mode: WalSyncMode::TestingOnlyUnsafeNoSync,
..DbConfig::default()
};
{
let db = Db::create(&db_path, config).expect("create template db");
db.execute("CREATE TABLE t(id INT64, val TEXT, amount FLOAT64)")
.expect("create table");
for i in 0..25 {
db.execute(&format!(
"INSERT INTO t VALUES ({i}, 'row-{i}', {i}.5)"
))
.expect("seed row");
}
db.checkpoint_wal().expect("checkpoint template");
}

let db_bytes = fs::read(&db_path).expect("read template db");
let _ = fs::remove_dir_all(&dir);
- git rm --cached bindings/python/.tmp/bench_complex_results.json
  (generated artifact was tracked; .gitignore already covers .tmp/)
- fuzz/fuzz_targets/wal_recovery.rs: replace all expect() calls in
  build_template() with graceful error handling; return empty Template
  on any setup failure instead of panicking; skip fuzz iteration when
  template is empty to avoid false-positive libFuzzer crashes

Co-authored-by: sphildreth <193334+sphildreth@users.noreply.github.com>
@sphildreth
sphildreth merged commit 5b47323 into main Aug 6, 2026
@sphildreth
sphildreth deleted the sph.2026-08-05.01 branch August 6, 2026 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants