From 19f2dfa37b6e58aedad0d70f8d752677f7a4ef4a Mon Sep 17 00:00:00 2001 From: Oleksandr Anyshchenko Date: Tue, 8 Feb 2022 12:55:32 +0400 Subject: [PATCH] Release 0.18.0 (#601) --- .github/workflows/rust.yml | 4 ---- CHANGELOG.md | 31 +++++++++++++++++++++++++- Cargo.toml | 4 ++-- librocksdb-sys/Cargo.toml | 2 +- librocksdb-sys/README.md | 10 ++++++--- librocksdb-sys/build.rs | 25 ++++++++++++++++++--- librocksdb-sys/rocksdb_lib_sources.txt | 2 -- 7 files changed, 62 insertions(+), 16 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 20fe46d..937d3cb 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -28,8 +28,6 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v2 - with: - submodules: true - name: Install rust uses: actions-rs/toolchain@v1 with: @@ -68,8 +66,6 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v2 - with: - submodules: true - name: Install rust uses: actions-rs/toolchain@v1 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 916deda..9edfa6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,36 @@ # Changelog ## [Unreleased] -* Re-add support for UTF-8 file paths on Windows (rajivshah3) + +## 0.18.0 (2022-02-03) + +* Add open_cf_descriptor methods for Seoncdary and ReadOnly AccessType (steviez) +* Make Ribbon filters available (niklasf) +* Change versioning scheme of `librocksdb-sys` crate (aleksuss) +* Upgrade to RocksDB 6.28.2 (akrylysov) +* Fix theoretical UB while transmuting Arc (niklasf) +* Support configuring bottom-most compression level (mina86) +* Add BlockBasedOptions::set_whole_key_filtering (niklasf) +* Add constants for all supported properties (steviez) +* Make CacheWrapper and EnvWrapper Send and Sync (aleksuss) +* Replace mem::transmute with narrower conversions (niklasf) +* Optimize non-overlapping copy in raw_data (niklasf) +* Support multi_get_* methods (olegnn) +* Optimize multi_get_cf_opt() to use size hint (niklasf) +* Fix typo in set_background_purge_on_iterator_cleanup method (Congyuwang) +* Use external compression crates where possible (Dr-Emann) +* Update compression dependencies (akrylysov) +* Add method for opening DB with ro access and cf descriptors (nikurt) +* Support restoring from a specified backup (GoldenLeaves) +* Add merge operands iterator (0xdeafbeef) +* Derive serde::{Serialize, Deserialize} for configuration enums (thibault-martinez) +* Add feature flag for runtime type information and metadata (jgraettinger) +* Add set_info_log_level to control log verbosity (tkintscher) +* Replace jemalloc-sys for tikv-jemalloc-sys (Rexagon) +* Support UTF-8 file paths on Windows (rajivshah3) +* Support building RocksDB with jemalloc (akrylysov) +* Add rocksdb WAL flush api (duarten) +* Update rocksdb to v6.22.1 (#540) ## 0.17.0 (2021-07-22) diff --git a/Cargo.toml b/Cargo.toml index 926e85c..9e6d26d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rocksdb" description = "Rust wrapper for Facebook's RocksDB embeddable database" -version = "0.17.0" +version = "0.18.0" edition = "2018" authors = ["Tyler Neely ", "David Greenberg "] repository = "https://github.com/rust-rocksdb/rust-rocksdb" @@ -31,7 +31,7 @@ serde1 = ["serde"] [dependencies] libc = "0.2" -librocksdb-sys = { path = "librocksdb-sys", version = "6.20.3" } +librocksdb-sys = { path = "librocksdb-sys", version = "0.6.0" } serde = { version = "1", features = [ "derive" ], optional = true } [dev-dependencies] diff --git a/librocksdb-sys/Cargo.toml b/librocksdb-sys/Cargo.toml index cbf1ae6..8bb0489 100644 --- a/librocksdb-sys/Cargo.toml +++ b/librocksdb-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "librocksdb-sys" -version = "6.28.2" +version = "0.6.0+6.28.2" edition = "2018" authors = ["Karl Hobley ", "Arkadiy Paronyan "] license = "MIT/Apache-2.0/BSD-3-Clause" diff --git a/librocksdb-sys/README.md b/librocksdb-sys/README.md index de4858f..65330a3 100644 --- a/librocksdb-sys/README.md +++ b/librocksdb-sys/README.md @@ -1,10 +1,14 @@ -RocksDB bindings -================ +# RocksDB bindings -Low-level bindings to RocksDB's C API. +Low-level bindings to [RocksDB's](https://github.com/facebook/rocksdb) C API. Based on original work by Tyler Neely https://github.com/rust-rocksdb/rust-rocksdb and Jeremy Fitzhardinge https://github.com/jsgf/rocksdb-sys +### Version + +The librocksdb-sys version number is in the format `X.Y.Z+RX.RY.RZ`, where +`X.Y.Z` is the version of this crate and follows SemVer conventions, while +`RX.RY.RZ` is the version of the bundled rocksdb. diff --git a/librocksdb-sys/build.rs b/librocksdb-sys/build.rs index 9b459fc..da8d097 100644 --- a/librocksdb-sys/build.rs +++ b/librocksdb-sys/build.rs @@ -1,6 +1,4 @@ -use std::env; -use std::fs; -use std::path::PathBuf; +use std::{env, fs, path::PathBuf, process::Command}; fn link(name: &str, bundled: bool) { use std::env::var; @@ -299,7 +297,28 @@ fn cxx_standard() -> String { }) } +fn update_submodules() { + let program = "git"; + let dir = "../"; + let args = ["submodule", "update", "--init"]; + println!( + "Running command: \"{} {}\" in dir: {}", + program, + args.join(" "), + dir + ); + let ret = Command::new(program).current_dir(dir).args(args).status(); + + match ret.map(|status| (status.success(), status.code())) { + Ok((true, _)) => (), + Ok((false, Some(c))) => panic!("Command failed with error code {}", c), + Ok((false, None)) => panic!("Command got killed"), + Err(e) => panic!("Command failed with error: {}", e), + } +} + fn main() { + update_submodules(); bindgen_rocksdb(); if !try_to_find_and_link_lib("ROCKSDB") { diff --git a/librocksdb-sys/rocksdb_lib_sources.txt b/librocksdb-sys/rocksdb_lib_sources.txt index 1397d61..6d9d0a0 100644 --- a/librocksdb-sys/rocksdb_lib_sources.txt +++ b/librocksdb-sys/rocksdb_lib_sources.txt @@ -34,7 +34,6 @@ db/db_filesnapshot.cc db/db_impl/compacted_db_impl.cc db/db_impl/db_impl.cc db/db_impl/db_impl_compaction_flush.cc -db/db_impl/db_impl_debug.cc db/db_impl/db_impl_experimental.cc db/db_impl/db_impl_files.cc db/db_impl/db_impl_open.cc @@ -209,7 +208,6 @@ util/comparator.cc util/compression_context_cache.cc util/concurrent_task_limiter_impl.cc util/crc32c.cc -util/crc32c_arm64.cc util/dynamic_bloom.cc util/hash.cc util/murmurhash.cc