From f4b711f93d648980771049593923f53dafb35885 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 11:47:46 +0000 Subject: [PATCH 1/3] Bump the cargo group across 1 directory with 20 updates --- updated-dependencies: - dependency-name: anyhow dependency-version: 1.0.103 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: arc-swap dependency-version: 1.9.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: chrono dependency-version: 0.4.45 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: clap dependency-version: 4.6.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: dashmap dependency-version: 6.2.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: either dependency-version: 1.16.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: http dependency-version: 1.4.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: humantime dependency-version: 2.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: insta dependency-version: 1.48.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: itertools dependency-version: 0.15.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: rand dependency-version: 0.10.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: reqwest dependency-version: 0.13.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: rustc-hash dependency-version: 2.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: sentry dependency-version: 0.48.4 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: sentry-tracing dependency-version: 0.48.4 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: serde_json dependency-version: 1.0.150 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: sqlx dependency-version: 0.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: tokio dependency-version: 1.52.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: tower-http dependency-version: 0.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: uuid dependency-version: 1.23.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo ... Signed-off-by: dependabot[bot] --- Cargo.lock | 600 ++++++++++++++++---------------------------- opsqueue/Cargo.toml | 10 +- 2 files changed, 223 insertions(+), 387 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 30e6cc6..f2831db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -70,9 +70,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -91,9 +91,9 @@ checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] @@ -120,15 +120,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.102" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" [[package]] name = "arc-swap" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a3a1fd6f75306b68087b831f025c712524bcb19aad54e557b1129cfa0a2b207" +checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" dependencies = [ "rustversion", ] @@ -232,7 +232,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sha1", + "sha1 0.10.6", "sync_wrapper", "tokio", "tokio-tungstenite", @@ -289,7 +289,7 @@ dependencies = [ "pin-project-lite", "tokio", "tower", - "tower-http", + "tower-http 0.6.11", ] [[package]] @@ -324,12 +324,6 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64ct" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" - [[package]] name = "bitflags" version = "2.10.0" @@ -348,6 +342,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + [[package]] name = "block2" version = "0.6.2" @@ -424,9 +427,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "js-sys", @@ -465,9 +468,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.60" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", "clap_derive", @@ -475,9 +478,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.60" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ "anstream", "anstyle", @@ -487,9 +490,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.55" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ "heck", "proc-macro2", @@ -512,6 +515,12 @@ dependencies = [ "cc", ] +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + [[package]] name = "colorchoice" version = "1.0.4" @@ -548,12 +557,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "core-foundation" version = "0.10.1" @@ -708,11 +711,29 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + [[package]] name = "dashmap" -version = "6.1.0" +version = "6.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +checksum = "e6361d5c062261c78a176addb82d4c821ae42bed6089de0e12603cd25de2059c" dependencies = [ "cfg-if", "crossbeam-utils", @@ -738,17 +759,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - [[package]] name = "deranged" version = "0.5.5" @@ -764,10 +774,19 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", + "block-buffer 0.10.4", + "crypto-common 0.1.7", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "crypto-common 0.2.2", + "ctutils", ] [[package]] @@ -805,9 +824,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "either" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" dependencies = [ "serde", ] @@ -836,13 +855,12 @@ dependencies = [ [[package]] name = "etcetera" -version = "0.8.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +checksum = "de48cc4d1c1d97a20fd819def54b890cadde72ed3ad0c614822a0a433361be96" dependencies = [ "cfg-if", - "home", - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] @@ -880,9 +898,9 @@ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "flume" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +checksum = "5e139bc46ca777eb5efaf62df0ab8cc5fd400866427e56c68b22e414e53bd3be" dependencies = [ "futures-core", "futures-sink", @@ -1145,8 +1163,6 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ - "allocator-api2", - "equivalent", "foldhash 0.1.5", ] @@ -1156,16 +1172,18 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ + "allocator-api2", + "equivalent", "foldhash 0.2.0", ] [[package]] name = "hashlink" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +checksum = "824e001ac4f3012dd16a264bec811403a67ca9deb6c102fc5049b32c4574b35f" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.16.1", ] [[package]] @@ -1182,29 +1200,20 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hkdf" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +checksum = "4aaa26c720c68b866f2c96ef5c1264b3e6f473fe5d4ce61cd44bbe913e553018" dependencies = [ "hmac", ] [[package]] name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.12" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" dependencies = [ - "windows-sys 0.61.2", + "digest 0.11.3", ] [[package]] @@ -1220,9 +1229,9 @@ dependencies = [ [[package]] name = "http" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" dependencies = [ "bytes", "itoa", @@ -1265,9 +1274,18 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.3.0" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15cdd26707701c53297e2fa6afb323d55fbc1d0810c3aec078ae3ef0424c3c15" + +[[package]] +name = "hybrid-array" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" +checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" +dependencies = [ + "typenum", +] [[package]] name = "hyper" @@ -1499,9 +1517,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.47.2" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4a6248eb93a4401ed2f37dfe8ea592d3cf05b7cf4f8efa867b6895af7e094e" +checksum = "86f0f8fee8c926415c58d6ae43a08523a26faccb2323f5e6b644fe7dd4ef6b82" dependencies = [ "console", "once_cell", @@ -1515,16 +1533,6 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" -[[package]] -name = "iri-string" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.2" @@ -1540,15 +1548,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.15.0" @@ -1633,9 +1632,6 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] [[package]] name = "leb128fmt" @@ -1649,23 +1645,6 @@ version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" -[[package]] -name = "libm" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" - -[[package]] -name = "libredox" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" -dependencies = [ - "bitflags", - "libc", - "redox_syscall 0.7.0", -] - [[package]] name = "libsqlite3-sys" version = "0.30.1" @@ -1740,12 +1719,12 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "md-5" -version = "0.10.6" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +checksum = "69b6441f590336821bb897fb28fc622898ccceb1d6cea3fde5ea86b090c4de98" dependencies = [ "cfg-if", - "digest", + "digest 0.11.3", ] [[package]] @@ -1890,48 +1869,12 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "num-bigint-dig" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" -dependencies = [ - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "smallvec", - "zeroize", -] - [[package]] name = "num-conv" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -1939,7 +1882,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -2134,7 +2076,7 @@ dependencies = [ "parking_lot", "percent-encoding", "quick-xml", - "rand 0.10.1", + "rand 0.10.2", "reqwest", "rustls-pki-types", "serde", @@ -2289,7 +2231,7 @@ dependencies = [ "http", "humantime", "insta", - "itertools 0.14.0", + "itertools 0.15.0", "moka", "moro-local", "object_store", @@ -2299,7 +2241,7 @@ dependencies = [ "opentelemetry-resource-detectors", "opentelemetry-semantic-conventions", "opentelemetry_sdk", - "rand 0.10.1", + "rand 0.10.2", "reqwest", "rustc-hash", "sentry", @@ -2314,7 +2256,7 @@ dependencies = [ "tokio", "tokio-tungstenite", "tokio-util", - "tower-http", + "tower-http 0.7.0", "tracing", "tracing-opentelemetry", "tracing-subscriber", @@ -2392,20 +2334,11 @@ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.18", + "redox_syscall", "smallvec", "windows-link", ] -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -2444,27 +2377,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "pkg-config" version = "0.3.32" @@ -2565,7 +2477,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn", @@ -2751,9 +2663,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.44" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" dependencies = [ "proc-macro2", ] @@ -2770,48 +2682,27 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ - "rand_chacha 0.9.0", + "rand_chacha", "rand_core 0.9.5", ] [[package]] name = "rand" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ "chacha20", "getrandom 0.4.2", "rand_core 0.10.1", ] -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - [[package]] name = "rand_chacha" version = "0.9.0" @@ -2822,15 +2713,6 @@ dependencies = [ "rand_core 0.9.5", ] -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", -] - [[package]] name = "rand_core" version = "0.9.5" @@ -2893,15 +2775,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "redox_syscall" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" -dependencies = [ - "bitflags", -] - [[package]] name = "regex" version = "1.12.3" @@ -2933,9 +2806,9 @@ checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" [[package]] name = "reqwest" -version = "0.13.2" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ "base64", "bytes", @@ -2964,7 +2837,7 @@ dependencies = [ "tokio-rustls", "tokio-util", "tower", - "tower-http", + "tower-http 0.6.11", "tower-service", "url", "wasm-bindgen", @@ -2987,26 +2860,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rsa" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", -] - [[package]] name = "rustc-demangle" version = "0.1.27" @@ -3015,9 +2868,9 @@ checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" [[package]] name = "rustc-hash" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" [[package]] name = "rustc_version" @@ -3191,9 +3044,9 @@ checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "sentry" -version = "0.47.0" +version = "0.48.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb25f439f97d26fea01d717fa626167ceffcd981addaa670001e70505b72acbb" +checksum = "82719d9cd9d2686541dc49875f7944ab71348edfcc6a5686414b22ea0b6d9b29" dependencies = [ "cfg_aliases", "httpdate", @@ -3211,9 +3064,9 @@ dependencies = [ [[package]] name = "sentry-anyhow" -version = "0.47.0" +version = "0.48.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15257eeba11d42eb0d6893fed26033504b031abaef3b3809343e4967f476502" +checksum = "b453979b97436e76adf5934d4e4e4ceb566cedeca776f54abf86f4dc3efe681b" dependencies = [ "anyhow", "sentry-backtrace", @@ -3222,9 +3075,9 @@ dependencies = [ [[package]] name = "sentry-backtrace" -version = "0.47.0" +version = "0.48.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a8c2c1bd5c1f735e84f28b48e7d72efcaafc362b7541bc8253e60e8fcdffc6" +checksum = "317271b821fcca9fc661f66aa8afe93058578d05cca4bd09615fe28a16c8b4cb" dependencies = [ "backtrace", "regex", @@ -3233,9 +3086,9 @@ dependencies = [ [[package]] name = "sentry-contexts" -version = "0.47.0" +version = "0.48.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b88a90baa654d7f0e1f4b667f6b434293d9f72c71bef16b197c76af5b7d5803" +checksum = "7bae5c2f69cd0f7a1543846b4df412ba8ea1aa2ec4eb5333f125332cec8d4868" dependencies = [ "hostname", "libc", @@ -3247,9 +3100,9 @@ dependencies = [ [[package]] name = "sentry-core" -version = "0.47.0" +version = "0.48.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ac170a5bba8bec6e3339c90432569d89641fa7a3d3e4f44987d24f0762e6adf" +checksum = "b8c44ee52fa3d30581f951b57aec754ef9cd70186df5fb788367804360c48097" dependencies = [ "rand 0.9.4", "sentry-types", @@ -3260,9 +3113,9 @@ dependencies = [ [[package]] name = "sentry-panic" -version = "0.47.0" +version = "0.48.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6127d3d304ba5ce0409401e85aae538e303a569f8dbb031bf64f9ba0f7174346" +checksum = "d47aa64170cf609b948fe8f47d2690541bde11e465daa836cf81ad6e62bb3240" dependencies = [ "sentry-backtrace", "sentry-core", @@ -3270,9 +3123,9 @@ dependencies = [ [[package]] name = "sentry-tracing" -version = "0.47.0" +version = "0.48.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27701acc51e68db5281802b709010395bfcbcb128b1d0a4e5873680d3b47ff0c" +checksum = "27bdb405dbdfb1dd8b1cca46db8afe7ddd28dd4a55108b27b893170cc614912c" dependencies = [ "bitflags", "sentry-backtrace", @@ -3283,9 +3136,9 @@ dependencies = [ [[package]] name = "sentry-types" -version = "0.47.0" +version = "0.48.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56780cb5597d676bf22e6c11d1f062eb4def46390ea3bfb047bcbcf7dfd19bdb" +checksum = "1be93ef0435a5ab91f88178fb7681249437e875d004f996ecb35be94dc99a0e0" dependencies = [ "debugid", "hex", @@ -3339,9 +3192,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa", "memchr", @@ -3381,7 +3234,18 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest", + "digest 0.10.7", +] + +[[package]] +name = "sha1" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", ] [[package]] @@ -3392,7 +3256,18 @@ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", ] [[package]] @@ -3420,16 +3295,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - [[package]] name = "similar" version = "2.7.0" @@ -3485,16 +3350,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "sqlformat" version = "0.5.0" @@ -3507,9 +3362,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" +checksum = "378620ccc25c62c89d8be1c819e76a88d59bdcc3304733330788948e619bfd71" dependencies = [ "sqlx-core", "sqlx-macros", @@ -3520,12 +3375,13 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" +checksum = "05b44e85bf579a8eeb4ceaa77a3a523baf2bf0e9bac7e40f405d537b5d2d5ccb" dependencies = [ "base64", "bytes", + "cfg-if", "chrono", "crc", "crossbeam-queue", @@ -3535,16 +3391,15 @@ dependencies = [ "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "hashlink", "indexmap", "log", "memchr", - "once_cell", "percent-encoding", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "smallvec", "thiserror 2.0.18", "tokio", @@ -3555,9 +3410,9 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" +checksum = "bd2b84f2bc39a5705ef27ec785a11c934a41bbd4a24941e257927cddc26b60bf" dependencies = [ "proc-macro2", "quote", @@ -3568,77 +3423,62 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" +checksum = "fb8d96de5fdc85a5c4ec813432b523ec637e80ba98f046555f75f7908ddac7c3" dependencies = [ + "cfg-if", "dotenvy", "either", "heck", "hex", - "once_cell", "proc-macro2", "quote", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "sqlx-core", "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", "syn", + "thiserror 2.0.18", "tokio", "url", ] [[package]] name = "sqlx-mysql" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" +checksum = "90b8020fe17c5f2c245bfa2505d7ef59c5604839527c740266ad2214acebea27" dependencies = [ - "atoi", - "base64", "bitflags", "byteorder", "bytes", "chrono", "crc", - "digest", + "digest 0.11.3", "dotenvy", "either", - "futures-channel", "futures-core", - "futures-io", "futures-util", "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", "log", - "md-5", - "memchr", - "once_cell", "percent-encoding", - "rand 0.8.5", - "rsa", "serde", - "sha1", - "sha2", - "smallvec", + "sha1 0.11.0", + "sha2 0.11.0", "sqlx-core", - "stringprep", "thiserror 2.0.18", "tracing", - "whoami", ] [[package]] name = "sqlx-postgres" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" +checksum = "87a2bdd6e83f6b3ea525ca9fee568030508b58355a43d0b2c1674d5f79dcd65e" dependencies = [ "atoi", "base64", @@ -3654,16 +3494,14 @@ dependencies = [ "hex", "hkdf", "hmac", - "home", "itoa", "log", "md-5", "memchr", - "once_cell", - "rand 0.8.5", + "rand 0.10.2", "serde", "serde_json", - "sha2", + "sha2 0.11.0", "smallvec", "sqlx-core", "stringprep", @@ -3674,13 +3512,14 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" +checksum = "488e99c397a62007e4229aec669a179816339afc6d2620ca6fa420dbee2e982c" dependencies = [ "atoi", "chrono", "flume", + "form_urlencoded", "futures-channel", "futures-core", "futures-executor", @@ -3690,7 +3529,6 @@ dependencies = [ "log", "percent-encoding", "serde", - "serde_urlencoded", "sqlx-core", "thiserror 2.0.18", "tracing", @@ -3728,9 +3566,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.114" +version = "2.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" dependencies = [ "proc-macro2", "quote", @@ -3899,9 +3737,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.52.1" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", @@ -4041,21 +3879,38 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ "bitflags", "bytes", "futures-util", "http", "http-body", - "http-body-util", - "iri-string", "pin-project-lite", "tower", "tower-layer", "tower-service", + "url", +] + +[[package]] +name = "tower-http" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b11f75e912b0c2be01b63d8cf8057b8c3f97cf34abb3d431a3a4c8675498e233" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "percent-encoding", + "pin-project-lite", + "tower-layer", + "tower-service", "tracing", ] @@ -4167,15 +4022,15 @@ dependencies = [ "httparse", "log", "rand 0.9.4", - "sha1", + "sha1 0.10.6", "thiserror 2.0.18", ] [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "uname" @@ -4298,13 +4153,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.23.1" +version = "1.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" +checksum = "bf80a72845275afea99e7f2b434723d3bc7e38470fcd1c7ed39a599c73319a53" dependencies = [ "getrandom 0.4.2", "js-sys", - "rand 0.10.1", + "rand 0.10.2", "serde_core", "wasm-bindgen", ] @@ -4376,12 +4231,6 @@ dependencies = [ "wit-bindgen", ] -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - [[package]] name = "wasm-bindgen" version = "0.2.108" @@ -4528,13 +4377,9 @@ dependencies = [ [[package]] name = "whoami" -version = "1.6.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" -dependencies = [ - "libredox", - "wasite", -] +checksum = "998767ef88740d1f5b0682a9c53c24431453923962269c2db68ee43788c5a40d" [[package]] name = "winapi" @@ -4644,15 +4489,6 @@ dependencies = [ "windows-targets 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" diff --git a/opsqueue/Cargo.toml b/opsqueue/Cargo.toml index 486ea65..5dd4110 100644 --- a/opsqueue/Cargo.toml +++ b/opsqueue/Cargo.toml @@ -17,7 +17,7 @@ required-features = ["server-logic"] [dependencies] # Datatypes and concurrency: -itertools = "0.14.0" +itertools = "0.15.0" arc-swap = {version = "1.9.1", optional = true} moka = { version = "0.12.15", features = ["sync"], optional = true } chrono = { version = "0.4.44", features = ["serde"]} @@ -32,7 +32,7 @@ ux = "0.1.6" # Error handling: anyhow = "1.0.102" # Database: -sqlx = { version = "0.8.2", features = ["sqlite", "runtime-tokio", "chrono"], optional = true } +sqlx = { version = "0.9.0", features = ["sqlite", "runtime-tokio", "chrono"], optional = true } # Serialization: serde = { version = "1.0.203", features = ["derive"] } serde_json = "1.0.149" @@ -46,12 +46,12 @@ axum = { version = "0.8.9", features = ["ws", "macros"], optional = true } reqwest = { version = "0.13.2", default-features = false, features = ["json"], optional = true } url = {version = "2.5.2"} tokio-util = { version = "0.7.18", features = ["io", "rt", "time"] } -tower-http = { version = "0.6.8", features = ["trace", "catch-panic"], optional = true } +tower-http = { version = "0.7.0", features = ["trace", "catch-panic"], optional = true } # Logging and tracing: tracing = {version = "0.1", features = ["log"] } tracing-subscriber = {version = "0.3", features = ["std", "env-filter"] } -sentry = {version = "0.47", optional = true, default-features=false, features=["rustls", "reqwest", "anyhow", "backtrace", "contexts", "tracing", "panic"]} -sentry-tracing = {version = "0.47", optional = true} +sentry = {version = "0.48", optional = true, default-features=false, features=["rustls", "reqwest", "anyhow", "backtrace", "contexts", "tracing", "panic"]} +sentry-tracing = {version = "0.48", optional = true} # Exporting traces to Opentelemetry: opentelemetry = { version = "0.32", default-features = false, features = ["trace"] } opentelemetry_sdk = { version = "0.32", default-features = false, features = ["trace", "rt-tokio"] } From c9c3fffdf70b86a43608e701af4fa170b446bd3b Mon Sep 17 00:00:00 2001 From: Reinier Maas Date: Fri, 10 Jul 2026 16:13:35 +0200 Subject: [PATCH 2/3] Test: Add `sqlx` `migrator` preventing duplicating migrations XRef: https://kobzol.github.io/rust/2026/06/21/optimizing-sqlx-test-rebuild-time.html --- opsqueue/src/common/chunk.rs | 10 +++++----- opsqueue/src/common/submission.rs | 22 +++++++++++----------- opsqueue/src/consumer/client.rs | 2 +- opsqueue/src/consumer/strategy.rs | 16 ++++++++-------- opsqueue/src/lib.rs | 3 +++ opsqueue/src/producer/client.rs | 6 +++--- 6 files changed, 31 insertions(+), 28 deletions(-) diff --git a/opsqueue/src/common/chunk.rs b/opsqueue/src/common/chunk.rs index 1106f4e..b2746ef 100644 --- a/opsqueue/src/common/chunk.rs +++ b/opsqueue/src/common/chunk.rs @@ -694,7 +694,7 @@ pub mod test { use super::db::*; use super::*; - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_insert_chunk(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); @@ -711,7 +711,7 @@ pub mod test { assert!(count_chunks(&mut conn).await.unwrap() == u63::new(1)); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_get_chunk(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); @@ -731,7 +731,7 @@ pub mod test { assert!(chunk == fetched_chunk); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_complete_chunk_raw(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); @@ -769,7 +769,7 @@ pub mod test { assert!(count_chunks_failed(&mut conn).await.unwrap() == u63::new(0)); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_complete_chunk_raw_updates_submissions_chunk_total(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); @@ -812,7 +812,7 @@ pub mod test { } } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_fail_chunk(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); diff --git a/opsqueue/src/common/submission.rs b/opsqueue/src/common/submission.rs index e5998f6..12d9f41 100644 --- a/opsqueue/src/common/submission.rs +++ b/opsqueue/src/common/submission.rs @@ -1075,7 +1075,7 @@ pub mod test { ); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_submission_status_in_progress(db: sqlx::SqlitePool) { let mut conn = db.acquire().await.unwrap(); let query = r#" @@ -1103,7 +1103,7 @@ pub mod test { "); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_submission_status_completed(db: sqlx::SqlitePool) { let mut conn = db.acquire().await.unwrap(); let query = r#" @@ -1131,7 +1131,7 @@ pub mod test { "); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_submission_status_failed(db: sqlx::SqlitePool) { let mut conn = db.acquire().await.unwrap(); let query = r#" @@ -1161,7 +1161,7 @@ pub mod test { "); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_submission_status_cancelled(db: sqlx::SqlitePool) { let mut conn = db.acquire().await.unwrap(); let query = r#" @@ -1188,7 +1188,7 @@ pub mod test { "); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_insert_submission(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); @@ -1208,7 +1208,7 @@ pub mod test { assert_matches!(count_submissions(&mut conn).await, Ok(1)); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_get_submission(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); @@ -1231,7 +1231,7 @@ pub mod test { assert_eq!(fetched_submission, submission); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_submission_strategic_metadata(db: sqlx::SqlitePool) { let strategic_metadata: StrategicMetadataMap = [("company_id".to_string(), 123), ("flavour".to_string(), 42)] @@ -1275,7 +1275,7 @@ pub mod test { assert_eq!(chunk_fetched_metadata, strategic_metadata); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_complete_submission_raw(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); @@ -1300,7 +1300,7 @@ pub mod test { assert_matches!(count_submissions_failed(&mut conn).await, Ok(0)); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_fail_submission_raw(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); @@ -1327,7 +1327,7 @@ pub mod test { assert_matches!(count_submissions_failed(&mut conn).await, Ok(1)); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_cleanup_old(db: sqlx::SqlitePool) { let db = WriterPool::new(db); let mut conn = db.writer_conn().await.unwrap(); @@ -1454,7 +1454,7 @@ pub mod test { let _sub2 = submission_status(old_four_unfailed, &mut conn).await; } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] /// Test whether empty submissions are marked as completed right away by `insert_submission_from_chunks`. pub async fn auto_complete_empty_submission(db: sqlx::SqlitePool) { let db = WriterPool::new(db); diff --git a/opsqueue/src/consumer/client.rs b/opsqueue/src/consumer/client.rs index 1105cb0..08a603b 100644 --- a/opsqueue/src/consumer/client.rs +++ b/opsqueue/src/consumer/client.rs @@ -409,7 +409,7 @@ mod tests { use super::*; - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_fetch_chunks(pool: sqlx::SqlitePool) { let db_pools = db::DBPools::from_test_pool(&pool); let uri = "0.0.0.0:10083"; diff --git a/opsqueue/src/consumer/strategy.rs b/opsqueue/src/consumer/strategy.rs index 68f0493..69f8d15 100644 --- a/opsqueue/src/consumer/strategy.rs +++ b/opsqueue/src/consumer/strategy.rs @@ -131,7 +131,7 @@ pub mod test { assert!(!explained.contains("B-TREE"), "Query should contain no temporary B-tree construction, but it did.\n\nQuery: {query}\n\nPlan: \n\n{explained}"); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_oldest(db: sqlx::SqlitePool) { let mut conn = db.acquire().await.unwrap(); let mut qb = QueryBuilder::new(""); @@ -154,7 +154,7 @@ pub mod test { assert_eq!(explained, "3, 0, SCAN chunks"); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_newest(db: sqlx::SqlitePool) { let mut conn = db.acquire().await.unwrap(); let mut qb = QueryBuilder::new(""); @@ -177,7 +177,7 @@ pub mod test { assert_eq!(explained, "3, 0, SCAN chunks"); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_random(db: sqlx::SqlitePool) { let mut conn = db.acquire().await.unwrap(); let metastate = MetaState::default(); @@ -213,7 +213,7 @@ pub mod test { "); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_prefer_distinct_oldest(db: sqlx::SqlitePool) { use Strategy::*; let mut conn = db.acquire().await.unwrap(); @@ -299,7 +299,7 @@ pub mod test { "); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_prefer_distinct_newest(db: sqlx::SqlitePool) { use Strategy::*; let mut conn = db.acquire().await.unwrap(); @@ -385,7 +385,7 @@ pub mod test { "); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_prefer_distinct_random(db: sqlx::SqlitePool) { use Strategy::*; let mut conn = db.acquire().await.unwrap(); @@ -494,7 +494,7 @@ pub mod test { "); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] pub async fn test_query_plan_prefer_distinct_nested(db: sqlx::SqlitePool) { use Strategy::*; let mut conn = db.acquire().await.unwrap(); @@ -718,7 +718,7 @@ pub mod test { use crate::db::Connection; use futures::stream::TryStreamExt as _; - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] /// Tests whether the 'cutting the deck' technique is working /// /// We do this by checking whether two selects in a huge amount of available chunks diff --git a/opsqueue/src/lib.rs b/opsqueue/src/lib.rs index 0389bbd..4c52412 100644 --- a/opsqueue/src/lib.rs +++ b/opsqueue/src/lib.rs @@ -47,3 +47,6 @@ pub const VERSION_CARGO_SEMVER: &str = env!("CARGO_PKG_VERSION"); pub fn version_info() -> String { format!("v{VERSION_CARGO_SEMVER}") } + +#[cfg(all(test, feature = "server-logic"))] +const MIGRATOR: sqlx::migrate::Migrator = sqlx::migrate!(); diff --git a/opsqueue/src/producer/client.rs b/opsqueue/src/producer/client.rs index b09e20b..26415b0 100644 --- a/opsqueue/src/producer/client.rs +++ b/opsqueue/src/producer/client.rs @@ -313,7 +313,7 @@ mod tests { tokio::task::yield_now().await; } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] async fn test_count_submissions(pool: sqlx::SqlitePool) { let url = "0.0.0.0:4002"; start_server_in_background(&pool, url).await; @@ -339,7 +339,7 @@ mod tests { assert_eq!(count, 1); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] async fn test_insert_submission(pool: sqlx::SqlitePool) { let url = "0.0.0.0:4000"; start_server_in_background(&pool, url).await; @@ -389,7 +389,7 @@ mod tests { assert_eq!(count, 4); } - #[sqlx::test] + #[sqlx::test(migrator = "crate::MIGRATOR")] async fn test_get_submission(pool: sqlx::SqlitePool) { let url = "0.0.0.0:4001"; start_server_in_background(&pool, url).await; From 65801c3c080f6919b21a87134af29c0a0c7e51e1 Mon Sep 17 00:00:00 2001 From: Reinier Maas Date: Fri, 10 Jul 2026 16:18:58 +0200 Subject: [PATCH 3/3] Fix: `sqlx` type changes --- opsqueue/src/common/chunk.rs | 4 +- opsqueue/src/common/submission.rs | 6 +-- opsqueue/src/consumer/strategy.rs | 86 ++++++++++++++++++++----------- 3 files changed, 60 insertions(+), 36 deletions(-) diff --git a/opsqueue/src/common/chunk.rs b/opsqueue/src/common/chunk.rs index b2746ef..626b177 100644 --- a/opsqueue/src/common/chunk.rs +++ b/opsqueue/src/common/chunk.rs @@ -228,14 +228,14 @@ pub mod db { impl<'q> sqlx::Encode<'q, Sqlite> for super::ChunkIndex { fn encode_by_ref( &self, - buf: &mut ::ArgumentBuffer<'q>, + buf: &mut ::ArgumentBuffer, ) -> Result { >::encode_by_ref(&i64::from(*self), buf) } fn encode( self, - buf: &mut ::ArgumentBuffer<'q>, + buf: &mut ::ArgumentBuffer, ) -> Result where Self: Sized, diff --git a/opsqueue/src/common/submission.rs b/opsqueue/src/common/submission.rs index 12d9f41..bbe9d79 100644 --- a/opsqueue/src/common/submission.rs +++ b/opsqueue/src/common/submission.rs @@ -284,14 +284,14 @@ pub mod db { impl<'q> sqlx::Encode<'q, Sqlite> for SubmissionId { fn encode_by_ref( &self, - buf: &mut ::ArgumentBuffer<'q>, + buf: &mut ::ArgumentBuffer, ) -> Result { >::encode_by_ref(&i64::from(*self), buf) } fn encode( self, - buf: &mut ::ArgumentBuffer<'q>, + buf: &mut ::ArgumentBuffer, ) -> Result where Self: Sized, @@ -1050,7 +1050,7 @@ pub mod test { use super::*; async fn explain_query_plan(query: &str, conn: &mut SqliteConnection) -> String { - sqlx::raw_sql(&format!("EXPLAIN QUERY PLAN {query}")) + sqlx::raw_sql(sqlx::AssertSqlSafe(format!("EXPLAIN QUERY PLAN {query}"))) .fetch_all(&mut *conn) .await .unwrap_or_else(|_| panic!("Invalid query: \n{query}\n")) diff --git a/opsqueue/src/consumer/strategy.rs b/opsqueue/src/consumer/strategy.rs index 69f8d15..5bcb59c 100644 --- a/opsqueue/src/consumer/strategy.rs +++ b/opsqueue/src/consumer/strategy.rs @@ -25,9 +25,9 @@ pub enum Strategy { impl Strategy { pub fn build_query<'a>( &'a self, - qb: &'a mut QueryBuilder<'a, Sqlite>, + qb: &'a mut QueryBuilder, metastate: &MetaState, - ) -> &'a mut QueryBuilder<'a, Sqlite> { + ) -> &'a mut QueryBuilder { let qb = self.build_query_snippet(qb, metastate); tracing::trace!("sql: {:?}", qb.sql()); qb @@ -35,9 +35,9 @@ impl Strategy { fn build_query_snippet<'a>( &'a self, - qb: &'a mut QueryBuilder<'a, Sqlite>, + qb: &'a mut QueryBuilder, metastate: &MetaState, - ) -> &'a mut QueryBuilder<'a, Sqlite> { + ) -> &'a mut QueryBuilder { use Strategy::*; match self { Oldest => qb.push("SELECT * FROM chunks ORDER BY submission_id ASC"), @@ -105,28 +105,32 @@ pub mod test { use sqlx::Row; use sqlx::{QueryBuilder, Sqlite, SqliteConnection}; - async fn explain( - qb: &mut sqlx::QueryBuilder<'_, Sqlite>, - conn: &mut SqliteConnection, - ) -> String { - let formatted_query = format(qb.sql(), &QueryParams::None, &FormatOptions::default()); - - sqlx::raw_sql(&format!("EXPLAIN QUERY PLAN {}", formatted_query)) - .fetch_all(&mut *conn) - .await - .unwrap_or_else(|_| panic!("Invalid query: \n{}\n", formatted_query)) - .into_iter() - .map(|row| { - let id = row.get::("id"); - let parent = row.get::("parent"); - let detail = row.get::("detail"); - format!("{id}, {parent}, {detail}") - }) - .join("\n") + async fn explain(qb: &mut sqlx::QueryBuilder, conn: &mut SqliteConnection) -> String { + let formatted_query = format( + qb.sql().as_str(), + &QueryParams::None, + &FormatOptions::default(), + ); + + sqlx::raw_sql(sqlx::AssertSqlSafe(format!( + "EXPLAIN QUERY PLAN {formatted_query}" + ))) + .fetch_all(&mut *conn) + .await + .unwrap_or_else(|_| panic!("Invalid query: \n{}\n", formatted_query)) + .into_iter() + .map(|row| { + let id = row.get::("id"); + let parent = row.get::("parent"); + let detail = row.get::("detail"); + format!("{id}, {parent}, {detail}") + }) + .join("\n") } - fn assert_streaming_query(qb: &sqlx::QueryBuilder<'_, Sqlite>, explained: &str) { - let query = qb.sql(); + fn assert_streaming_query(qb: &sqlx::QueryBuilder, explained: &str) { + let query_binding = qb.sql(); + let query = query_binding.as_str(); assert!(!explained.contains("MATERIALIZED"), "Query should contain no materialization, but it did\n\nQuery: {query}\n\nPlan: \n\n {explained}"); assert!(!explained.contains("B-TREE"), "Query should contain no temporary B-tree construction, but it did.\n\nQuery: {query}\n\nPlan: \n\n{explained}"); } @@ -139,7 +143,7 @@ pub mod test { let qb = Strategy::Oldest.build_query(&mut qb, &metastate); let options = FormatOptions::default(); - let formatted_query = format(qb.sql(), &QueryParams::None, &options); + let formatted_query = format(qb.sql().as_str(), &QueryParams::None, &options); insta::assert_snapshot!(formatted_query, @" SELECT * @@ -162,7 +166,7 @@ pub mod test { let qb = Strategy::Newest.build_query(&mut qb, &metastate); let options = FormatOptions::default(); - let formatted_query = format(qb.sql(), &QueryParams::None, &options); + let formatted_query = format(qb.sql().as_str(), &QueryParams::None, &options); insta::assert_snapshot!(formatted_query, @" SELECT * @@ -185,7 +189,11 @@ pub mod test { let qb = Strategy::Random.build_query(&mut qb, &metastate); - let formatted_query = format(qb.sql(), &QueryParams::None, &FormatOptions::default()); + let formatted_query = format( + qb.sql().as_str(), + &QueryParams::None, + &FormatOptions::default(), + ); insta::assert_snapshot!(formatted_query, @" SELECT * @@ -226,7 +234,11 @@ pub mod test { let mut qb = QueryBuilder::new(""); let qb = strategy.build_query(&mut qb, &metastate); - let formatted_query = format(qb.sql(), &QueryParams::None, &FormatOptions::default()); + let formatted_query = format( + qb.sql().as_str(), + &QueryParams::None, + &FormatOptions::default(), + ); insta::assert_snapshot!(formatted_query, @" WITH inner_company_id AS NOT MATERIALIZED ( @@ -312,7 +324,11 @@ pub mod test { let mut qb = QueryBuilder::new(""); let qb = strategy.build_query(&mut qb, &metastate); - let formatted_query = format(qb.sql(), &QueryParams::None, &FormatOptions::default()); + let formatted_query = format( + qb.sql().as_str(), + &QueryParams::None, + &FormatOptions::default(), + ); insta::assert_snapshot!(formatted_query, @" WITH inner_company_id AS NOT MATERIALIZED ( @@ -398,7 +414,11 @@ pub mod test { let mut qb = QueryBuilder::new(""); let qb = strategy.build_query(&mut qb, &metastate); - let formatted_query = format(qb.sql(), &QueryParams::None, &FormatOptions::default()); + let formatted_query = format( + qb.sql().as_str(), + &QueryParams::None, + &FormatOptions::default(), + ); insta::assert_snapshot!(formatted_query, @" WITH inner_company_id AS NOT MATERIALIZED ( @@ -511,7 +531,11 @@ pub mod test { let mut qb = QueryBuilder::new(""); let qb = strategy.build_query(&mut qb, &metastate); - let formatted_query = format(qb.sql(), &QueryParams::None, &FormatOptions::default()); + let formatted_query = format( + qb.sql().as_str(), + &QueryParams::None, + &FormatOptions::default(), + ); insta::assert_snapshot!(formatted_query, @" WITH inner_company_id AS NOT MATERIALIZED (