Skip to content

Initial outline of backup/restore - #294

Draft
tpoliaw wants to merge 24 commits into
mainfrom
import-export
Draft

Initial outline of backup/restore#294
tpoliaw wants to merge 24 commits into
mainfrom
import-export

Conversation

@tpoliaw

@tpoliaw tpoliaw commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Fixes #247

@codecov

codecov Bot commented Aug 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 40 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.91%. Comparing base (49dd9c6) to head (6f2341a).
⚠️ Report is 7 commits behind head on main.

Files with missing lines Patch % Lines
src/db_service.rs 0.00% 33 Missing ⚠️
src/graphql/mod.rs 0.00% 7 Missing ⚠️
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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

renovate Bot and others added 7 commits August 24, 2026 11:54
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 ([#&#8203;8300])

##### Fixed (unstable)

- time: fix alt timer cancellation and insertion race ([#&#8203;8252])

##### Documented

- runtime: remove dead link definition in Runtime::block\_on
([#&#8203;8301])

[#&#8203;8252]: https://redirect.github.com/tokio-rs/tokio/pull/8252

[#&#8203;8300]: https://redirect.github.com/tokio-rs/tokio/pull/8300

[#&#8203;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`
([#&#8203;8266])
- metrics: add task schedule latency metric ([#&#8203;7986])
- net: add `SocketAddr` methods to Unix sockets ([#&#8203;8144])

##### Changed

- io: add `#[inline]` to IO trait impls for in-memory types
([#&#8203;8242])
- net: implement UCred::pid on FreeBSD ([#&#8203;8086])
- net: support Nuttx target os ([#&#8203;8259])
- signal: refactor global variables on Windows ([#&#8203;8231])
- sync: `mpsc::{Receiver,UnboundedReceiver}` now drops waker on drop,
even if there are still senders ([#&#8203;8095])
- taskdump: support taskdumps on s390x ([#&#8203;8192])
- time: add `#[track_caller]` to `timeout_at()` ([#&#8203;8077])
- time: consolidate mutex locks on spurious poll ([#&#8203;8124])
- time: defer waker clone on spurious poll ([#&#8203;8107])
- time: move lazy-registration state into `Sleep` ([#&#8203;8132])
- tracing: remove unnecessary span clone ([#&#8203;8126])

##### Fixed

- io: do not treat zero-length reads as EOF in `Chain` ([#&#8203;8251])
- net: use getpeereid for QNX peer credentials ([#&#8203;8270])
- runtime: avoid illegal state in `FastRand` ([#&#8203;8078])
- sync: wake mpsc receiver when a queued `reserve[_many]` returns
permits ([#&#8203;8260])
- taskdump: skip double wake on `Trace::capture`/`Trace::trace_with`
([#&#8203;8043])
- time: avoid stack overflow in runtime constructor ([#&#8203;8093])
- time (alt timer): ensure timers stay in the same runtime after
`.reset()` ([#&#8203;8169])

##### IO uring (unstable)

- fs: use io-uring for `fs::try_exists` ([#&#8203;8080])
- fs: use io-uring for renaming files ([#&#8203;7800])
- rt: flush io-uring CQE in case of CQE overflow ([#&#8203;8277])

##### Documented

- docs: clarify cancel safety wording ([#&#8203;8181])
- fs: clarify `create_dir_all` succeeds if path exists ([#&#8203;8149])
- io: add warning about stdout reordering with multiple handles
([#&#8203;8276])
- net: document pipe `try_read*`/`try_write*` readiness behavior
([#&#8203;8032])
- runtime: document interaction with fork() ([#&#8203;8202])
- sync: clarify broadcast lagging semantics ([#&#8203;8239])
- sync: document memory ordering guarantees for Semaphore
([#&#8203;8119])
- task: explain why `yield_now` defers its waker ([#&#8203;8254])
- time: add panic docs to `timeout_at()` ([#&#8203;8077])
- time: fix reversed poll order in timeout doc ([#&#8203;8214])

[#&#8203;7800]: https://redirect.github.com/tokio-rs/tokio/pull/7800

[#&#8203;7986]: https://redirect.github.com/tokio-rs/tokio/pull/7986

[#&#8203;8032]: https://redirect.github.com/tokio-rs/tokio/pull/8032

[#&#8203;8043]: https://redirect.github.com/tokio-rs/tokio/pull/8043

[#&#8203;8077]: https://redirect.github.com/tokio-rs/tokio/pull/8077

[#&#8203;8078]: https://redirect.github.com/tokio-rs/tokio/pull/8078

[#&#8203;8080]: https://redirect.github.com/tokio-rs/tokio/pull/8080

[#&#8203;8086]: https://redirect.github.com/tokio-rs/tokio/pull/8086

[#&#8203;8093]: https://redirect.github.com/tokio-rs/tokio/pull/8093

[#&#8203;8095]: https://redirect.github.com/tokio-rs/tokio/pull/8095

[#&#8203;8107]: https://redirect.github.com/tokio-rs/tokio/pull/8107

[#&#8203;8119]: https://redirect.github.com/tokio-rs/tokio/pull/8119

[#&#8203;8124]: https://redirect.github.com/tokio-rs/tokio/pull/8124

[#&#8203;8126]: https://redirect.github.com/tokio-rs/tokio/pull/8126

[#&#8203;8132]: https://redirect.github.com/tokio-rs/tokio/pull/8132

[#&#8203;8144]: https://redirect.github.com/tokio-rs/tokio/pull/8144

[#&#8203;8149]: https://redirect.github.com/tokio-rs/tokio/pull/8149

[#&#8203;8169]: https://redirect.github.com/tokio-rs/tokio/pull/8169

[#&#8203;8181]: https://redirect.github.com/tokio-rs/tokio/pull/8181

[#&#8203;8192]: https://redirect.github.com/tokio-rs/tokio/pull/8192

[#&#8203;8193]: https://redirect.github.com/tokio-rs/tokio/pull/8193

[#&#8203;8202]: https://redirect.github.com/tokio-rs/tokio/pull/8202

[#&#8203;8214]: https://redirect.github.com/tokio-rs/tokio/pull/8214

[#&#8203;8231]: https://redirect.github.com/tokio-rs/tokio/pull/8231

[#&#8203;8239]: https://redirect.github.com/tokio-rs/tokio/pull/8239

[#&#8203;8242]: https://redirect.github.com/tokio-rs/tokio/pull/8242

[#&#8203;8251]: https://redirect.github.com/tokio-rs/tokio/pull/8251

[#&#8203;8254]: https://redirect.github.com/tokio-rs/tokio/pull/8254

[#&#8203;8259]: https://redirect.github.com/tokio-rs/tokio/pull/8259

[#&#8203;8260]: https://redirect.github.com/tokio-rs/tokio/pull/8260

[#&#8203;8266]: https://redirect.github.com/tokio-rs/tokio/pull/8266

[#&#8203;8270]: https://redirect.github.com/tokio-rs/tokio/pull/8270

[#&#8203;8276]: https://redirect.github.com/tokio-rs/tokio/pull/8276

[#&#8203;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
([#&#8203;8222])

##### Fixed (unstable)

- taskdump: remove crate disambiguators from output ([#&#8203;8264])

[#&#8203;8264]: https://redirect.github.com/tokio-rs/tokio/pull/8264

[#&#8203;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()` ([#&#8203;8062])
- sync: notify receivers in mpsc `OwnedPermit::release()` method
([#&#8203;8075])
- sync: require that an `RwLock` has `max_readers != 0` ([#&#8203;8076])
- sync: return `Empty` from `try_recv()` when mpsc is closed with
outstanding permits ([#&#8203;8074])

[#&#8203;8062]: https://redirect.github.com/tokio-rs/tokio/pull/8062

[#&#8203;8074]: https://redirect.github.com/tokio-rs/tokio/pull/8074

[#&#8203;8075]: https://redirect.github.com/tokio-rs/tokio/pull/8075

[#&#8203;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
([#&#8203;7431]), due to [its performance impact][#&#8203;8065].
([#&#8203;8100])

[#&#8203;7431]: https://redirect.github.com/tokio-rs/tokio/pull/7431

[#&#8203;8065]: https://redirect.github.com/tokio-rs/tokio/pull/8065

[#&#8203;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).

- \[[#&#8203;3383]]: feat: create `sqlx.toml` format
\[\[[@&#8203;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.
- \[[#&#8203;3486]]: fix(logs): Correct spelling of aquired\_after\_secs
tracing field
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- Breaking behavior change: implementations parsing `tracing` logs from
SQLx will need to update the spelling.
- \[[#&#8203;3495]]: feat(postgres): remove lifetime from
`PgAdvisoryLockGuard`
\[\[[@&#8203;bonsairobo](https://redirect.github.com/bonsairobo)]]
- \[[#&#8203;3526]]: Return \&mut Self from the migrator set\_ methods
\[\[[@&#8203;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.
- \[[#&#8203;3541]]: Postgres: force generic plan for better nullability
inference.
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- Breaking change: may alter the output of the `query!()` macros for
certain queries in Postgres.
- \[[#&#8203;3613]]: fix: `RawSql` lifetime issues
\[\[[@&#8203;abonander](https://redirect.github.com/abonander)]]
  - Breaking change: adds `DB` type parameter to all methods of `RawSql`
- \[[#&#8203;3670]]: Bump ipnetwork to v0.21.1
\[\[[@&#8203;BeauGieskens](https://redirect.github.com/BeauGieskens)]]
- \[[#&#8203;3674]]: Implement `Decode`, `Encode` and `Type` for `Box`,
`Arc`, `Cow` and `Rc`
\[\[[@&#8203;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: [#&#8203;3674
(comment)](https://redirect.github.com/launchbadge/sqlx/pull/3674#discussion_r2008611502)
- \[[#&#8203;3723]]: Add SqlStr
\[\[[@&#8203;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 \[[#&#8203;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.
- \[[#&#8203;3800]]: Escape PostgreSQL Options
\[\[[@&#8203;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.
- \[[#&#8203;3821]]: Groundwork for 0.9.0-alpha.1
\[\[[@&#8203;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.
- \[[#&#8203;3924]]: breaking(mysql): assume all non-binary collations
compatible with `str`
\[\[[@&#8203;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.
- \[[#&#8203;3928]]: breaking(sqlite): `libsqlite3-sys` versioning,
feature flags, safety changes
\[\[[@&#8203;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.
- \[[#&#8203;3949]]: Postgres: move `PgLTree::from` to
`From<Vec<PgLTreeLabel>>` implementation
\[\[[@&#8203;JerryQ17](https://redirect.github.com/JerryQ17)]]
- \[[#&#8203;3957]]: refactor(sqlite): do not borrow bound values,
delete lifetime on `SqliteArguments`
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3958]]: refactor(any): Remove lifetime parameter from
AnyArguments
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3960]]: refactor(core): Remove lifetime parameter from
Arguments trait
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3993]]: Unescape PostgreSQL passfile password
\[\[[@&#8203;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.
- \[[#&#8203;4008]]: make `#[derive(sqlx::Type)]` automatically generate
`impl PgHasArrayType` by default for newtype structs
\[\[[@&#8203;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.
- \[[#&#8203;4077]]: breaking: make `offline` optional to allow building
without `serde`
\[\[[@&#8203;CathalMullan](https://redirect.github.com/CathalMullan)]]
- \[[#&#8203;4094]]: Bump bit-vec to v0.8
\[\[[@&#8203;zennozenith](https://redirect.github.com/zennozenith)]]
- \[[#&#8203;4142]]: feat(mysql): add mysql-rsa feature for non-TLS RSA
auth \[\[[@&#8203;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.
- \[[#&#8203;4255]]: breaking(any+mysql): correctly convert text and
blob types to `AnyTypeInfo`
\[\[[@&#8203;abonander](https://redirect.github.com/abonander)]]

##### Added

- \[[#&#8203;3641]]: feat(Postgres): support nested domain types
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;3651]]: Add PgBindIter for encoding and use it as the
implementation encoding &\[T]
\[\[[@&#8203;tylerhawkes](https://redirect.github.com/tylerhawkes)]]
- \[[#&#8203;3675]]: feat: implement Encode, Decode, Type for `Arc<str>`
and `Arc<[u8]>` (and `Rc` equivalents)
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;3791]]: Smol+async global executor 1.80 dev
\[\[[@&#8203;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.
- \[[#&#8203;3859]]: Add more JsonRawValue encode/decode impls.
\[\[[@&#8203;Dirbaio](https://redirect.github.com/Dirbaio)]]
- \[[#&#8203;3881]]: CLi: made cli-lib modules publicly available for
other crates
\[\[[@&#8203;silvestrpredko](https://redirect.github.com/silvestrpredko)]]
- \[[#&#8203;3889]]: Compile-time support for external drivers
\[\[[@&#8203;bobozaur](https://redirect.github.com/bobozaur)]]
- \[[#&#8203;3917]]: feat(sqlx.toml): support SQLite extensions in
macros and sqlx-cli
\[\[[@&#8203;djarb](https://redirect.github.com/djarb)]]
- \[[#&#8203;3918]]: Feature: Add exclusion violation error kind
\[\[[@&#8203;barskern](https://redirect.github.com/barskern)]]
- \[[#&#8203;3971]]: Allow single-field named structs to be transparent
\[\[[@&#8203;Xiretza](https://redirect.github.com/Xiretza)]]
- \[[#&#8203;4015]]: feat(sqlite): `no_tx` migration support
\[\[[@&#8203;AlexTMjugador](https://redirect.github.com/AlexTMjugador)]]
- \[[#&#8203;4020]]: Add `Migrator::with_migrations()` constructor
\[\[[@&#8203;xb284524239](https://redirect.github.com/xb284524239)]]
- \[[#&#8203;3846]]: Add the possibility to skip migrations
\[\[[@&#8203;Dosenpfand](https://redirect.github.com/Dosenpfand)]]
- \[[#&#8203;4107]]: Add SQLite extension entrypoint config to
`sqlx.toml`, update SQLite extension example
\[\[[@&#8203;supleed2](https://redirect.github.com/supleed2)]]
- \[[#&#8203;4118]]: \[postgres] Display line number in error message
\[\[[@&#8203;mousetail](https://redirect.github.com/mousetail)]]
- \[[#&#8203;4123]]: feat: add `Json::into_inner()`
\[\[[@&#8203;chrxn1c](https://redirect.github.com/chrxn1c)]]
- \[[#&#8203;4153]]: Add on unimplemented diagnostic to `SqlStr`
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;4167]]: add sqlite serialize/deserialize example
\[\[[@&#8203;mattrighetti](https://redirect.github.com/mattrighetti)]]
- \[[#&#8203;4228]]: sqlx-postgres: Make `PgNotification` struct clone
\[\[[@&#8203;michaelvanstraten](https://redirect.github.com/michaelvanstraten)]]

##### Changed

- \[[#&#8203;3525]]: Remove unnecessary boxfutures
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;3867]]: sqlx-postgres: Bump etcetera to 0.10.0
\[\[[@&#8203;miniduikboot](https://redirect.github.com/miniduikboot)]]
- \[[#&#8203;3709]]: chore: replace once\_cell `OnceCell`/`Lazy` with
std `OnceLock`/`LazyLock`
\[\[[@&#8203;paolobarbolini](https://redirect.github.com/paolobarbolini)]]
- \[[#&#8203;3890]]: feat: Unify `Debug` implementations across `PgRow`,
`MySqlRow` and `SqliteRow`
\[\[[@&#8203;davidcornu](https://redirect.github.com/davidcornu)]]
- \[[#&#8203;3911]]: chore: upgrade async-io to v2.4.1
\[\[[@&#8203;zebrapurring](https://redirect.github.com/zebrapurring)]]
- \[[#&#8203;3938]]: Move `QueryLogger` back
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;3956]]: chore(sqlite): Remove unused test of removed git2
feature \[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3962]]: Give SQLX\_OFFLINE\_DIR from environment precedence
in macros
\[\[[@&#8203;psionic-k](https://redirect.github.com/psionic-k)]]
- \[[#&#8203;3968]]: chore(ci): Add timeouts to ci jobs
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;4002]]: sqlx-postgres(tests): cleanup 2 unit tests.
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;4022]]: refactor: tweaks after
[#&#8203;3791](https://redirect.github.com/launchbadge/sqlx/issues/3791)
\[\[[@&#8203;abonander](https://redirect.github.com/abonander)]]
- \[[#&#8203;4257]]: Prefer to give real data to `.bind()` in
`README.md`
\[\[[@&#8203;sobolevn](https://redirect.github.com/sobolevn)]]
- \[[#&#8203;4042]]: Update to webpki-roots 1
\[\[[@&#8203;tottoto](https://redirect.github.com/tottoto)]]
- \[[#&#8203;4072]]: chore: update hashlink to v0.11.0
\[\[[@&#8203;anmolitor](https://redirect.github.com/anmolitor)]]
- \[[#&#8203;4143]]: Bump whoami to v2
\[\[[@&#8203;tisonkun](https://redirect.github.com/tisonkun)]]
- \[[#&#8203;4161]]: sqlx-sqlite: relax libsqlite3-sys constraint to
allow 0.36.x
\[\[[@&#8203;darioAnongba](https://redirect.github.com/darioAnongba)]]
- \[[#&#8203;4173]]: ci: check direct minimal versions
\[\[[@&#8203;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.
- \[[#&#8203;4189]]: Bump flume to 0.12.0
\[\[[@&#8203;opoplawski](https://redirect.github.com/opoplawski)]]
- \[[#&#8203;4223]]: test(sqlite): add regression test for ORDER BY +
LIMIT nullability
([#&#8203;4147](https://redirect.github.com/launchbadge/sqlx/issues/4147))
\[\[[@&#8203;barry3406](https://redirect.github.com/barry3406)]]
- \[[#&#8203;4230]]: chore: Update to cargo\_metadata 0.23
\[\[[@&#8203;tottoto](https://redirect.github.com/tottoto)]]
- \[[#&#8203;4233]]: Change reference to dotenvy
\[\[[@&#8203;graemer957](https://redirect.github.com/graemer957)]]
- \[[#&#8203;4235]]: chore: Update to validator 0.20
\[\[[@&#8203;tottoto](https://redirect.github.com/tottoto)]]
- \[[#&#8203;4253]]: chore: update example to axum 0.8
\[\[[@&#8203;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

- \[[#&#8203;3840]]: Fix docs.rs build of sqlx-sqlite
\[\[[@&#8203;gferon](https://redirect.github.com/gferon)]]
- \[[#&#8203;3848]]: fix(macros): don't mutate environment variables
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;3856]]: fix(macros): slightly improve unsupported type
error message \[\[[@&#8203;dyc3](https://redirect.github.com/dyc3)]]
- \[[#&#8203;3857]]: fix(mysql): validate parameter count for prepared
statements \[\[[@&#8203;cvzx](https://redirect.github.com/cvzx)]]
- \[[#&#8203;3861]]: Fix NoHostnameTlsVerifier for rustls 0.23.24 and
above \[\[[@&#8203;elichai](https://redirect.github.com/elichai)]]
- \[[#&#8203;3863]]: Use unnamed statement in pg when not persistent
\[\[[@&#8203;ThomWright](https://redirect.github.com/ThomWright)]]
- \[[#&#8203;3874]]: Further reduce dependency on `futures` and
`futures-util`
\[\[[@&#8203;paolobarbolini](https://redirect.github.com/paolobarbolini)]]
- \[[#&#8203;3886]]: fix: use Executor::fetch in QueryAs::fetch
\[\[[@&#8203;bobozaur](https://redirect.github.com/bobozaur)]]
- \[[#&#8203;3910]]: feat(ok): add correct handling of ok packets in
MYSQL implementation
\[\[[@&#8203;0xfourzerofour](https://redirect.github.com/0xfourzerofour)]]
- \[[#&#8203;3914]]: fix: regenerate test certificates
\[\[[@&#8203;abonander](https://redirect.github.com/abonander)]]
- \[[#&#8203;3915]]: fix: spec\_error is used by try\_from derive
\[\[[@&#8203;saiintbrisson](https://redirect.github.com/saiintbrisson)]]
- \[[#&#8203;3919]]: fix\[sqlx-postgres]: do a checked\_mul to prevent
panic'ing
\[\[[@&#8203;nhatcher-frequenz](https://redirect.github.com/nhatcher-frequenz)]]
- \[[#&#8203;3923]]: sqlx-mysql: Fix bug in cleanup test db's.
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;3950]]: chore: Fix warnings for custom postgres\_## cfg
flags \[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3952]]: `Pool.close`: close all connections before
returning \[\[[@&#8203;jpmelos](https://redirect.github.com/jpmelos)]]
- \[[#&#8203;3975]]: fix documentation for rustls native root
certificates
\[\[[@&#8203;2ndDerivative](https://redirect.github.com/2ndDerivative)]]
- \[[#&#8203;3977]]: refactor(ci): Use separate job for postgres ssl
auth tests
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3980]]: Correctly `ROLLBACK` transaction when dropped
during `BEGIN`.
\[\[[@&#8203;kevincox](https://redirect.github.com/kevincox)]]
- \[[#&#8203;3981]]: SQLite: fix transaction level accounting with bad
custom command.
\[\[[@&#8203;kevincox](https://redirect.github.com/kevincox)]]
- \[[#&#8203;3986]]: chore(core): Fix docstring for Query::try\_bind
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3987]]: chore(deps): Resolve deprecation warning for chrono
Date and ymd methods
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3988]]: refactor(sqlite): Resolve duplicate test target
warning for macros.rs
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3989]]: chore(deps): Set default-features=false on sqlx in
workspace.dependencies
\[\[[@&#8203;iamjpotts](https://redirect.github.com/iamjpotts)]]
- \[[#&#8203;3991]]: fix(sqlite): regression when decoding nulls
\[\[[@&#8203;abonander](https://redirect.github.com/abonander)]]
- \[[#&#8203;4006]]: PostgreSQL SASL – run SHA256 in a blocking executor
\[\[[@&#8203;ThomWright](https://redirect.github.com/ThomWright)]]
- \[[#&#8203;4007]]: fix(compose): use OS-assigned ports for all
conatiners
\[\[[@&#8203;papaj-na-wrotkach](https://redirect.github.com/papaj-na-wrotkach)]]
- \[[#&#8203;4009]]: Drop cached db connections in macros upon hitting
an error
\[\[[@&#8203;swlynch99](https://redirect.github.com/swlynch99)]]
- \[[#&#8203;4024]]: fix(sqlite) Migrate revert with no-transaction
\[\[[@&#8203;Dosenpfand](https://redirect.github.com/Dosenpfand)]]
- \[[#&#8203;4027]]: native tls handshake: build TlsConnector in
blocking threadpool
\[\[[@&#8203;daviduebler](https://redirect.github.com/daviduebler)]]
- \[[#&#8203;4053]]: fix(macros): smarter `.env` loading, caching, and
invalidation
\[\[[@&#8203;abonander](https://redirect.github.com/abonander)]]
- Additional credit to
\[\[[@&#8203;AlexTMjugador](https://redirect.github.com/AlexTMjugador)]]
(\[[#&#8203;4018]]) and
\[\[[@&#8203;Diggsey](https://redirect.github.com/Diggsey)]]
(\[[#&#8203;4039]]) for their proposed solutions
    which served as a useful comparison.
- \[[#&#8203;4068]]: Fix typo in migration example from 'uesrs' to
'users'
\[\[[@&#8203;squidpickles](https://redirect.github.com/squidpickles)]]
- \[[#&#8203;4069]]: fix some spelling issues
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;4086]]: fix(mysql): Work around for Issue
[#&#8203;2206](https://redirect.github.com/launchbadge/sqlx/issues/2206)
(ColumnNotFound error when querying)
\[\[[@&#8203;duelafn](https://redirect.github.com/duelafn)]]
- \[[#&#8203;4088]]: (Fix) Handle nullability of SQLite rowid alias
columns \[\[[@&#8203;Lege19](https://redirect.github.com/Lege19)]]
- \[[#&#8203;4100]]: postgres: update pgpass path on windows
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;4134]]: fix CI: replace removed macOS runner, deprecated
use of `Command::cargo_bin()`
\[\[[@&#8203;abonander](https://redirect.github.com/abonander)]]
- \[[#&#8203;4136]]: Ensure Deterministic Migration Order
\[\[[@&#8203;aoengin](https://redirect.github.com/aoengin)]]
- \[[#&#8203;4158]]: Fix panic in JSONB decoder on invalid version byte
\[\[[@&#8203;jrey8343](https://redirect.github.com/jrey8343)]]
- \[[#&#8203;4165]]: sqlx-postgres: fix correct operator precedence in
byte length check
\[\[[@&#8203;cuiweixie](https://redirect.github.com/cuiweixie)]]
- \[[#&#8203;4171]]: fix(postgres): remove home crate in favor of
std::env::home\_dir
\[\[[@&#8203;ricochet](https://redirect.github.com/ricochet)]]
- \[[#&#8203;4172]]: fix(sqlx-cli): bump openssl minimum to 0.10.46
\[\[[@&#8203;ricochet](https://redirect.github.com/ricochet)]]
- \[[#&#8203;4176]]: fix(mysql): return error instead of panic on
truncated OK packet
\[\[[@&#8203;cvzx](https://redirect.github.com/cvzx)]]
- \[[#&#8203;4199]]: fix(postgres): make advisory lock cancel safe
\[\[[@&#8203;joeydewaal](https://redirect.github.com/joeydewaal)]]
- \[[#&#8203;4201]]: Fix SCRAM password `SASLprep`
\[\[[@&#8203;var4yn](https://redirect.github.com/var4yn)]]
- \[[#&#8203;4202]]: fix: replace from\_utf8\_unchecked with
from\_utf8\_lossy in SqliteError
\[\[[@&#8203;joaquinhuigomez](https://redirect.github.com/joaquinhuigomez)]]
- \[[#&#8203;4203]]: fix: use sqlite3\_value\_text for REGEXP to match
SQLite coercion
\[\[[@&#8203;joaquinhuigomez](https://redirect.github.com/joaquinhuigomez)]]
- \[[#&#8203;4219]]: sqlite: lossily coerce invalid UTF-8 in custom
collation callback
\[\[[@&#8203;joaquinhuigomez](https://redirect.github.com/joaquinhuigomez)]]
- \[[#&#8203;4221]]: fix: replace `from_utf8_unchecked` with `from_utf8`
in SQLite column name handling
\[\[[@&#8203;barry3406](https://redirect.github.com/barry3406)]]
- \[[#&#8203;4226]]: fix(postgres): use non-prepared statements for
metadata queries
\[\[[@&#8203;abonander](https://redirect.github.com/abonander)]]
- \[[#&#8203;4227]]: fix(macros-core): update unstable proc\_macro APIs
for recent nightly
\[\[[@&#8203;barry3406](https://redirect.github.com/barry3406)]]
- \[[#&#8203;4234]]: fix: Use correct path in error when failing to
create tmp dir in prepare
\[\[[@&#8203;Miesvanderlippe](https://redirect.github.com/Miesvanderlippe)]]
- \[[#&#8203;4245]]: fix(mysql): repair caching\_sha2\_password
fast-auth path
\[\[[@&#8203;altmannmarcelo](https://redirect.github.com/altmannmarcelo)]]
- \[[#&#8203;4251]]: fix(tls): potential deadlock in
`StdSocket::poll_ready()`
\[\[[@&#8203;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

[#&#8203;3821]: https://redirect.github.com/launchbadge/sqlx/pull/3821

[#&#8203;3383]: https://redirect.github.com/launchbadge/sqlx/pull/3383

[#&#8203;3486]: https://redirect.github.com/launchbadge/sqlx/pull/3486

[#&#8203;3495]: https://redirect.github.com/launchbadge/sqlx/pull/3495

[#&#8203;3525]: https://redirect.github.com/launchbadge/sqlx/pull/3525

[#&#8203;3526]: https://redirect.github.com/launchbadge/sqlx/pull/3526

[#&#8203;3541]: https://redirect.github.com/launchbadge/sqlx/pull/3541

[#&#8203;3613]: https://redirect.github.com/launchbadge/sqlx/pull/3613

[#&#8203;3641]: https://redirect.github.com/launchbadge/sqlx/pull/3641

[#&#8203;3651]: https://redirect.github.com/launchbadge/sqlx/pull/3651

[#&#8203;3670]: https://redirect.github.com/launchbadge/sqlx/pull/3670

[#&#8203;3674]: https://redirect.github.com/launchbadge/sqlx/pull/3674

[#&#8203;3675]: https://redirect.github.com/launchbadge/sqlx/pull/3675

[#&#8203;3709]: https://redirect.github.com/launchbadge/sqlx/pull/3709

[#&#8203;3723]: https://redirect.github.com/launchbadge/sqlx/pull/3723

[#&#8203;3791]: https://redirect.github.com/launchbadge/sqlx/pull/3791

[#&#8203;3800]: https://redirect.github.com/launchbadge/sqlx/pull/3800

[#&#8203;3821]: https://redirect.github.com/launchbadge/sqlx/pull/3821

[#&#8203;3840]: https://redirect.github.com/launchbadge/sqlx/pull/3840

[#&#8203;3848]: https://redirect.github.com/launchbadge/sqlx/pull/3848

[#&#8203;3856]: https://redirect.github.com/launchbadge/sqlx/pull/3856

[#&#8203;3857]: https://redirect.github.com/launchbadge/sqlx/pull/3857

[#&#8203;3859]: https://redirect.github.com/launchbadge/sqlx/pull/3859

[#&#8203;3861]: https://redirect.github.com/launchbadge/sqlx/pull/3861

[#&#8203;3863]: https://redirect.github.com/launchbadge/sqlx/pull/3863

[#&#8203;3867]: https://redirect.github.com/launchbadge/sqlx/pull/3867

[#&#8203;3874]: https://redirect.github.com/launchbadge/sqlx/pull/3874

[#&#8203;3881]: https://redirect.github.com/launchbadge/sqlx/pull/3881

[#&#8203;3886]: https://redirect.github.com/launchbadge/sqlx/pull/3886

[#&#8203;3889]: https://redirect.github.com/launchbadge/sqlx/pull/3889

[#&#8203;3890]: https://redirect.github.com/launchbadge/sqlx/pull/3890

[#&#8203;3910]: https://redirect.github.com/launchbadge/sqlx/pull/3910

[#&#8203;3911]: https://redirect.github.com/launchbadge/sqlx/pull/3911

[#&#8203;3914]: https://redirect.github.com/launchbadge/sqlx/pull/3914

[#&#8203;3915]: https://redirect.github.com/launchbadge/sqlx/pull/3915

[#&#8203;3917]: https://redirect.github.com/launchbadge/sqlx/pull/3917

[#&#8203;3918]: https://redirect.github.com/launchbadge/sqlx/pull/3918

[#&#8203;3919]: https://redirect.github.com/launchbadge/sqlx/pull/3919

[#&#8203;3923]: https://redirect.github.com/launchbadge/sqlx/pull/3923

[#&#8203;3924]: https://redirect.github.com/launchbadge/sqlx/pull/3924

[#&#8203;3928]: https://redirect.github.com/launchbadge/sqlx/pull/3928

[#&#8203;3938]: https://redirect.github.com/launchbadge/sqlx/pull/3938

[#&#8203;3949]: https://redirect.github.com/launchbadge/sqlx/pull/3949

[#&#8203;3950]: https://redirect.github.com/launchbadge/sqlx/pull/3950

[#&#8203;3952]: https://redirect.github.com/launchbadge/sqlx/pull/3952

[#&#8203;3956]: https://redirect.github.com/launchbadge/sqlx/pull/3956

[#&#8203;3957]: https://redirect.github.com/launchbadge/sqlx/pull/3957

[#&#8203;3958]: https://redirect.github.com/launchbadge/sqlx/pull/3958

[#&#8203;3960]: https://redirect.github.com/launchbadge/sqlx/pull/3960

[#&#8203;3962]: https://redirect.github.com/launchbadge/sqlx/pull/3962

[#&#8203;3968]: https://redirect.github.com/launchbadge/sqlx/pull/3968

[#&#8203;3971]: https://redirect.github.com/launchbadge/sqlx/pull/3971

[#&#8203;3975]: https://redirect.github.com/launchbadge/sqlx/pull/3975

[#&#8203;3977]: https://redirect.github.com/launchbadge/sqlx/pull/3977

[#&#8203;3980]: https://redirect.github.com/launchbadge/sqlx/pull/3980

[#&#8203;3981]: https://redirect.github.com/launchbadge/sqlx/pull/3981

[#&#8203;3986]: https://redirect.github.com/launchbadge/sqlx/pull/3986

[#&#8203;3987]: https://redirect.github.com/launchbadge/sqlx/pull/3987

[#&#8203;3988]: https://redirect.github.com/launchbadge/sqlx/pull/3988

[#&#8203;3989]: https://redirect.github.com/launchbadge/sqlx/pull/3989

[#&#8203;3991]: https://redirect.github.com/launchbadge/sqlx/pull/3991

[#&#8203;4002]: https://redirect.github.com/launchbadge/sqlx/pull/4002

[#&#8203;4006]: https://redirect.github.com/launchbadge/sqlx/pull/4006

[#&#8203;4007]: https://redirect.github.com/launchbadge/sqlx/pull/4007

[#&#8203;4008]: https://redirect.github.com/launchbadge/sqlx/pull/4008

[#&#8203;4009]: https://redirect.github.com/launchbadge/sqlx/pull/4009

[#&#8203;4015]: https://redirect.github.com/launchbadge/sqlx/pull/4015

[#&#8203;4018]: https://redirect.github.com/launchbadge/sqlx/pull/4018

[#&#8203;4020]: https://redirect.github.com/launchbadge/sqlx/pull/4020

[#&#8203;4022]: https://redirect.github.com/launchbadge/sqlx/pull/4022

[#&#8203;4024]: https://redirect.github.com/launchbadge/sqlx/pull/4024

[#&#8203;4027]: https://redirect.github.com/launchbadge/sqlx/pull/4027

[#&#8203;4039]: https://redirect.github.com/launchbadge/sqlx/pull/4039

[#&#8203;4053]: https://redirect.github.com/launchbadge/sqlx/pull/4053

[#&#8203;3846]: https://redirect.github.com/launchbadge/sqlx/pull/3846

[#&#8203;3993]: https://redirect.github.com/launchbadge/sqlx/pull/3993

[#&#8203;4042]: https://redirect.github.com/launchbadge/sqlx/pull/4042

[#&#8203;4068]: https://redirect.github.com/launchbadge/sqlx/pull/4068

[#&#8203;4069]: https://redirect.github.com/launchbadge/sqlx/pull/4069

[#&#8203;4072]: https://redirect.github.com/launchbadge/sqlx/pull/4072

[#&#8203;4077]: https://redirect.github.com/launchbadge/sqlx/pull/4077

[#&#8203;4086]: https://redirect.github.com/launchbadge/sqlx/pull/4086

[#&#8203;4088]: https://redirect.github.com/launchbadge/sqlx/pull/4088

[#&#8203;4094]: https://redirect.github.com/launchbadge/sqlx/pull/4094

[#&#8203;4100]: https://redirect.github.com/launchbadge/sqlx/pull/4100

[#&#8203;4107]: https://redirect.github.com/launchbadge/sqlx/pull/4107

[#&#8203;4118]: https://redirect.github.com/launchbadge/sqlx/pull/4118

[#&#8203;4123]: https://redirect.github.com/launchbadge/sqlx/pull/4123

[#&#8203;4134]: https://redirect.github.com/launchbadge/sqlx/pull/4134

[#&#8203;4136]: https://redirect.github.com/launchbadge/sqlx/pull/4136

[#&#8203;4142]: https://redirect.github.com/launchbadge/sqlx/pull/4142

[#&#8203;4143]: https://redirect.github.com/launchbadge/sqlx/pull/4143

[#&#8203;4153]: https://redirect.github.com/launchbadge/sqlx/pull/4153

[#&#8203;4158]: https://redirect.github.com/launchbadge/sqlx/pull/4158

[#&#8203;4161]: https://redirect.github.com/launchbadge/sqlx/pull/4161

[#&#8203;4165]: https://redirect.github.com/launchbadge/sqlx/pull/4165

[#&#8203;4167]: https://redirect.github.com/launchbadge/sqlx/pull/4167

[#&#8203;4171]: https://redirect.github.com/launchbadge/sqlx/pull/4171

[#&#8203;4172]: https://redirect.github.com/launchbadge/sqlx/pull/4172

[#&#8203;4173]: https://redirect.github.com/launchbadge/sqlx/pull/4173

[#&#8203;4176]: https://redirect.github.com/launchbadge/sqlx/pull/4176

[#&#8203;4189]: https://redirect.github.com/launchbadge/sqlx/pull/4189

[#&#8203;4199]: https://redirect.github.com/launchbadge/sqlx/pull/4199

[#&#8203;4201]: https://redirect.github.com/launchbadge/sqlx/pull/4201

[#&#8203;4202]: https://redirect.github.com/launchbadge/sqlx/pull/4202

[#&#8203;4203]: https://redirect.github.com/launchbadge/sqlx/pull/4203

[#&#8203;4219]: https://redirect.github.com/launchbadge/sqlx/pull/4219

[#&#8203;4221]: https://redirect.github.com/launchbadge/sqlx/pull/4221

[#&#8203;4223]: https://redirect.github.com/launchbadge/sqlx/pull/4223

[#&#8203;4226]: https://redirect.github.com/launchbadge/sqlx/pull/4226

[#&#8203;4227]: https://redirect.github.com/launchbadge/sqlx/pull/4227

[#&#8203;4228]: https://redirect.github.com/launchbadge/sqlx/pull/4228

[#&#8203;4230]: https://redirect.github.com/launchbadge/sqlx/pull/4230

[#&#8203;4233]: https://redirect.github.com/launchbadge/sqlx/pull/4233

[#&#8203;4234]: https://redirect.github.com/launchbadge/sqlx/pull/4234

[#&#8203;4235]: https://redirect.github.com/launchbadge/sqlx/pull/4235

[#&#8203;4245]: https://redirect.github.com/launchbadge/sqlx/pull/4245

[#&#8203;4251]: https://redirect.github.com/launchbadge/sqlx/pull/4251

[#&#8203;4253]: https://redirect.github.com/launchbadge/sqlx/pull/4253

[#&#8203;4255]: https://redirect.github.com/launchbadge/sqlx/pull/4255

[#&#8203;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` [#&#8203;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`
[#&#8203;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
([#&#8203;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.

[#&#8203;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.

[#&#8203;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.

[#&#8203;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

[#&#8203;3021](https://redirect.github.com/open-telemetry/opentelemetry-rust/issues/3021).

[#&#8203;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`).
[#&#8203;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.
[#&#8203;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
\[[#&#8203;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
[#&#8203;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
([#&#8203;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
([#&#8203;258](https://redirect.github.com/tokio-rs/tracing-opentelemetry/pull/258))
- mimimize package size
([#&#8203;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
[@&#8203;SAY-5](https://redirect.github.com/SAY-5) in
[#&#8203;1787](https://redirect.github.com/chronotope/chrono/pull/1787)
- tz\_data: fix tzdata locations on Android by
[@&#8203;caruschalalamove](https://redirect.github.com/caruschalalamove)
in
[#&#8203;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.
([#&#8203;3032](https://redirect.github.com/rust-lang/futures-rs/issues/3032))
- Updato `syn` to 3.
([#&#8203;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.
([#&#8203;3020](https://redirect.github.com/rust-lang/futures-rs/issues/3020))
- Fix unsound `Send` impl for `IterPinRef` and `Iter`.
([#&#8203;3003](https://redirect.github.com/rust-lang/futures-rs/issues/3003))
- Fix stacked borrows violation in `compat01as03` implementation.
([#&#8203;3012](https://redirect.github.com/rust-lang/futures-rs/issues/3012))
- Fix memory leak in `FuturesUnordered::IntoIter`.
([#&#8203;3005](https://redirect.github.com/rust-lang/futures-rs/issues/3005))
- Add `portable-atomic-alloc` feature and use it in `FuturesUnordered`.
([#&#8203;3007](https://redirect.github.com/rust-lang/futures-rs/issues/3007))
- Re-export `alloc::task::Wake`.
([#&#8203;3010](https://redirect.github.com/rust-lang/futures-rs/issues/3010))
- Update `spin` to 0.12.
([#&#8203;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
([#&#8203;1331](https://redirect.github.com/serde-rs/json/issues/1331),
thanks
[@&#8203;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
([#&#8203;1324](https://redirect.github.com/serde-rs/json/issues/1324),
thanks
[@&#8203;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>
Comment thread src/db_service.rs Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add backup endpoint

2 participants