Initial outline of backup/restore - #294
Draft
tpoliaw wants to merge 24 commits into
Draft
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #294 +/- ##
==========================================
- Coverage 79.34% 77.91% -1.44%
==========================================
Files 13 13
Lines 2116 2155 +39
==========================================
Hits 1679 1679
- Misses 437 476 +39 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | dependencies | minor | `1.52.1` → `1.53.1` | --- ### Release Notes <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.53.1`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.53.1): Tokio v1.53.1 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.53.0...tokio-1.53.1) ### 1.53.1 (July 20th, 2026) ##### Fixed - signal: restore MSRV by removing `OnceLock::wait` from the Windows handler ([#​8300]) ##### Fixed (unstable) - time: fix alt timer cancellation and insertion race ([#​8252]) ##### Documented - runtime: remove dead link definition in Runtime::block\_on ([#​8301]) [#​8252]: https://redirect.github.com/tokio-rs/tokio/pull/8252 [#​8300]: https://redirect.github.com/tokio-rs/tokio/pull/8300 [#​8301]: https://redirect.github.com/tokio-rs/tokio/pull/8301 ### [`v1.53.0`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.53.0): Tokio v1.53.0 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.4...tokio-1.53.0) ### 1.53.0 (July 17th, 2026) ##### Added - fs: implement `From<OwnedFd>` and `From<OwnedHandle>` for `File` ([#​8266]) - metrics: add task schedule latency metric ([#​7986]) - net: add `SocketAddr` methods to Unix sockets ([#​8144]) ##### Changed - io: add `#[inline]` to IO trait impls for in-memory types ([#​8242]) - net: implement UCred::pid on FreeBSD ([#​8086]) - net: support Nuttx target os ([#​8259]) - signal: refactor global variables on Windows ([#​8231]) - sync: `mpsc::{Receiver,UnboundedReceiver}` now drops waker on drop, even if there are still senders ([#​8095]) - taskdump: support taskdumps on s390x ([#​8192]) - time: add `#[track_caller]` to `timeout_at()` ([#​8077]) - time: consolidate mutex locks on spurious poll ([#​8124]) - time: defer waker clone on spurious poll ([#​8107]) - time: move lazy-registration state into `Sleep` ([#​8132]) - tracing: remove unnecessary span clone ([#​8126]) ##### Fixed - io: do not treat zero-length reads as EOF in `Chain` ([#​8251]) - net: use getpeereid for QNX peer credentials ([#​8270]) - runtime: avoid illegal state in `FastRand` ([#​8078]) - sync: wake mpsc receiver when a queued `reserve[_many]` returns permits ([#​8260]) - taskdump: skip double wake on `Trace::capture`/`Trace::trace_with` ([#​8043]) - time: avoid stack overflow in runtime constructor ([#​8093]) - time (alt timer): ensure timers stay in the same runtime after `.reset()` ([#​8169]) ##### IO uring (unstable) - fs: use io-uring for `fs::try_exists` ([#​8080]) - fs: use io-uring for renaming files ([#​7800]) - rt: flush io-uring CQE in case of CQE overflow ([#​8277]) ##### Documented - docs: clarify cancel safety wording ([#​8181]) - fs: clarify `create_dir_all` succeeds if path exists ([#​8149]) - io: add warning about stdout reordering with multiple handles ([#​8276]) - net: document pipe `try_read*`/`try_write*` readiness behavior ([#​8032]) - runtime: document interaction with fork() ([#​8202]) - sync: clarify broadcast lagging semantics ([#​8239]) - sync: document memory ordering guarantees for Semaphore ([#​8119]) - task: explain why `yield_now` defers its waker ([#​8254]) - time: add panic docs to `timeout_at()` ([#​8077]) - time: fix reversed poll order in timeout doc ([#​8214]) [#​7800]: https://redirect.github.com/tokio-rs/tokio/pull/7800 [#​7986]: https://redirect.github.com/tokio-rs/tokio/pull/7986 [#​8032]: https://redirect.github.com/tokio-rs/tokio/pull/8032 [#​8043]: https://redirect.github.com/tokio-rs/tokio/pull/8043 [#​8077]: https://redirect.github.com/tokio-rs/tokio/pull/8077 [#​8078]: https://redirect.github.com/tokio-rs/tokio/pull/8078 [#​8080]: https://redirect.github.com/tokio-rs/tokio/pull/8080 [#​8086]: https://redirect.github.com/tokio-rs/tokio/pull/8086 [#​8093]: https://redirect.github.com/tokio-rs/tokio/pull/8093 [#​8095]: https://redirect.github.com/tokio-rs/tokio/pull/8095 [#​8107]: https://redirect.github.com/tokio-rs/tokio/pull/8107 [#​8119]: https://redirect.github.com/tokio-rs/tokio/pull/8119 [#​8124]: https://redirect.github.com/tokio-rs/tokio/pull/8124 [#​8126]: https://redirect.github.com/tokio-rs/tokio/pull/8126 [#​8132]: https://redirect.github.com/tokio-rs/tokio/pull/8132 [#​8144]: https://redirect.github.com/tokio-rs/tokio/pull/8144 [#​8149]: https://redirect.github.com/tokio-rs/tokio/pull/8149 [#​8169]: https://redirect.github.com/tokio-rs/tokio/pull/8169 [#​8181]: https://redirect.github.com/tokio-rs/tokio/pull/8181 [#​8192]: https://redirect.github.com/tokio-rs/tokio/pull/8192 [#​8193]: https://redirect.github.com/tokio-rs/tokio/pull/8193 [#​8202]: https://redirect.github.com/tokio-rs/tokio/pull/8202 [#​8214]: https://redirect.github.com/tokio-rs/tokio/pull/8214 [#​8231]: https://redirect.github.com/tokio-rs/tokio/pull/8231 [#​8239]: https://redirect.github.com/tokio-rs/tokio/pull/8239 [#​8242]: https://redirect.github.com/tokio-rs/tokio/pull/8242 [#​8251]: https://redirect.github.com/tokio-rs/tokio/pull/8251 [#​8254]: https://redirect.github.com/tokio-rs/tokio/pull/8254 [#​8259]: https://redirect.github.com/tokio-rs/tokio/pull/8259 [#​8260]: https://redirect.github.com/tokio-rs/tokio/pull/8260 [#​8266]: https://redirect.github.com/tokio-rs/tokio/pull/8266 [#​8270]: https://redirect.github.com/tokio-rs/tokio/pull/8270 [#​8276]: https://redirect.github.com/tokio-rs/tokio/pull/8276 [#​8277]: https://redirect.github.com/tokio-rs/tokio/pull/8277 ### [`v1.52.4`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.52.4): Tokio v1.52.4 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.3...tokio-1.52.4) ### 1.52.4 (July 16th, 2026) ##### Fixed - runtime: don't skip the driver when `before_park` schedules work ([#​8222]) ##### Fixed (unstable) - taskdump: remove crate disambiguators from output ([#​8264]) [#​8264]: https://redirect.github.com/tokio-rs/tokio/pull/8264 [#​8222]: https://redirect.github.com/tokio-rs/tokio/pull/8222 ### [`v1.52.3`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.52.3): Tokio v1.52.3 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.2...tokio-1.52.3) ### 1.52.3 (May 8th, 2026) ##### Fixed - sync: fix underflow in mpsc channel `len()` ([#​8062]) - sync: notify receivers in mpsc `OwnedPermit::release()` method ([#​8075]) - sync: require that an `RwLock` has `max_readers != 0` ([#​8076]) - sync: return `Empty` from `try_recv()` when mpsc is closed with outstanding permits ([#​8074]) [#​8062]: https://redirect.github.com/tokio-rs/tokio/pull/8062 [#​8074]: https://redirect.github.com/tokio-rs/tokio/pull/8074 [#​8075]: https://redirect.github.com/tokio-rs/tokio/pull/8075 [#​8076]: https://redirect.github.com/tokio-rs/tokio/pull/8076 ### [`v1.52.2`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.52.2): Tokio v1.52.2 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.1...tokio-1.52.2) ### 1.52.2 (May 4th, 2026) This release reverts the LIFO slot stealing change introduced in 1.51.0 ([#​7431]), due to [its performance impact][#​8065]. ([#​8100]) [#​7431]: https://redirect.github.com/tokio-rs/tokio/pull/7431 [#​8065]: https://redirect.github.com/tokio-rs/tokio/pull/8065 [#​8100]: https://redirect.github.com/tokio-rs/tokio/pull/8100 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/DiamondLightSource/numtracker). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjI0LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [sqlx](https://redirect.github.com/launchbadge/sqlx) | dependencies | minor | `0.8.5` → `0.9.0` | --- ### Release Notes <details> <summary>launchbadge/sqlx (sqlx)</summary> ### [`v0.9.0`](https://redirect.github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#090---2026-05-06) [Compare Source](https://redirect.github.com/launchbadge/sqlx/compare/v0.8.6...v0.9.0) ##### Important Announcements ##### New Github Organization Shortly after this release is published, the SQLx repository will be transferred to a new GitHub organization: <https://github.com/transact-rs/> This is because SQLx has not been owned or maintained by LaunchBadge, LLC. for a few years now, and has since been informally transferred to the collective ownership of its principal authors. Moving the repository to a new organization makes this change more clear, and also allows for potentially inviting outside collaborators. ##### `Cargo.lock` Removed from Tracking The `Cargo.lock` has been removed from tracking in Git. CI should now always test with the latest versions of all dependencies by default, alongside our pass that checks with `cargo generate-lockfile -Z minimal-versions`. This should eliminate the need for any PRs that update dependencies to also update `Cargo.lock` or contend with an endless stream of merge conflicts against it. **N.B.** `cargo install --locked sqlx-cli` will no longer work. However, `cargo install sqlx-cli` has *always* used the latest dependencies by default, ignoring the lockfile, so most users should not be affected. For users requiring reproducible builds, consider maintaining your own lockfile instead; historically, we only ran `cargo update` sporadically, so relying on SQLx's lockfile offered few guarantees anyway. See [the manual page for `cargo install`][man-cargo-install] for details. ##### Breaking As per our [MSRV policy](FAQ.md#MSRV), the supported Rust version for this release cycle is [`1.94.0`](https://doc.rust-lang.org/stable/releases.html#version-1940-2026-03-05). - \[[#​3383]]: feat: create `sqlx.toml` format \[\[[@​abonander](https://redirect.github.com/abonander)]] - SQLx and `sqlx-cli` now support per-crate configuration files (`sqlx.toml`) - New functionality includes, but is not limited to: - Rename `DATABASE_URL` for a crate (for multi-database workspaces) - Set global type overrides for the macros (supporting custom types) - Rename or relocate the `_sqlx_migrations` table (for multiple crates using the same database) - Set characters to ignore when hashing migrations (e.g. ignore whitespace) - More to be implemented in future releases. - Enable feature `sqlx-toml` to use. - `sqlx-cli` has it enabled by default, but `sqlx` does **not**. - Default features of library crates can be hard to completely turn off because of [feature unification], so it's better to keep the default feature set as limited as possible. [This is something we learned the hard way.][preferred-crates] - Guide: see `sqlx::_config` module in documentation. - Reference: \[[Link](sqlx-core/src/config/reference.toml)] - Examples (written for Postgres but can be adapted to other databases; PRs welcome!): - Multiple databases using `DATABASE_URL` renaming and global type overrides: \[[Link](examples/postgres/multi-database)] - Multi-tenant database using `_sqlx_migrations` renaming and multiple schemas: \[[Link](examples/postgres/multi-tenant)] - Force use of `chrono` when `time` is enabled (e.g. when using `tower-sessions-sqlx-store`): \[[Link][preferred-crates]] - Forcing `bigdecimal` when `rust_decimal` is enabled is also shown, but problems with `chrono`/`time` are more common. - **Breaking changes**: - Significant changes to the `Migrate` trait - `sqlx::migrate::resolve_blocking()` is now `#[doc(hidden)]` and thus SemVer-exempt. - \[[#​3486]]: fix(logs): Correct spelling of aquired\_after\_secs tracing field \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - Breaking behavior change: implementations parsing `tracing` logs from SQLx will need to update the spelling. - \[[#​3495]]: feat(postgres): remove lifetime from `PgAdvisoryLockGuard` \[\[[@​bonsairobo](https://redirect.github.com/bonsairobo)]] - \[[#​3526]]: Return \&mut Self from the migrator set\_ methods \[\[[@​nipunn1313](https://redirect.github.com/nipunn1313)]] - Minor breaking change: `Migrator::set_ignore_missing` and `set_locking` now return `&mut Self` instead of `&Self` which may break code in rare circumstances. - \[[#​3541]]: Postgres: force generic plan for better nullability inference. \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - Breaking change: may alter the output of the `query!()` macros for certain queries in Postgres. - \[[#​3613]]: fix: `RawSql` lifetime issues \[\[[@​abonander](https://redirect.github.com/abonander)]] - Breaking change: adds `DB` type parameter to all methods of `RawSql` - \[[#​3670]]: Bump ipnetwork to v0.21.1 \[\[[@​BeauGieskens](https://redirect.github.com/BeauGieskens)]] - \[[#​3674]]: Implement `Decode`, `Encode` and `Type` for `Box`, `Arc`, `Cow` and `Rc` \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - Breaking change: `impl Decode for Cow` now always decodes `Cow::Owned`, lifetime is unlinked - See this discussion for motivation: [#​3674 (comment)](https://redirect.github.com/launchbadge/sqlx/pull/3674#discussion_r2008611502) - \[[#​3723]]: Add SqlStr \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - Breaking change: all `query*()` functions now take `impl SqlSafeStr` which is only implemented for `&'static str` and `AssertSqlSafe`. For all others, wrap in `AssertSqlSafe(<query>)`. - This, along with \[[#​3960]], finally allows returning owned queries as the type will be `Query<'static, DB>`. - `SqlSafeStr` trait is deliberately similar to `std::panic::UnwindSafe`, serving as a speedbump to warn users about naïvely building queries with `format!()` while allowing a workaround for advanced usage that is easy to spot on code review. - \[[#​3800]]: Escape PostgreSQL Options \[\[[@​V02460](https://redirect.github.com/V02460)]] - Breaking behavior change: options passed to `PgConnectOptions::options()` are now automatically escaped. Manual escaping of options is no longer necessary and may cause incorrect behavior. - \[[#​3821]]: Groundwork for 0.9.0-alpha.1 \[\[[@​abonander](https://redirect.github.com/abonander)]] - Increased MSRV to 1.86 and set rust-version - Deleted deprecated combination runtime+TLS features (e.g. `runtime-tokio-native-tls`) - Deleted re-export of unstable `TransactionManager` trait in `sqlx`. - Not technically a breaking change because it's `#[doc(hidden)]`, but [it *will* break SeaORM][seaorm-2600] if not proactively fixed. - \[[#​3924]]: breaking(mysql): assume all non-binary collations compatible with `str` \[\[[@​abonander](https://redirect.github.com/abonander)]] - Text (or text-like) columns which previously were inferred to be `Vec<u8>` will be inferred to be `String` (this should ultimately fix more code than it breaks). - `SET NAMES utf8mb4 COLLATE utf8_general_ci` is no longer sent by default; instead, `SET NAMES utf8mb4` is sent to allow the server to select the appropriate default collation (since this is version- and configuration-dependent). - `MySqlConnectOptions::charset()` and `::collation()` now imply `::set_names(true)` because they don't do anything otherwise. - Setting `charset` doesn't change what's sent in the `Protocol::HandshakeResponse41` packet as that normally only matters for error messages before `SET NAMES` is sent. The default collation if `set_names = false` is `utf8mb4_general_ci`. - See [this comment](https://redirect.github.com/launchbadge/sqlx/blob/388c424f486bf20542a8a37d296dbcf86bb6dffd/sqlx-mysql/src/collation.rs#L1-L37) for details. - Incidental breaking change: `RawSql::fetch_optional()` now returns `sqlx::Result<Option<DB::Row>>` instead of `sqlx::Result<DB::Row>`. Whoops. - \[[#​3928]]: breaking(sqlite): `libsqlite3-sys` versioning, feature flags, safety changes \[\[[@​abonander](https://redirect.github.com/abonander)]] - SemVer policy changes: `libsqlite3-sys` version is now specified using a range. The maximum of the range may now be increased in any backwards-compatible release. The minimum of the range may only be increased in major releases. If you have `libsqlite3-sys` in your dependencies, Cargo should choose a compatible version automatically. If otherwise unconstrained, Cargo should choose the latest version supported. - SQLite extension loading (including through the new `sqlx-toml` feature) is now `unsafe`. - Added new **non-default** features corresponding to conditionally compiled SQLite APIs: - `sqlite-deserialize` enabling `SqliteConnection::serialize()` and `SqliteConnection::deserialize()` - `sqlite-load-extension` enabling `SqliteConnectOptions::extension()` and `::extension_with_entrypoint()` - `sqlite-unlock-notify` enables internal use of `sqlite3_unlock_notify()` - `SqliteValue` and `SqliteValueRef` changes: - The [`sqlite3_value*` interface](https://www.sqlite.org/c3ref/value_blob.html) reserves the right to be stateful. Without protection, any call could theoretically invalidate values previously returned, leading to dangling pointers. - `SqliteValue` is now `!Sync` and `SqliteValueRef` is `!Send` to prevent data races from concurrent accesses. - Instead, clone or wrap the `SqliteValue` in `Mutex`, or convert the `SqliteValueRef` to an owned value. - `SqliteValue` and any derived `SqliteValueRef`s now internally track if that value has been used to decode a borrowed `&[u8]` or `&str` and errors if it's used to decode any other type. - This is not expected to affect the vast majority of usages, which should only decode a single type per `SqliteValue`/`SqliteValueRef`. - See new docs on `SqliteValue` for details. - \[[#​3949]]: Postgres: move `PgLTree::from` to `From<Vec<PgLTreeLabel>>` implementation \[\[[@​JerryQ17](https://redirect.github.com/JerryQ17)]] - \[[#​3957]]: refactor(sqlite): do not borrow bound values, delete lifetime on `SqliteArguments` \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3958]]: refactor(any): Remove lifetime parameter from AnyArguments \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3960]]: refactor(core): Remove lifetime parameter from Arguments trait \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3993]]: Unescape PostgreSQL passfile password \[\[[@​V02460](https://redirect.github.com/V02460)]] - Previously, `.pgpass` file handling did not process backslash-escapes in the password part. Now it does, which may change what password is sent to the server. - \[[#​4008]]: make `#[derive(sqlx::Type)]` automatically generate `impl PgHasArrayType` by default for newtype structs \[\[[@​papaj-na-wrotkach](https://redirect.github.com/papaj-na-wrotkach)]] - Manual implementations of PgHasArrayType for newtypes will conflict with the generated one. Delete the manual impl or add `#[sqlx(no_pg_array)]` where conflicts occur. - \[[#​4077]]: breaking: make `offline` optional to allow building without `serde` \[\[[@​CathalMullan](https://redirect.github.com/CathalMullan)]] - \[[#​4094]]: Bump bit-vec to v0.8 \[\[[@​zennozenith](https://redirect.github.com/zennozenith)]] - \[[#​4142]]: feat(mysql): add mysql-rsa feature for non-TLS RSA auth \[\[[@​dertin](https://redirect.github.com/dertin)]] - Connections requiring RSA password encryption now need to enable the `mysql-rsa` feature or an error will be generated at runtime. RSA encryption is only used for plaintext (non-TLS) connections. - \[[#​4255]]: breaking(any+mysql): correctly convert text and blob types to `AnyTypeInfo` \[\[[@​abonander](https://redirect.github.com/abonander)]] ##### Added - \[[#​3641]]: feat(Postgres): support nested domain types \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​3651]]: Add PgBindIter for encoding and use it as the implementation encoding &\[T] \[\[[@​tylerhawkes](https://redirect.github.com/tylerhawkes)]] - \[[#​3675]]: feat: implement Encode, Decode, Type for `Arc<str>` and `Arc<[u8]>` (and `Rc` equivalents) \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​3791]]: Smol+async global executor 1.80 dev \[\[[@​martin-kolarik](https://redirect.github.com/martin-kolarik)]] - Adds `runtime-smol` and `runtime-async-global-executor` features to replace usages of the deprecated `async-std` crate. - \[[#​3859]]: Add more JsonRawValue encode/decode impls. \[\[[@​Dirbaio](https://redirect.github.com/Dirbaio)]] - \[[#​3881]]: CLi: made cli-lib modules publicly available for other crates \[\[[@​silvestrpredko](https://redirect.github.com/silvestrpredko)]] - \[[#​3889]]: Compile-time support for external drivers \[\[[@​bobozaur](https://redirect.github.com/bobozaur)]] - \[[#​3917]]: feat(sqlx.toml): support SQLite extensions in macros and sqlx-cli \[\[[@​djarb](https://redirect.github.com/djarb)]] - \[[#​3918]]: Feature: Add exclusion violation error kind \[\[[@​barskern](https://redirect.github.com/barskern)]] - \[[#​3971]]: Allow single-field named structs to be transparent \[\[[@​Xiretza](https://redirect.github.com/Xiretza)]] - \[[#​4015]]: feat(sqlite): `no_tx` migration support \[\[[@​AlexTMjugador](https://redirect.github.com/AlexTMjugador)]] - \[[#​4020]]: Add `Migrator::with_migrations()` constructor \[\[[@​xb284524239](https://redirect.github.com/xb284524239)]] - \[[#​3846]]: Add the possibility to skip migrations \[\[[@​Dosenpfand](https://redirect.github.com/Dosenpfand)]] - \[[#​4107]]: Add SQLite extension entrypoint config to `sqlx.toml`, update SQLite extension example \[\[[@​supleed2](https://redirect.github.com/supleed2)]] - \[[#​4118]]: \[postgres] Display line number in error message \[\[[@​mousetail](https://redirect.github.com/mousetail)]] - \[[#​4123]]: feat: add `Json::into_inner()` \[\[[@​chrxn1c](https://redirect.github.com/chrxn1c)]] - \[[#​4153]]: Add on unimplemented diagnostic to `SqlStr` \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​4167]]: add sqlite serialize/deserialize example \[\[[@​mattrighetti](https://redirect.github.com/mattrighetti)]] - \[[#​4228]]: sqlx-postgres: Make `PgNotification` struct clone \[\[[@​michaelvanstraten](https://redirect.github.com/michaelvanstraten)]] ##### Changed - \[[#​3525]]: Remove unnecessary boxfutures \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​3867]]: sqlx-postgres: Bump etcetera to 0.10.0 \[\[[@​miniduikboot](https://redirect.github.com/miniduikboot)]] - \[[#​3709]]: chore: replace once\_cell `OnceCell`/`Lazy` with std `OnceLock`/`LazyLock` \[\[[@​paolobarbolini](https://redirect.github.com/paolobarbolini)]] - \[[#​3890]]: feat: Unify `Debug` implementations across `PgRow`, `MySqlRow` and `SqliteRow` \[\[[@​davidcornu](https://redirect.github.com/davidcornu)]] - \[[#​3911]]: chore: upgrade async-io to v2.4.1 \[\[[@​zebrapurring](https://redirect.github.com/zebrapurring)]] - \[[#​3938]]: Move `QueryLogger` back \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​3956]]: chore(sqlite): Remove unused test of removed git2 feature \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3962]]: Give SQLX\_OFFLINE\_DIR from environment precedence in macros \[\[[@​psionic-k](https://redirect.github.com/psionic-k)]] - \[[#​3968]]: chore(ci): Add timeouts to ci jobs \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​4002]]: sqlx-postgres(tests): cleanup 2 unit tests. \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​4022]]: refactor: tweaks after [#​3791](https://redirect.github.com/launchbadge/sqlx/issues/3791) \[\[[@​abonander](https://redirect.github.com/abonander)]] - \[[#​4257]]: Prefer to give real data to `.bind()` in `README.md` \[\[[@​sobolevn](https://redirect.github.com/sobolevn)]] - \[[#​4042]]: Update to webpki-roots 1 \[\[[@​tottoto](https://redirect.github.com/tottoto)]] - \[[#​4072]]: chore: update hashlink to v0.11.0 \[\[[@​anmolitor](https://redirect.github.com/anmolitor)]] - \[[#​4143]]: Bump whoami to v2 \[\[[@​tisonkun](https://redirect.github.com/tisonkun)]] - \[[#​4161]]: sqlx-sqlite: relax libsqlite3-sys constraint to allow 0.36.x \[\[[@​darioAnongba](https://redirect.github.com/darioAnongba)]] - \[[#​4173]]: ci: check direct minimal versions \[\[[@​ricochet](https://redirect.github.com/ricochet)]] - Note: reverted in 0.9.0 release but still listed for contributor credit. See end of PR thread for details. - \[[#​4189]]: Bump flume to 0.12.0 \[\[[@​opoplawski](https://redirect.github.com/opoplawski)]] - \[[#​4223]]: test(sqlite): add regression test for ORDER BY + LIMIT nullability ([#​4147](https://redirect.github.com/launchbadge/sqlx/issues/4147)) \[\[[@​barry3406](https://redirect.github.com/barry3406)]] - \[[#​4230]]: chore: Update to cargo\_metadata 0.23 \[\[[@​tottoto](https://redirect.github.com/tottoto)]] - \[[#​4233]]: Change reference to dotenvy \[\[[@​graemer957](https://redirect.github.com/graemer957)]] - \[[#​4235]]: chore: Update to validator 0.20 \[\[[@​tottoto](https://redirect.github.com/tottoto)]] - \[[#​4253]]: chore: update example to axum 0.8 \[\[[@​tottoto](https://redirect.github.com/tottoto)]] - Release PR: - Upgraded all Rust-Crypto crates, `rand` - Upgraded `etcetera` to `0.11.0` - Increased max of `libsqlite3-sys` version range to `<0.38.0` ##### Fixed - \[[#​3840]]: Fix docs.rs build of sqlx-sqlite \[\[[@​gferon](https://redirect.github.com/gferon)]] - \[[#​3848]]: fix(macros): don't mutate environment variables \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​3856]]: fix(macros): slightly improve unsupported type error message \[\[[@​dyc3](https://redirect.github.com/dyc3)]] - \[[#​3857]]: fix(mysql): validate parameter count for prepared statements \[\[[@​cvzx](https://redirect.github.com/cvzx)]] - \[[#​3861]]: Fix NoHostnameTlsVerifier for rustls 0.23.24 and above \[\[[@​elichai](https://redirect.github.com/elichai)]] - \[[#​3863]]: Use unnamed statement in pg when not persistent \[\[[@​ThomWright](https://redirect.github.com/ThomWright)]] - \[[#​3874]]: Further reduce dependency on `futures` and `futures-util` \[\[[@​paolobarbolini](https://redirect.github.com/paolobarbolini)]] - \[[#​3886]]: fix: use Executor::fetch in QueryAs::fetch \[\[[@​bobozaur](https://redirect.github.com/bobozaur)]] - \[[#​3910]]: feat(ok): add correct handling of ok packets in MYSQL implementation \[\[[@​0xfourzerofour](https://redirect.github.com/0xfourzerofour)]] - \[[#​3914]]: fix: regenerate test certificates \[\[[@​abonander](https://redirect.github.com/abonander)]] - \[[#​3915]]: fix: spec\_error is used by try\_from derive \[\[[@​saiintbrisson](https://redirect.github.com/saiintbrisson)]] - \[[#​3919]]: fix\[sqlx-postgres]: do a checked\_mul to prevent panic'ing \[\[[@​nhatcher-frequenz](https://redirect.github.com/nhatcher-frequenz)]] - \[[#​3923]]: sqlx-mysql: Fix bug in cleanup test db's. \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​3950]]: chore: Fix warnings for custom postgres\_## cfg flags \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3952]]: `Pool.close`: close all connections before returning \[\[[@​jpmelos](https://redirect.github.com/jpmelos)]] - \[[#​3975]]: fix documentation for rustls native root certificates \[\[[@​2ndDerivative](https://redirect.github.com/2ndDerivative)]] - \[[#​3977]]: refactor(ci): Use separate job for postgres ssl auth tests \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3980]]: Correctly `ROLLBACK` transaction when dropped during `BEGIN`. \[\[[@​kevincox](https://redirect.github.com/kevincox)]] - \[[#​3981]]: SQLite: fix transaction level accounting with bad custom command. \[\[[@​kevincox](https://redirect.github.com/kevincox)]] - \[[#​3986]]: chore(core): Fix docstring for Query::try\_bind \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3987]]: chore(deps): Resolve deprecation warning for chrono Date and ymd methods \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3988]]: refactor(sqlite): Resolve duplicate test target warning for macros.rs \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3989]]: chore(deps): Set default-features=false on sqlx in workspace.dependencies \[\[[@​iamjpotts](https://redirect.github.com/iamjpotts)]] - \[[#​3991]]: fix(sqlite): regression when decoding nulls \[\[[@​abonander](https://redirect.github.com/abonander)]] - \[[#​4006]]: PostgreSQL SASL – run SHA256 in a blocking executor \[\[[@​ThomWright](https://redirect.github.com/ThomWright)]] - \[[#​4007]]: fix(compose): use OS-assigned ports for all conatiners \[\[[@​papaj-na-wrotkach](https://redirect.github.com/papaj-na-wrotkach)]] - \[[#​4009]]: Drop cached db connections in macros upon hitting an error \[\[[@​swlynch99](https://redirect.github.com/swlynch99)]] - \[[#​4024]]: fix(sqlite) Migrate revert with no-transaction \[\[[@​Dosenpfand](https://redirect.github.com/Dosenpfand)]] - \[[#​4027]]: native tls handshake: build TlsConnector in blocking threadpool \[\[[@​daviduebler](https://redirect.github.com/daviduebler)]] - \[[#​4053]]: fix(macros): smarter `.env` loading, caching, and invalidation \[\[[@​abonander](https://redirect.github.com/abonander)]] - Additional credit to \[\[[@​AlexTMjugador](https://redirect.github.com/AlexTMjugador)]] (\[[#​4018]]) and \[\[[@​Diggsey](https://redirect.github.com/Diggsey)]] (\[[#​4039]]) for their proposed solutions which served as a useful comparison. - \[[#​4068]]: Fix typo in migration example from 'uesrs' to 'users' \[\[[@​squidpickles](https://redirect.github.com/squidpickles)]] - \[[#​4069]]: fix some spelling issues \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​4086]]: fix(mysql): Work around for Issue [#​2206](https://redirect.github.com/launchbadge/sqlx/issues/2206) (ColumnNotFound error when querying) \[\[[@​duelafn](https://redirect.github.com/duelafn)]] - \[[#​4088]]: (Fix) Handle nullability of SQLite rowid alias columns \[\[[@​Lege19](https://redirect.github.com/Lege19)]] - \[[#​4100]]: postgres: update pgpass path on windows \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​4134]]: fix CI: replace removed macOS runner, deprecated use of `Command::cargo_bin()` \[\[[@​abonander](https://redirect.github.com/abonander)]] - \[[#​4136]]: Ensure Deterministic Migration Order \[\[[@​aoengin](https://redirect.github.com/aoengin)]] - \[[#​4158]]: Fix panic in JSONB decoder on invalid version byte \[\[[@​jrey8343](https://redirect.github.com/jrey8343)]] - \[[#​4165]]: sqlx-postgres: fix correct operator precedence in byte length check \[\[[@​cuiweixie](https://redirect.github.com/cuiweixie)]] - \[[#​4171]]: fix(postgres): remove home crate in favor of std::env::home\_dir \[\[[@​ricochet](https://redirect.github.com/ricochet)]] - \[[#​4172]]: fix(sqlx-cli): bump openssl minimum to 0.10.46 \[\[[@​ricochet](https://redirect.github.com/ricochet)]] - \[[#​4176]]: fix(mysql): return error instead of panic on truncated OK packet \[\[[@​cvzx](https://redirect.github.com/cvzx)]] - \[[#​4199]]: fix(postgres): make advisory lock cancel safe \[\[[@​joeydewaal](https://redirect.github.com/joeydewaal)]] - \[[#​4201]]: Fix SCRAM password `SASLprep` \[\[[@​var4yn](https://redirect.github.com/var4yn)]] - \[[#​4202]]: fix: replace from\_utf8\_unchecked with from\_utf8\_lossy in SqliteError \[\[[@​joaquinhuigomez](https://redirect.github.com/joaquinhuigomez)]] - \[[#​4203]]: fix: use sqlite3\_value\_text for REGEXP to match SQLite coercion \[\[[@​joaquinhuigomez](https://redirect.github.com/joaquinhuigomez)]] - \[[#​4219]]: sqlite: lossily coerce invalid UTF-8 in custom collation callback \[\[[@​joaquinhuigomez](https://redirect.github.com/joaquinhuigomez)]] - \[[#​4221]]: fix: replace `from_utf8_unchecked` with `from_utf8` in SQLite column name handling \[\[[@​barry3406](https://redirect.github.com/barry3406)]] - \[[#​4226]]: fix(postgres): use non-prepared statements for metadata queries \[\[[@​abonander](https://redirect.github.com/abonander)]] - \[[#​4227]]: fix(macros-core): update unstable proc\_macro APIs for recent nightly \[\[[@​barry3406](https://redirect.github.com/barry3406)]] - \[[#​4234]]: fix: Use correct path in error when failing to create tmp dir in prepare \[\[[@​Miesvanderlippe](https://redirect.github.com/Miesvanderlippe)]] - \[[#​4245]]: fix(mysql): repair caching\_sha2\_password fast-auth path \[\[[@​altmannmarcelo](https://redirect.github.com/altmannmarcelo)]] - \[[#​4251]]: fix(tls): potential deadlock in `StdSocket::poll_ready()` \[\[[@​abonander](https://redirect.github.com/abonander)]] [seaorm-2600]: https://redirect.github.com/SeaQL/sea-orm/issues/2600 [feature unification]: https://doc.rust-lang.org/cargo/reference/features.html#feature-unification [preferred-crates]: examples/postgres/preferred-crates [man-cargo-install]: https://doc.rust-lang.org/cargo/commands/cargo-install.html#dealing-with-the-lockfile [#​3821]: https://redirect.github.com/launchbadge/sqlx/pull/3821 [#​3383]: https://redirect.github.com/launchbadge/sqlx/pull/3383 [#​3486]: https://redirect.github.com/launchbadge/sqlx/pull/3486 [#​3495]: https://redirect.github.com/launchbadge/sqlx/pull/3495 [#​3525]: https://redirect.github.com/launchbadge/sqlx/pull/3525 [#​3526]: https://redirect.github.com/launchbadge/sqlx/pull/3526 [#​3541]: https://redirect.github.com/launchbadge/sqlx/pull/3541 [#​3613]: https://redirect.github.com/launchbadge/sqlx/pull/3613 [#​3641]: https://redirect.github.com/launchbadge/sqlx/pull/3641 [#​3651]: https://redirect.github.com/launchbadge/sqlx/pull/3651 [#​3670]: https://redirect.github.com/launchbadge/sqlx/pull/3670 [#​3674]: https://redirect.github.com/launchbadge/sqlx/pull/3674 [#​3675]: https://redirect.github.com/launchbadge/sqlx/pull/3675 [#​3709]: https://redirect.github.com/launchbadge/sqlx/pull/3709 [#​3723]: https://redirect.github.com/launchbadge/sqlx/pull/3723 [#​3791]: https://redirect.github.com/launchbadge/sqlx/pull/3791 [#​3800]: https://redirect.github.com/launchbadge/sqlx/pull/3800 [#​3821]: https://redirect.github.com/launchbadge/sqlx/pull/3821 [#​3840]: https://redirect.github.com/launchbadge/sqlx/pull/3840 [#​3848]: https://redirect.github.com/launchbadge/sqlx/pull/3848 [#​3856]: https://redirect.github.com/launchbadge/sqlx/pull/3856 [#​3857]: https://redirect.github.com/launchbadge/sqlx/pull/3857 [#​3859]: https://redirect.github.com/launchbadge/sqlx/pull/3859 [#​3861]: https://redirect.github.com/launchbadge/sqlx/pull/3861 [#​3863]: https://redirect.github.com/launchbadge/sqlx/pull/3863 [#​3867]: https://redirect.github.com/launchbadge/sqlx/pull/3867 [#​3874]: https://redirect.github.com/launchbadge/sqlx/pull/3874 [#​3881]: https://redirect.github.com/launchbadge/sqlx/pull/3881 [#​3886]: https://redirect.github.com/launchbadge/sqlx/pull/3886 [#​3889]: https://redirect.github.com/launchbadge/sqlx/pull/3889 [#​3890]: https://redirect.github.com/launchbadge/sqlx/pull/3890 [#​3910]: https://redirect.github.com/launchbadge/sqlx/pull/3910 [#​3911]: https://redirect.github.com/launchbadge/sqlx/pull/3911 [#​3914]: https://redirect.github.com/launchbadge/sqlx/pull/3914 [#​3915]: https://redirect.github.com/launchbadge/sqlx/pull/3915 [#​3917]: https://redirect.github.com/launchbadge/sqlx/pull/3917 [#​3918]: https://redirect.github.com/launchbadge/sqlx/pull/3918 [#​3919]: https://redirect.github.com/launchbadge/sqlx/pull/3919 [#​3923]: https://redirect.github.com/launchbadge/sqlx/pull/3923 [#​3924]: https://redirect.github.com/launchbadge/sqlx/pull/3924 [#​3928]: https://redirect.github.com/launchbadge/sqlx/pull/3928 [#​3938]: https://redirect.github.com/launchbadge/sqlx/pull/3938 [#​3949]: https://redirect.github.com/launchbadge/sqlx/pull/3949 [#​3950]: https://redirect.github.com/launchbadge/sqlx/pull/3950 [#​3952]: https://redirect.github.com/launchbadge/sqlx/pull/3952 [#​3956]: https://redirect.github.com/launchbadge/sqlx/pull/3956 [#​3957]: https://redirect.github.com/launchbadge/sqlx/pull/3957 [#​3958]: https://redirect.github.com/launchbadge/sqlx/pull/3958 [#​3960]: https://redirect.github.com/launchbadge/sqlx/pull/3960 [#​3962]: https://redirect.github.com/launchbadge/sqlx/pull/3962 [#​3968]: https://redirect.github.com/launchbadge/sqlx/pull/3968 [#​3971]: https://redirect.github.com/launchbadge/sqlx/pull/3971 [#​3975]: https://redirect.github.com/launchbadge/sqlx/pull/3975 [#​3977]: https://redirect.github.com/launchbadge/sqlx/pull/3977 [#​3980]: https://redirect.github.com/launchbadge/sqlx/pull/3980 [#​3981]: https://redirect.github.com/launchbadge/sqlx/pull/3981 [#​3986]: https://redirect.github.com/launchbadge/sqlx/pull/3986 [#​3987]: https://redirect.github.com/launchbadge/sqlx/pull/3987 [#​3988]: https://redirect.github.com/launchbadge/sqlx/pull/3988 [#​3989]: https://redirect.github.com/launchbadge/sqlx/pull/3989 [#​3991]: https://redirect.github.com/launchbadge/sqlx/pull/3991 [#​4002]: https://redirect.github.com/launchbadge/sqlx/pull/4002 [#​4006]: https://redirect.github.com/launchbadge/sqlx/pull/4006 [#​4007]: https://redirect.github.com/launchbadge/sqlx/pull/4007 [#​4008]: https://redirect.github.com/launchbadge/sqlx/pull/4008 [#​4009]: https://redirect.github.com/launchbadge/sqlx/pull/4009 [#​4015]: https://redirect.github.com/launchbadge/sqlx/pull/4015 [#​4018]: https://redirect.github.com/launchbadge/sqlx/pull/4018 [#​4020]: https://redirect.github.com/launchbadge/sqlx/pull/4020 [#​4022]: https://redirect.github.com/launchbadge/sqlx/pull/4022 [#​4024]: https://redirect.github.com/launchbadge/sqlx/pull/4024 [#​4027]: https://redirect.github.com/launchbadge/sqlx/pull/4027 [#​4039]: https://redirect.github.com/launchbadge/sqlx/pull/4039 [#​4053]: https://redirect.github.com/launchbadge/sqlx/pull/4053 [#​3846]: https://redirect.github.com/launchbadge/sqlx/pull/3846 [#​3993]: https://redirect.github.com/launchbadge/sqlx/pull/3993 [#​4042]: https://redirect.github.com/launchbadge/sqlx/pull/4042 [#​4068]: https://redirect.github.com/launchbadge/sqlx/pull/4068 [#​4069]: https://redirect.github.com/launchbadge/sqlx/pull/4069 [#​4072]: https://redirect.github.com/launchbadge/sqlx/pull/4072 [#​4077]: https://redirect.github.com/launchbadge/sqlx/pull/4077 [#​4086]: https://redirect.github.com/launchbadge/sqlx/pull/4086 [#​4088]: https://redirect.github.com/launchbadge/sqlx/pull/4088 [#​4094]: https://redirect.github.com/launchbadge/sqlx/pull/4094 [#​4100]: https://redirect.github.com/launchbadge/sqlx/pull/4100 [#​4107]: https://redirect.github.com/launchbadge/sqlx/pull/4107 [#​4118]: https://redirect.github.com/launchbadge/sqlx/pull/4118 [#​4123]: https://redirect.github.com/launchbadge/sqlx/pull/4123 [#​4134]: https://redirect.github.com/launchbadge/sqlx/pull/4134 [#​4136]: https://redirect.github.com/launchbadge/sqlx/pull/4136 [#​4142]: https://redirect.github.com/launchbadge/sqlx/pull/4142 [#​4143]: https://redirect.github.com/launchbadge/sqlx/pull/4143 [#​4153]: https://redirect.github.com/launchbadge/sqlx/pull/4153 [#​4158]: https://redirect.github.com/launchbadge/sqlx/pull/4158 [#​4161]: https://redirect.github.com/launchbadge/sqlx/pull/4161 [#​4165]: https://redirect.github.com/launchbadge/sqlx/pull/4165 [#​4167]: https://redirect.github.com/launchbadge/sqlx/pull/4167 [#​4171]: https://redirect.github.com/launchbadge/sqlx/pull/4171 [#​4172]: https://redirect.github.com/launchbadge/sqlx/pull/4172 [#​4173]: https://redirect.github.com/launchbadge/sqlx/pull/4173 [#​4176]: https://redirect.github.com/launchbadge/sqlx/pull/4176 [#​4189]: https://redirect.github.com/launchbadge/sqlx/pull/4189 [#​4199]: https://redirect.github.com/launchbadge/sqlx/pull/4199 [#​4201]: https://redirect.github.com/launchbadge/sqlx/pull/4201 [#​4202]: https://redirect.github.com/launchbadge/sqlx/pull/4202 [#​4203]: https://redirect.github.com/launchbadge/sqlx/pull/4203 [#​4219]: https://redirect.github.com/launchbadge/sqlx/pull/4219 [#​4221]: https://redirect.github.com/launchbadge/sqlx/pull/4221 [#​4223]: https://redirect.github.com/launchbadge/sqlx/pull/4223 [#​4226]: https://redirect.github.com/launchbadge/sqlx/pull/4226 [#​4227]: https://redirect.github.com/launchbadge/sqlx/pull/4227 [#​4228]: https://redirect.github.com/launchbadge/sqlx/pull/4228 [#​4230]: https://redirect.github.com/launchbadge/sqlx/pull/4230 [#​4233]: https://redirect.github.com/launchbadge/sqlx/pull/4233 [#​4234]: https://redirect.github.com/launchbadge/sqlx/pull/4234 [#​4235]: https://redirect.github.com/launchbadge/sqlx/pull/4235 [#​4245]: https://redirect.github.com/launchbadge/sqlx/pull/4245 [#​4251]: https://redirect.github.com/launchbadge/sqlx/pull/4251 [#​4253]: https://redirect.github.com/launchbadge/sqlx/pull/4253 [#​4255]: https://redirect.github.com/launchbadge/sqlx/pull/4255 [#​4257]: https://redirect.github.com/launchbadge/sqlx/pull/4257 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/DiamondLightSource/numtracker). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjI0LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Peter Holloway <holloway.p.r@gmail.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [rust](https://hub.docker.com/_/rust) ([source](https://redirect.github.com/rust-lang/docker-rust)) | final | minor | `1.95.0-slim` → `1.98.0-slim` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/DiamondLightSource/numtracker). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjM1LjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [opentelemetry](https://redirect.github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry) ([source](https://redirect.github.com/open-telemetry/opentelemetry-rust/tree/HEAD/opentelemetry)) | dependencies | minor | `0.31.0` → `0.32.0` | | [opentelemetry-otlp](https://redirect.github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp) ([source](https://redirect.github.com/open-telemetry/opentelemetry-rust/tree/HEAD/opentelemetry-otlp)) | dependencies | minor | `0.31.0` → `0.32.0` | | [opentelemetry-semantic-conventions](https://redirect.github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-semantic-conventions) ([source](https://redirect.github.com/open-telemetry/opentelemetry-rust/tree/HEAD/opentelemetry-semantic-conventions)) | dependencies | minor | `0.31.0` → `0.32.0` | | [tracing-opentelemetry](https://redirect.github.com/tokio-rs/tracing-opentelemetry) | dependencies | minor | `0.32.0` → `0.33.0` | --- ### Release Notes <details> <summary>open-telemetry/opentelemetry-rust (opentelemetry)</summary> ### [`v0.32.0`](https://redirect.github.com/open-telemetry/opentelemetry-rust/blob/HEAD/opentelemetry/CHANGELOG.md#0320) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry-0.32.0) Released 2026-May-08 - **Added** `BoundCounter<T>` and `BoundHistogram<T>` types that cache resolved aggregator references for a fixed attribute set. Created via `Counter::bind()` and `Histogram::bind()`, bound instruments bypass per-call attribute lookup, providing significant performance improvements for hot paths where the same attributes are used repeatedly. Both types implement `Clone` so a single bound state can be shared across threads or modules without re-binding. Also adds the `SyncInstrument::bind()` trait method and `BoundSyncInstrument<T>` trait for SDK implementors; the trait method has a no-op default so custom `SyncInstrument` impls degrade gracefully without panicking. Gated behind the `experimental_metrics_bound_instruments` feature flag. - Add `reserve` method to `opentelemetry::propagation::Injector` to hint at the number of elements that will be added to avoid multiple resize operations of the underlying data structure. Has an empty default implementation. - **Breaking** Removed the following public fields and methods from the `SpanBuilder` [#​3227][3227]: - `trace_id`, `span_id`, `end_time`, `status`, `sampling_result` - `with_trace_id`, `with_span_id`, `with_end_time`, `with_status`, `with_sampling_result` - **Added** `#[must_use]` attribute to `opentelemetry::metrics::AsyncInstrumentBuilder` to add compile time warning when `.build()` is not called on observable instrument builders, preventing silent failures where callbacks are never registered and metrics are never reported. - **Breaking** Moved the following SDK sampling types from `opentelemetry::trace` to `opentelemetry_sdk::trace` [#​3277][3277]: - `SamplingDecision`, `SamplingResult` - These types are SDK implementation details and should be imported from `opentelemetry_sdk::trace` instead. - "spec\_unstable\_logs\_enabled" feature flag is removed. The capability (and the backing specification) is now stable and is enabled by default. [3278](https://redirect.github.com/open-telemetry/opentelemetry-rust/pull/3278) - Remove the empty "message" field from `tracing` events emitted via the `internal-logs` feature - Fix panic when calling `Context::current()` from `Drop` implementations triggered by `ContextGuard` cleanup ([#​3262][3262]). [3227]: https://redirect.github.com/open-telemetry/opentelemetry-rust/pull/3227 [3262]: https://redirect.github.com/open-telemetry/opentelemetry-rust/pull/3262 [3277]: https://redirect.github.com/open-telemetry/opentelemetry-rust/pull/3277 </details> <details> <summary>open-telemetry/opentelemetry-rust (opentelemetry-otlp)</summary> ### [`v0.32.0`](https://redirect.github.com/open-telemetry/opentelemetry-rust/blob/HEAD/opentelemetry-otlp/CHANGELOG.md#0320) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-otlp-0.31.1...opentelemetry-otlp-0.32.0) Released 2026-May-08 - Add `tls-provider-agnostic` feature flag for environments that require a custom crypto backend (e.g., OpenSSL for FIPS compliance). Enables TLS code paths without bundling `ring` or `aws-lc-rs`. - Add `build()` directly on `SpanExporterBuilder`, `MetricExporterBuilder`, and `LogExporterBuilder` (before selecting a transport), which auto-selects the transport based on the `OTEL_EXPORTER_OTLP_PROTOCOL` environment variable or enabled features. [#​3394](https://redirect.github.com/open-telemetry/opentelemetry-rust/pull/3394) - **Breaking** Removed `ExportConfig`, `HasExportConfig`, `with_export_config()`, `HasTonicConfig`, `HasHttpConfig`, `TonicConfig`, and `HttpConfig` from public API. Use the public `WithExportConfig`, `WithTonicConfig`, and `WithHttpConfig` trait methods instead, which remain unchanged. - The gRPC/tonic OTLP exporter's build method now returns an error for all signals (traces, metrics, logs) when an `https://` endpoint is configured but no TLS feature (`tls-ring` or `tls-aws-lc`) is enabled, instead of silently sending unencrypted traffic. When a TLS feature is enabled and an `https://` endpoint is used without an explicit `.with_tls_config()`, a default `ClientTlsConfig` is automatically applied. [#​3182](https://redirect.github.com/open-telemetry/opentelemetry-rust/issues/3182) - Prevent auth tokens from leaking in export error messages. gRPC and HTTP exporter errors no longer include potentially sensitive server responses (e.g., authentication tokens echoed back). Error messages returned to SDK processors contain only the gRPC status code or HTTP status code. Full details are logged at DEBUG level only. [#​3021](https://redirect.github.com/open-telemetry/opentelemetry-rust/issues/3021) - Surface pre-flight transport error details at ERROR level when `grpc-tonic` OTLP export fails due to a local misconfiguration. When the returned `tonic::Status` wraps a local transport error (invalid URL, connect failure, DNS), its source chain (e.g., `"transport error: invalid URI"`) is appended to the returned error so SDK processors surface it at ERROR without requiring DEBUG logging. Server-returned gRPC status messages remain DEBUG-only to preserve the auth-token leak safeguards from [#​3021](https://redirect.github.com/open-telemetry/opentelemetry-rust/issues/3021). [#​3331](https://redirect.github.com/open-telemetry/opentelemetry-rust/issues/3331) - Add support for per-signal protocol environment variables: `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL`, `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL`, `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL`. These allow configuring different transport protocols per signal type. Signal-specific vars take precedence over generic `OTEL_EXPORTER_OTLP_PROTOCOL`. The auto-select `build()` method on each exporter builder now respects the full priority chain: signal-specific env var > generic env var > feature-based default. - Transport/protocol mismatch validation: HTTP transport returns `InvalidConfig` when gRPC protocol is requested; gRPC transport returns `InvalidConfig` when an HTTP protocol is requested. - **Breaking**: `Protocol::default()` no longer consults the `OTEL_EXPORTER_OTLP_PROTOCOL` environment variable. It now returns only the feature-based default (http-json > http-proto > grpc-tonic). Protocol resolution from environment variables is handled internally by the exporter builders. Users who relied on `Protocol::default()` to read env vars should use `Protocol::from_env()` instead. - Add support for `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` environment variable to configure metrics temporality. Accepted values: `cumulative` (default), `delta`, `lowmemory` (case-insensitive). Programmatic `.with_temporality()` overrides the env var. - Fix `NoHttpClient` error when multiple HTTP client features are enabled by using priority-based selection (`reqwest-client` > `hyper-client` > `reqwest-blocking-client`). [#​2994](https://redirect.github.com/open-telemetry/opentelemetry-rust/issues/2994) - Add partial success response handling for OTLP exporters (traces, metrics, logs) per OTLP spec. Exporters now log warnings when the server returns partial success responses with rejected items and error messages. [#​865](https://redirect.github.com/open-telemetry/opentelemetry-rust/issues/865) - Refactor `internal-logs` feature in `opentelemetry-otlp` to reduce unnecessary dependencies[3191](https://redirect.github.com/open-telemetry/opentelemetry-rust/pull/3192) - Fixed \[[#​2777](https://redirect.github.com/open-telemetry/opentelemetry-rust/issues/2777)]\(<https://github.com/open-telemetry/opentelemetry> rust/issues/2777) to properly handle `shutdown_with_timeout()` when using `grpc-tonic`. - Deprecate `tls` feature in favor of explicit `tls-ring` and `tls-aws-lc` features. **Migration**: Replace `tls` with `tls-ring` (or `tls-aws-lc`). Users of `tls-roots` or `tls-webpki-roots` must now also enable one of these. - Prevent logging of header values in OTLP tonic exporter [#​3465](https://redirect.github.com/open-telemetry/opentelemetry-rust/pull/3465) </details> <details> <summary>open-telemetry/opentelemetry-rust (opentelemetry-semantic-conventions)</summary> ### [`v0.32.1`](https://redirect.github.com/open-telemetry/opentelemetry-rust/blob/HEAD/opentelemetry-semantic-conventions/CHANGELOG.md#0321) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-semantic-conventions-0.32.0...opentelemetry-semantic-conventions-0.32.1) Released 2026-Jun-26 - Update to [v1.42.0](https://redirect.github.com/open-telemetry/semantic-conventions/releases/tag/v1.42.0) of the semantic conventions. ### [`v0.32.0`](https://redirect.github.com/open-telemetry/opentelemetry-rust/blob/HEAD/opentelemetry-semantic-conventions/CHANGELOG.md#0320) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry-semantic-conventions-0.32.0) Released 2026-May-08 </details> <details> <summary>tokio-rs/tracing-opentelemetry (tracing-opentelemetry)</summary> ### [`v0.33.0`](https://redirect.github.com/tokio-rs/tracing-opentelemetry/blob/HEAD/CHANGELOG.md#0330---2026-05-18) [Compare Source](https://redirect.github.com/tokio-rs/tracing-opentelemetry/compare/v0.32.1...v0.33.0) ##### Fixed - \[**breaking**] avoid deadlock when entering a span ([#​251](https://redirect.github.com/tokio-rs/tracing-opentelemetry/pull/251)) ##### Other - Upgrade to OpenTelemetry 0.32, see [upstream changelog](https://redirect.github.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-sdk/CHANGELOG.md#0320) for details ([#​258](https://redirect.github.com/tokio-rs/tracing-opentelemetry/pull/258)) - mimimize package size ([#​252](https://redirect.github.com/tokio-rs/tracing-opentelemetry/pull/252)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/DiamondLightSource/numtracker). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjI0LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Peter Holloway <holloway.p.r@gmail.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [built](https://redirect.github.com/lukaslueg/built) | build-dependencies | patch | `0.8.0` → `0.8.1` | | [chrono](https://redirect.github.com/chronotope/chrono) | dependencies | patch | `0.4.44` → `0.4.45` | | [clap](https://redirect.github.com/clap-rs/clap) | dependencies | patch | `4.6.1` → `4.6.6` | | [futures](https://rust-lang.github.io/futures-rs) ([source](https://redirect.github.com/rust-lang/futures-rs)) | dependencies | patch | `0.3.32` → `0.3.34` | | [serde](https://serde.rs) ([source](https://redirect.github.com/serde-rs/serde)) | dependencies | patch | `1.0.228` → `1.0.229` | | [serde_json](https://redirect.github.com/serde-rs/json) | dev-dependencies | patch | `1.0.149` → `1.0.151` | | [toml](https://redirect.github.com/toml-rs/toml) | dependencies | patch | `1.1.2+spec-1.1.0` → `1.1.4` | --- ### Release Notes <details> <summary>lukaslueg/built (built)</summary> ### [`v0.8.1`](https://redirect.github.com/lukaslueg/built/blob/HEAD/CHANGELOG.md#081) [Compare Source](https://redirect.github.com/lukaslueg/built/compare/0.8.0...0.8.1) - Honor `CARGO_CFG_FEATURE` - Mangle hyphens in override-variables - Bump MSRV to 1.87, switch to Edition 2024 - Bump `cargo-lock` to `11.0` - Bump `git2` to 0.21 - Add `gix` as an alternative to `libgit2` </details> <details> <summary>chronotope/chrono (chrono)</summary> ### [`v0.4.45`](https://redirect.github.com/chronotope/chrono/releases/tag/v0.4.45): 0.4.45 [Compare Source](https://redirect.github.com/chronotope/chrono/compare/v0.4.44...v0.4.45) #### What's Changed - fix(tz): reject TZ offset hour of 24 to avoid FixedOffset overflow by [@​SAY-5](https://redirect.github.com/SAY-5) in [#​1787](https://redirect.github.com/chronotope/chrono/pull/1787) - tz\_data: fix tzdata locations on Android by [@​caruschalalamove](https://redirect.github.com/caruschalalamove) in [#​1789](https://redirect.github.com/chronotope/chrono/pull/1789) </details> <details> <summary>clap-rs/clap (clap)</summary> ### [`v4.6.6`](https://redirect.github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#466---2026-08-06) [Compare Source](https://redirect.github.com/clap-rs/clap/compare/v4.6.5...v4.6.6) ##### Features - Add `Command::get_overridden_usage` ### [`v4.6.5`](https://redirect.github.com/clap-rs/clap/compare/clap_complete-v4.6.4...clap_complete-v4.6.5) [Compare Source](https://redirect.github.com/clap-rs/clap/compare/v4.6.4...v4.6.5) ### [`v4.6.4`](https://redirect.github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#464---2026-07-21) [Compare Source](https://redirect.github.com/clap-rs/clap/compare/v4.6.3...v4.6.4) ##### Internal - Update to syn v3 ### [`v4.6.3`](https://redirect.github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#463---2026-07-20) [Compare Source](https://redirect.github.com/clap-rs/clap/compare/v4.6.2...v4.6.3) ##### Fixes - *(derive)* Allow `"literal".function()` as attribute values ### [`v4.6.2`](https://redirect.github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#462---2026-07-15) [Compare Source](https://redirect.github.com/clap-rs/clap/compare/v4.6.1...v4.6.2) ##### Fixes - *(help)* Say `alias` when there is only one </details> <details> <summary>rust-lang/futures-rs (futures)</summary> ### [`v0.3.34`](https://redirect.github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0334---2026-08-11) [Compare Source](https://redirect.github.com/rust-lang/futures-rs/compare/0.3.33...0.3.34) - Preserve cloned waker identity. ([#​3032](https://redirect.github.com/rust-lang/futures-rs/issues/3032)) - Updato `syn` to 3. ([#​3028](https://redirect.github.com/rust-lang/futures-rs/issues/3028)) ### [`v0.3.33`](https://redirect.github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0333---2026-07-18) [Compare Source](https://redirect.github.com/rust-lang/futures-rs/compare/0.3.32...0.3.33) - Fix `ReadLine`'s soundness issue regarding to exception safety. ([#​3020](https://redirect.github.com/rust-lang/futures-rs/issues/3020)) - Fix unsound `Send` impl for `IterPinRef` and `Iter`. ([#​3003](https://redirect.github.com/rust-lang/futures-rs/issues/3003)) - Fix stacked borrows violation in `compat01as03` implementation. ([#​3012](https://redirect.github.com/rust-lang/futures-rs/issues/3012)) - Fix memory leak in `FuturesUnordered::IntoIter`. ([#​3005](https://redirect.github.com/rust-lang/futures-rs/issues/3005)) - Add `portable-atomic-alloc` feature and use it in `FuturesUnordered`. ([#​3007](https://redirect.github.com/rust-lang/futures-rs/issues/3007)) - Re-export `alloc::task::Wake`. ([#​3010](https://redirect.github.com/rust-lang/futures-rs/issues/3010)) - Update `spin` to 0.12. ([#​3014](https://redirect.github.com/rust-lang/futures-rs/issues/3014)) </details> <details> <summary>serde-rs/serde (serde)</summary> ### [`v1.0.229`](https://redirect.github.com/serde-rs/serde/releases/tag/v1.0.229) [Compare Source](https://redirect.github.com/serde-rs/serde/compare/v1.0.228...v1.0.229) - Update to syn 3 </details> <details> <summary>serde-rs/json (serde_json)</summary> ### [`v1.0.151`](https://redirect.github.com/serde-rs/json/releases/tag/v1.0.151) [Compare Source](https://redirect.github.com/serde-rs/json/compare/v1.0.150...v1.0.151) - Add RawValue::from\_string\_unchecked ([#​1331](https://redirect.github.com/serde-rs/json/issues/1331), thanks [@​WonderLawrence](https://redirect.github.com/WonderLawrence)) ### [`v1.0.150`](https://redirect.github.com/serde-rs/json/releases/tag/v1.0.150) [Compare Source](https://redirect.github.com/serde-rs/json/compare/v1.0.149...v1.0.150) - Reject non-string enum object keys ([#​1324](https://redirect.github.com/serde-rs/json/issues/1324), thanks [@​puneetdixit200](https://redirect.github.com/puneetdixit200)) </details> <details> <summary>toml-rs/toml (toml)</summary> ### [`v1.1.4`](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.3...toml-v1.1.4) [Compare Source](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.3...toml-v1.1.4) ### [`v1.1.3`](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.2...toml-v1.1.3) [Compare Source](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.2...toml-v1.1.3) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - On day 1 of the month (`* * 1 * *`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/DiamondLightSource/numtracker). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4yNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
tpoliaw
commented
Sep 3, 2026
It may have been a requirement of rstest but no longer seems to be needed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #247