From e0bce968fc6f50d12231ec5f64fc26943354e675 Mon Sep 17 00:00:00 2001 From: V0ldek Date: Tue, 31 Dec 2024 04:32:25 +0100 Subject: [PATCH] release v0.9.4 (#632) release v0.9.4 --- .github/ISSUE_TEMPLATE/bug_report.yml | 3 +- .github/workflows/release.yml | 28 +++++- CHANGELOG.md | 18 ++++ Cargo.lock | 68 ++++++------- Cargo.toml | 8 +- Justfile | 7 +- README.md | 106 ++++++++++----------- book/src/user/installation.md | 2 +- crates/rsonpath-benchmarks/Cargo.toml | 6 +- crates/rsonpath-lib/README.md | 6 +- crates/rsonpath-syntax-proptest/Cargo.toml | 9 +- crates/rsonpath-syntax/CHANGELOG.md | 14 +++ crates/rsonpath-syntax/Cargo.toml | 2 +- crates/rsonpath-syntax/README.md | 2 +- crates/rsonpath-test-codegen/Cargo.lock | 14 +-- crates/rsonpath-test-codegen/Cargo.toml | 6 +- fuzz/Cargo.lock | 4 +- 17 files changed, 179 insertions(+), 124 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index fc43cfaa..1c93ab77 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -71,7 +71,8 @@ body: attributes: label: Version of the release options: - # + # + - v0.9.4 - v0.9.3 - v0.9.2 - v0.9.1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9fe2399a..1bc882c7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -217,8 +217,30 @@ jobs: with: toolchain: stable - name: Publish rsonpath-syntax - run: cargo publish --token ${{ secrets.CRATES_TOKEN }} -p rsonpath-syntax --no-verify + run: | + old_ver=$(cargo info rsonpath-syntax --registry crates-io | sed -n 's/version: \([0-9]\.[0-9].[0-9]\)/\1/p') + new_ver=$(cargo pkgid rsonpath-syntax | sed 's/.*#//g') + if [ $old_ver != $new_ver ]; then + cargo publish --token ${{ secrets.CRATES_TOKEN }} -p rsonpath-syntax --no-verify + fi + - name: Publish rsonpath-syntax-proptest + run: | + old_ver=$(cargo info rsonpath-syntax-proptest --registry crates-io | sed -n 's/version: \([0-9]\.[0-9].[0-9]\)/\1/p') + new_ver=$(cargo pkgid rsonpath-syntax-proptest | sed 's/.*#//g') + if [ $old_ver != $new_ver ]; then + cargo publish --token ${{ secrets.CRATES_TOKEN }} -p rsonpath-syntax-proptest --no-verify + fi - name: Publish rsonpath-lib - run: cargo publish --token ${{ secrets.CRATES_TOKEN }} -p rsonpath-lib --no-verify + run: | + old_ver=$(cargo info rsonpath-lib --registry crates-io | sed -n 's/version: \([0-9]\.[0-9].[0-9]\)/\1/p') + new_ver=$(cargo pkgid rsonpath-lib | sed 's/.*#//g') + if [ $old_ver != $new_ver ]; then + cargo publish --token ${{ secrets.CRATES_TOKEN }} -p rsonpath-lib --no-verify + fi - name: Publish rsonpath - run: cargo publish --token ${{ secrets.CRATES_TOKEN }} -p rsonpath --no-verify + run: | + old_ver=$(cargo info rsonpath --registry crates-io | sed -n 's/version: \([0-9]\.[0-9].[0-9]\)/\1/p') + new_ver=$(cargo pkgid rsonpath | sed 's/.*#//g') + if [ $old_ver != $new_ver ]; then + cargo publish --token ${{ secrets.CRATES_TOKEN }} -p rsonpath --no-verify + fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bc6c44a..6ab6684d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ All notable changes to this project will be documented in this file. +## [0.9.4] - 2024-12-31 + +### Library + +- Serde support for `MainEngine`. + - Implemented `serde::Serialize` and `serde::Deserialize` for `MainEngine` in rsonpath-lib, + The `serde` dependency is guarded behind the optional `serde` feature. + - The serialization format is not stable, as the `Automaton` + is expected to evolve. Thus, serialization includes a version + and deserialization will fail if the version disagrees. + - Also added snapshot tests for serialization based on `insta`. +- Added the `MainEngine::automaton` function to retrieve a reference to the compiled query. +- Removed the `arbitrary` feature from `rsonpath-lib` as it didn't actually do anything anymore. + +### Dependencies + +- `serde` (1.0.217) is now an optional dependency for `rsonpath` and `rsonpath-lib` + ## [0.9.3] - 2024-12-24 ### Library diff --git a/Cargo.lock b/Cargo.lock index de2233f9..433e2bb9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -104,7 +104,7 @@ checksum = "edf3ee19dbc0a46d740f6f0926bde8c50f02bdbc7b536842da28f6ac56513a8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -195,9 +195,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.5" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" +checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" dependencies = [ "jobserver", "libc", @@ -269,7 +269,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -391,7 +391,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -402,7 +402,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -422,7 +422,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -443,7 +443,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -453,7 +453,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -470,7 +470,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -593,9 +593,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "half" @@ -750,7 +750,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1104,9 +1104,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -1284,7 +1284,7 @@ dependencies = [ [[package]] name = "rsonpath" -version = "0.9.3" +version = "0.9.4" dependencies = [ "clap", "color-eyre", @@ -1302,7 +1302,7 @@ dependencies = [ [[package]] name = "rsonpath-lib" -version = "0.9.3" +version = "0.9.4" dependencies = [ "cfg-if", "ciborium", @@ -1326,7 +1326,7 @@ dependencies = [ [[package]] name = "rsonpath-syntax" -version = "0.3.2" +version = "0.4.0" dependencies = [ "arbitrary", "ciborium", @@ -1346,7 +1346,7 @@ dependencies = [ [[package]] name = "rsonpath-syntax-proptest" -version = "0.3.2" +version = "0.4.0" dependencies = [ "proptest", "rsonpath-syntax", @@ -1354,7 +1354,7 @@ dependencies = [ [[package]] name = "rsonpath-test" -version = "0.9.3" +version = "0.9.4" dependencies = [ "eyre", "glob", @@ -1369,7 +1369,7 @@ dependencies = [ [[package]] name = "rsonpath-test-codegen" -version = "0.9.3" +version = "0.9.4" dependencies = [ "heck", "proc-macro2", @@ -1415,9 +1415,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "rusty-fork" @@ -1472,7 +1472,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1591,9 +1591,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.91" +version = "2.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" +checksum = "9c786062daee0d6db1132800e623df74274a0a87322d8e183338e01b3d98d058" dependencies = [ "proc-macro2", "quote", @@ -1608,7 +1608,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1652,7 +1652,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1663,7 +1663,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", "test-case-core", ] @@ -1684,7 +1684,7 @@ checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -2126,7 +2126,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", "synstructure", ] @@ -2148,7 +2148,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -2168,7 +2168,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", "synstructure", ] @@ -2191,5 +2191,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] diff --git a/Cargo.toml b/Cargo.toml index 7500ab03..e234c120 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ exclude = ["crates/rsonpath-benchmarks", "crates/rsonpath-test-codegen"] resolver = "2" [workspace.package] -version = "0.9.3" +version = "0.9.4" authors = ["Mateusz Gienieczko "] readme = "README.md" license = "MIT" @@ -23,9 +23,9 @@ edition = "2021" [workspace.dependencies] # Project crates -rsonpath-lib = { version = "0.9.3", path = "./crates/rsonpath-lib", package = "rsonpath-lib", default-features = false } -rsonpath-syntax = { version = "0.3.2", path = "./crates/rsonpath-syntax" } -rsonpath-syntax-proptest = { version = "0.3.2", path = "./crates/rsonpath-syntax-proptest" } +rsonpath-lib = { version = "0.9.4", path = "./crates/rsonpath-lib", package = "rsonpath-lib", default-features = false } +rsonpath-syntax = { version = "0.4.0", path = "./crates/rsonpath-syntax" } +rsonpath-syntax-proptest = { version = "0.4.0", path = "./crates/rsonpath-syntax-proptest" } # Main dependencies arbitrary = { version = "1.4.1" } cfg-if = "1.0.0" diff --git a/Justfile b/Justfile index 53dbcdcd..87582818 100644 --- a/Justfile +++ b/Justfile @@ -273,24 +273,25 @@ release ver: just release-patch {{ver}} just release-readme just release-bug-template {{ver}} - cargo build - cargo +nightly fuzz build # Execute prerequisites for a release of `rsonpath-syntax` for the given version. release-syntax ver: #!/usr/bin/env nu let ver = "{{ver}}"; sed -i $'s/^version = "[^"]*"/version = "($ver)"/' "./crates/rsonpath-syntax/Cargo.toml" + sed -i $'s/^version = "[^"]*"/version = "($ver)"/' "./crates/rsonpath-syntax-proptest/Cargo.toml" sed -i $'s/^rsonpath-syntax = { version = "[^"]*"/rsonpath-syntax = { version = "($ver)"/' "./Cargo.toml" + sed -i $'s/^rsonpath-syntax-proptest = { version = "[^"]*"/rsonpath-syntax-proptest = { version = "($ver)"/' "./Cargo.toml" [private] -release-patch ver: +release-main ver: #!/usr/bin/env nu let ver = "{{ver}}"; let paths = ["./Cargo.toml", "./crates/rsonpath-benchmarks/Cargo.toml", "./crates/rsonpath-test-codegen/Cargo.toml"]; $paths | each { |path| sed -i $'s/^version = "[^"]*"/version = "($ver)"/;s/^rsonpath-lib = { version = "[^"]*"/rsonpath-lib = { version = "($ver)"/;s/rsonpath-test-codegen = { version = "[^"]*"/rsonpath-test-codegen = { version = "($ver)"/' $path; }; + sed -z -i $"s/\\$ rq -V\\nrq \\\([^\\n]*\\\)\\n/\\$ rq -V\\nrq ($ver)\\n/" ./book/src/user/installation.md [private] release-readme: diff --git a/README.md b/README.md index 52215c1b..b15a1356 100644 --- a/README.md +++ b/README.md @@ -216,13 +216,13 @@ cargo tree --package rsonpath --edges normal --depth 1 ```ini -rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) +rsonpath v0.9.4 (/home/mat/src/rsonpath/crates/rsonpath) ├── clap v4.5.23 ├── color-eyre v0.6.3 ├── eyre v0.6.12 ├── log v0.4.22 -├── rsonpath-lib v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath-lib) -├── rsonpath-syntax v0.3.2 (/home/mat/src/rsonpath/crates/rsonpath-syntax) +├── rsonpath-lib v0.9.4 (/home/mat/src/rsonpath/crates/rsonpath-lib) +├── rsonpath-syntax v0.4.0 (/home/mat/src/rsonpath/crates/rsonpath-syntax) └── simple_logger v5.0.0 [build-dependencies] ├── rustflags v0.1.6 @@ -241,12 +241,12 @@ cargo tree --package rsonpath-lib --edges normal --depth 1 ```ini -rsonpath-lib v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath-lib) -├── arbitrary v1.4.1 +rsonpath-lib v0.9.4 (/home/mat/src/rsonpath/crates/rsonpath-lib) ├── cfg-if v1.0.0 ├── log v0.4.22 ├── memmap2 v0.9.5 -├── rsonpath-syntax v0.3.2 (/home/mat/src/rsonpath/crates/rsonpath-syntax) +├── rsonpath-syntax v0.4.0 (/home/mat/src/rsonpath/crates/rsonpath-syntax) +├── serde v1.0.217 ├── smallvec v1.13.2 ├── static_assertions v1.1.0 ├── thiserror v2.0.9 @@ -275,7 +275,7 @@ cargo tree --package rsonpath --edges normal ```ini -rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) +rsonpath v0.9.4 (/home/mat/src/rsonpath/crates/rsonpath) ├── clap v4.5.23 │ ├── clap_builder v4.5.23 │ │ ├── anstream v0.6.18 @@ -316,11 +316,11 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ ├── heck v0.5.0 │ ├── proc-macro2 v1.0.92 │ │ └── unicode-ident v1.0.14 -│ ├── quote v1.0.37 +│ ├── quote v1.0.38 │ │ └── proc-macro2 v1.0.92 (*) -│ └── syn v2.0.91 +│ └── syn v2.0.93 │ ├── proc-macro2 v1.0.92 (*) -│ ├── quote v1.0.37 (*) +│ ├── quote v1.0.38 (*) │ └── unicode-ident v1.0.14 ├── color-eyre v0.6.3 │ ├── backtrace v0.3.71 @@ -334,7 +334,7 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ │ │ └── memchr v2.7.4 │ │ └── rustc-demangle v0.1.24 │ │ [build-dependencies] -│ │ └── cc v1.2.5 +│ │ └── cc v1.2.6 │ │ ├── jobserver v0.1.32 │ │ │ └── libc v0.2.169 │ │ ├── libc v0.2.169 @@ -347,12 +347,12 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ └── owo-colors v3.5.0 ├── eyre v0.6.12 (*) ├── log v0.4.22 -├── rsonpath-lib v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath-lib) +├── rsonpath-lib v0.9.4 (/home/mat/src/rsonpath/crates/rsonpath-lib) │ ├── cfg-if v1.0.0 │ ├── log v0.4.22 │ ├── memmap2 v0.9.5 │ │ └── libc v0.2.169 -│ ├── rsonpath-syntax v0.3.2 (/home/mat/src/rsonpath/crates/rsonpath-syntax) +│ ├── rsonpath-syntax v0.4.0 (/home/mat/src/rsonpath/crates/rsonpath-syntax) │ │ ├── nom v7.1.3 │ │ │ ├── memchr v2.7.4 │ │ │ └── minimal-lexical v0.2.1 @@ -360,8 +360,8 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ │ ├── thiserror v2.0.9 │ │ │ └── thiserror-impl v2.0.9 (proc-macro) │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ ├── quote v1.0.37 (*) -│ │ │ └── syn v2.0.91 (*) +│ │ │ ├── quote v1.0.38 (*) +│ │ │ └── syn v2.0.93 (*) │ │ └── unicode-width v0.2.0 │ ├── smallvec v1.13.2 │ ├── static_assertions v1.1.0 @@ -369,10 +369,10 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ └── vector-map v1.0.1 │ ├── contracts v0.4.0 (proc-macro) │ │ ├── proc-macro2 v1.0.92 (*) -│ │ ├── quote v1.0.37 (*) +│ │ ├── quote v1.0.38 (*) │ │ └── syn v1.0.109 │ │ ├── proc-macro2 v1.0.92 (*) -│ │ ├── quote v1.0.37 (*) +│ │ ├── quote v1.0.38 (*) │ │ └── unicode-ident v1.0.14 │ └── rand v0.7.3 │ ├── getrandom v0.1.16 @@ -386,14 +386,14 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ │ │ ├── byteorder v1.5.0 │ │ │ └── zerocopy-derive v0.7.35 (proc-macro) │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ ├── quote v1.0.37 (*) -│ │ │ └── syn v2.0.91 (*) +│ │ │ ├── quote v1.0.38 (*) +│ │ │ └── syn v2.0.93 (*) │ │ └── rand_core v0.5.1 │ │ └── getrandom v0.1.16 (*) │ ├── rand_core v0.5.1 (*) │ └── rand_hc v0.2.0 │ └── rand_core v0.5.1 (*) -├── rsonpath-syntax v0.3.2 (/home/mat/src/rsonpath/crates/rsonpath-syntax) (*) +├── rsonpath-syntax v0.4.0 (/home/mat/src/rsonpath/crates/rsonpath-syntax) (*) └── simple_logger v5.0.0 ├── colored v2.2.0 │ ├── lazy_static v1.5.0 @@ -427,21 +427,21 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ ├── anyhow v1.0.95 │ ├── cargo_metadata v0.19.1 │ │ ├── camino v1.1.9 -│ │ │ └── serde v1.0.216 -│ │ │ └── serde_derive v1.0.216 (proc-macro) +│ │ │ └── serde v1.0.217 +│ │ │ └── serde_derive v1.0.217 (proc-macro) │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ ├── quote v1.0.37 (*) -│ │ │ └── syn v2.0.91 (*) +│ │ │ ├── quote v1.0.38 (*) +│ │ │ └── syn v2.0.93 (*) │ │ ├── cargo-platform v0.1.9 -│ │ │ └── serde v1.0.216 (*) +│ │ │ └── serde v1.0.217 (*) │ │ ├── semver v1.0.24 -│ │ │ └── serde v1.0.216 (*) -│ │ ├── serde v1.0.216 (*) +│ │ │ └── serde v1.0.217 (*) +│ │ ├── serde v1.0.217 (*) │ │ ├── serde_json v1.0.134 │ │ │ ├── itoa v1.0.14 │ │ │ ├── memchr v2.7.4 │ │ │ ├── ryu v1.0.18 -│ │ │ └── serde v1.0.216 (*) +│ │ │ └── serde v1.0.217 (*) │ │ └── thiserror v2.0.9 (*) │ ├── derive_builder v0.20.2 │ │ └── derive_builder_macro v0.20.2 (proc-macro) @@ -451,17 +451,17 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ │ │ │ │ ├── fnv v1.0.7 │ │ │ │ │ ├── ident_case v1.0.1 │ │ │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ │ │ ├── quote v1.0.37 (*) +│ │ │ │ │ ├── quote v1.0.38 (*) │ │ │ │ │ ├── strsim v0.11.1 -│ │ │ │ │ └── syn v2.0.91 (*) +│ │ │ │ │ └── syn v2.0.93 (*) │ │ │ │ └── darling_macro v0.20.10 (proc-macro) │ │ │ │ ├── darling_core v0.20.10 (*) -│ │ │ │ ├── quote v1.0.37 (*) -│ │ │ │ └── syn v2.0.91 (*) +│ │ │ │ ├── quote v1.0.38 (*) +│ │ │ │ └── syn v2.0.93 (*) │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ ├── quote v1.0.37 (*) -│ │ │ └── syn v2.0.91 (*) -│ │ └── syn v2.0.91 (*) +│ │ │ ├── quote v1.0.38 (*) +│ │ │ └── syn v2.0.93 (*) +│ │ └── syn v2.0.93 (*) │ ├── regex v1.11.1 │ │ ├── aho-corasick v1.1.3 │ │ │ └── memchr v2.7.4 @@ -477,9 +477,9 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ ├── anyhow v1.0.95 │ └── derive_builder v0.20.2 (*) │ [build-dependencies] -│ └── rustversion v1.0.18 (proc-macro) +│ └── rustversion v1.0.19 (proc-macro) │ [build-dependencies] -│ └── rustversion v1.0.18 (proc-macro) +│ └── rustversion v1.0.19 (proc-macro) ├── vergen-git2 v1.0.2 │ ├── anyhow v1.0.95 │ ├── derive_builder v0.20.2 (*) @@ -491,11 +491,11 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ │ │ └── libz-sys v1.1.20 │ │ │ └── libc v0.2.169 │ │ │ [build-dependencies] -│ │ │ ├── cc v1.2.5 (*) +│ │ │ ├── cc v1.2.6 (*) │ │ │ ├── pkg-config v0.3.31 │ │ │ └── vcpkg v0.2.15 │ │ │ [build-dependencies] -│ │ │ ├── cc v1.2.5 (*) +│ │ │ ├── cc v1.2.6 (*) │ │ │ └── pkg-config v0.3.31 │ │ ├── log v0.4.22 │ │ └── url v2.5.4 @@ -506,25 +506,25 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ │ │ │ ├── icu_normalizer v1.5.0 │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) │ │ │ │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ │ │ │ ├── quote v1.0.37 (*) -│ │ │ │ │ │ └── syn v2.0.91 (*) +│ │ │ │ │ │ ├── quote v1.0.38 (*) +│ │ │ │ │ │ └── syn v2.0.93 (*) │ │ │ │ │ ├── icu_collections v1.5.0 │ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*) │ │ │ │ │ │ ├── yoke v0.7.5 │ │ │ │ │ │ │ ├── stable_deref_trait v1.2.0 │ │ │ │ │ │ │ ├── yoke-derive v0.7.5 (proc-macro) │ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ │ │ │ │ │ ├── quote v1.0.37 (*) -│ │ │ │ │ │ │ │ ├── syn v2.0.91 (*) +│ │ │ │ │ │ │ │ ├── quote v1.0.38 (*) +│ │ │ │ │ │ │ │ ├── syn v2.0.93 (*) │ │ │ │ │ │ │ │ └── synstructure v0.13.1 │ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ │ │ │ │ │ ├── quote v1.0.37 (*) -│ │ │ │ │ │ │ │ └── syn v2.0.91 (*) +│ │ │ │ │ │ │ │ ├── quote v1.0.38 (*) +│ │ │ │ │ │ │ │ └── syn v2.0.93 (*) │ │ │ │ │ │ │ └── zerofrom v0.1.5 │ │ │ │ │ │ │ └── zerofrom-derive v0.1.5 (proc-macro) │ │ │ │ │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ │ │ │ │ ├── quote v1.0.37 (*) -│ │ │ │ │ │ │ ├── syn v2.0.91 (*) +│ │ │ │ │ │ │ ├── quote v1.0.38 (*) +│ │ │ │ │ │ │ ├── syn v2.0.93 (*) │ │ │ │ │ │ │ └── synstructure v0.13.1 (*) │ │ │ │ │ │ ├── zerofrom v0.1.5 (*) │ │ │ │ │ │ └── zerovec v0.10.4 @@ -532,8 +532,8 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ │ │ │ │ │ ├── zerofrom v0.1.5 (*) │ │ │ │ │ │ └── zerovec-derive v0.10.3 (proc-macro) │ │ │ │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ │ │ │ ├── quote v1.0.37 (*) -│ │ │ │ │ │ └── syn v2.0.91 (*) +│ │ │ │ │ │ ├── quote v1.0.38 (*) +│ │ │ │ │ │ └── syn v2.0.93 (*) │ │ │ │ │ ├── icu_normalizer_data v1.5.0 │ │ │ │ │ ├── icu_properties v1.5.1 │ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*) @@ -554,8 +554,8 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ │ │ │ │ │ │ │ ├── icu_locid v1.5.0 (*) │ │ │ │ │ │ │ │ ├── icu_provider_macros v1.5.0 (proc-macro) │ │ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.92 (*) -│ │ │ │ │ │ │ │ │ ├── quote v1.0.37 (*) -│ │ │ │ │ │ │ │ │ └── syn v2.0.91 (*) +│ │ │ │ │ │ │ │ │ ├── quote v1.0.38 (*) +│ │ │ │ │ │ │ │ │ └── syn v2.0.93 (*) │ │ │ │ │ │ │ │ ├── stable_deref_trait v1.2.0 │ │ │ │ │ │ │ │ ├── tinystr v0.7.6 (*) │ │ │ │ │ │ │ │ ├── writeable v0.5.5 @@ -589,7 +589,7 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) │ ├── vergen v9.0.2 (*) │ └── vergen-lib v0.1.5 (*) │ [build-dependencies] -│ └── rustversion v1.0.18 (proc-macro) +│ └── rustversion v1.0.19 (proc-macro) └── vergen-gitcl v1.0.2 ├── anyhow v1.0.95 ├── derive_builder v0.20.2 (*) @@ -597,6 +597,6 @@ rsonpath v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath) ├── vergen v9.0.2 (*) └── vergen-lib v0.1.5 (*) [build-dependencies] - └── rustversion v1.0.18 (proc-macro) + └── rustversion v1.0.19 (proc-macro) ``` diff --git a/book/src/user/installation.md b/book/src/user/installation.md index c83b8707..5697b214 100644 --- a/book/src/user/installation.md +++ b/book/src/user/installation.md @@ -35,7 +35,7 @@ To verify it works, check if `rq` is available from your command line: ```console $ rq -V -rq 0.9.3 +rq 0.9.4 ``` diff --git a/crates/rsonpath-benchmarks/Cargo.toml b/crates/rsonpath-benchmarks/Cargo.toml index 024036d8..83f89193 100644 --- a/crates/rsonpath-benchmarks/Cargo.toml +++ b/crates/rsonpath-benchmarks/Cargo.toml @@ -4,7 +4,7 @@ authors = [ "Mateusz Gienieczko ", "Charles Paperman ", ] -version = "0.9.3" +version = "0.9.4" edition = "2021" description = "Benchmark suite for the `rsonpath` project." readme = "./README.md" @@ -34,8 +34,8 @@ lazy_static = "1.5.0" serde_json = "1.0.134" sha2 = "0.10.8" reqwest = { version = "0.12.9", features = ["blocking"] } -rsonpath-lib = { version = "0.9.3", default-features = false } -rsonpath-syntax = { version = "0.3.1", default-features = false } +rsonpath-lib = { version = "0.9.4", default-features = false } +rsonpath-syntax = { version = "0.4.0", default-features = false } serde_json_path = "0.7.1" tar = "0.4.43" thiserror = "2.0.9" diff --git a/crates/rsonpath-lib/README.md b/crates/rsonpath-lib/README.md index 9b827f48..070740d8 100644 --- a/crates/rsonpath-lib/README.md +++ b/crates/rsonpath-lib/README.md @@ -60,12 +60,12 @@ cargo tree --package rsonpath-lib --edges normal --depth 1 --target=all --all-fe ```ini -rsonpath-lib v0.9.3 (/home/mat/src/rsonpath/crates/rsonpath-lib) +rsonpath-lib v0.9.4 (/home/mat/src/rsonpath/crates/rsonpath-lib) ├── cfg-if v1.0.0 ├── log v0.4.22 ├── memmap2 v0.9.5 -├── rsonpath-syntax v0.3.2 (/home/mat/src/rsonpath/crates/rsonpath-syntax) -|-- serde v1.0.217 +├── rsonpath-syntax v0.4.0 (/home/mat/src/rsonpath/crates/rsonpath-syntax) +├── serde v1.0.217 ├── smallvec v1.13.2 ├── static_assertions v1.1.0 ├── thiserror v2.0.9 diff --git a/crates/rsonpath-syntax-proptest/Cargo.toml b/crates/rsonpath-syntax-proptest/Cargo.toml index 023105fe..d6b08c8c 100644 --- a/crates/rsonpath-syntax-proptest/Cargo.toml +++ b/crates/rsonpath-syntax-proptest/Cargo.toml @@ -5,12 +5,11 @@ license.workspace = true repository.workspace = true homepage.workspace = true edition.workspace = true -version = "0.3.2" -description = "A JSONPath parser." +version = "0.4.0" +description = "Test utilities for JSONPath." readme = "README.md" -keywords = ["json", "jsonpath", "query", "search", "parser"] -exclude = ["tests", "src/cli.rs"] -categories = ["parser-implementations", "text-processing"] +keywords = ["jsonpath", "test", "proptest", "arbitrary", "fuzz"] +categories = ["development-tools::testing"] rust-version = "1.67.1" [package.metadata.docs.rs] diff --git a/crates/rsonpath-syntax/CHANGELOG.md b/crates/rsonpath-syntax/CHANGELOG.md index 6b346c6d..5f5e65e3 100644 --- a/crates/rsonpath-syntax/CHANGELOG.md +++ b/crates/rsonpath-syntax/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes to this project will be documented in this file. +## [0.4.0] - 2024-12-31 + +### Features + +- Serde support for `JsonPathQuery` and all the constutent types. + - Implemented `serde::Serialize` and `serde::Deserialize` for + `JsonPathQuery` and all its substructures, including `JsonString` + and the numeric types. The `serde` dependency is guarded behind the optional `serde` feature. + - Also added snapshot tests for serialization based on `insta`. + +### Dependencies + +- `serde` (1.0.217) is now an optional dependency + ## [0.3.2] - 2024-12-22 ### Dependencies diff --git a/crates/rsonpath-syntax/Cargo.toml b/crates/rsonpath-syntax/Cargo.toml index 9a9b87ef..5536c186 100644 --- a/crates/rsonpath-syntax/Cargo.toml +++ b/crates/rsonpath-syntax/Cargo.toml @@ -5,7 +5,7 @@ repository = { workspace = true } homepage = { workspace = true } edition = { workspace = true } name = "rsonpath-syntax" -version = "0.3.2" +version = "0.4.0" description = "A JSONPath parser." readme = "README.md" keywords = ["json", "jsonpath", "query", "search", "parser"] diff --git a/crates/rsonpath-syntax/README.md b/crates/rsonpath-syntax/README.md index 8127351e..2d9e19a5 100644 --- a/crates/rsonpath-syntax/README.md +++ b/crates/rsonpath-syntax/README.md @@ -54,7 +54,7 @@ cargo tree --package rsonpath-lib --edges normal --depth 1 --target=all --all-fe ```ini -rsonpath-syntax v0.3.2 (/home/mat/src/rsonpath/crates/rsonpath-syntax) +rsonpath-syntax v0.4.0 (/home/mat/src/rsonpath/crates/rsonpath-syntax) ├── arbitrary v1.4.1 ├── nom v7.1.3 ├── owo-colors v4.1.0 diff --git a/crates/rsonpath-test-codegen/Cargo.lock b/crates/rsonpath-test-codegen/Cargo.lock index d6f1837e..b9046388 100644 --- a/crates/rsonpath-test-codegen/Cargo.lock +++ b/crates/rsonpath-test-codegen/Cargo.lock @@ -63,16 +63,16 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] [[package]] name = "rsonpath-test-codegen" -version = "0.9.3" +version = "0.9.4" dependencies = [ "heck", "pretty_assertions", @@ -94,18 +94,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", diff --git a/crates/rsonpath-test-codegen/Cargo.toml b/crates/rsonpath-test-codegen/Cargo.toml index ec5b3684..d72f3f34 100644 --- a/crates/rsonpath-test-codegen/Cargo.toml +++ b/crates/rsonpath-test-codegen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rsonpath-test-codegen" -version = "0.9.3" +version = "0.9.4" authors = ["Mateusz Gienieczko "] description = "TOML-based test codegen for rsonpath-lib." readme = "README.md" @@ -15,10 +15,10 @@ rust-version = "1.70.0" publish = false [dependencies] -serde = { version = "1.0.216", features = ["derive"] } +serde = { version = "1.0.217", features = ["derive"] } toml = "0.8.19" proc-macro2 = "1.0.92" -quote = "1.0.37" +quote = "1.0.38" heck = { version = "0.5.0" } walkdir = "2.5.0" diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock index 10e2719b..0e1d32c0 100644 --- a/fuzz/Cargo.lock +++ b/fuzz/Cargo.lock @@ -205,7 +205,7 @@ dependencies = [ [[package]] name = "rsonpath-lib" -version = "0.9.3" +version = "0.9.4" dependencies = [ "cfg-if", "log", @@ -231,7 +231,7 @@ dependencies = [ [[package]] name = "rsonpath-syntax" -version = "0.3.2" +version = "0.4.0" dependencies = [ "arbitrary", "nom",