1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
[]
= "rightsize-modules"
= "0.4.0"
= true
= true
= true
= true
= "Preconfigured rightsize containers — Redis, Memcached, ArangoDB, MongoDB, Redpanda, Kafka, SpringCloudConfig, PostgreSQL, MySQL, Apache Pinot, RabbitMQ, MariaDB, WireMock, ClickHouse, Keycloak, Neo4j, Floci, Apache Flink"
= true
= true
= ["testing", "containers", "integration-testing"]
= ["development-tools::testing", "asynchronous"]
[]
= ["backend-msb", "backend-docker"]
= ["dep:rightsize-msb"]
= ["dep:rightsize-docker"]
# Integration tests that boot a real container against a real backend (msb or
# docker) and exercise a real client/protocol round-trip — selected the same way
# the backend crates' `sandbox-it` feature is (see rightsize-msb/Cargo.toml for the
# rationale): `cargo test -p rightsize-modules --features sandbox-it` is the whole
# invocation, no `--ignored` flag to remember.
= []
[]
= { = "../rightsize", = "0.4.0" }
= { = "../rightsize-msb", = "0.4.0", = true }
= { = "../rightsize-docker", = "0.4.0", = true }
= { = true }
= { = true }
= { = true }
[]
= { = "../rightsize-msb" }
= { = "../rightsize-docker" }
= { = true, = ["rt-multi-thread", "macros"] }
# Parses the reaping ledger's run record in the contract suite instead of
# substring-matching its (pretty-printed) JSON.
= { = true }
# Real-client round-trip proof for the Postgres/MySQL module ITs — test-only, does
# not enter the runtime dependency budget (the four shipped crates' own runtime deps
# are what that budget covers).
# Pinned to 0.34 (not the latest 0.36) because mysql_async >= 0.35 pulls in
# mysql_common >= 0.35, whose derive macro depends on darling >= 0.23 — which
# requires rustc 1.88, above this workspace's MSRV (1.85, `rust-toolchain.toml`).
# 0.34 is the newest line still buildable on the pinned toolchain. `minimal-rust`
# (no TLS, no binlog, no bigdecimal/time/frunk) is all the module IT needs — a
# plaintext local connection and a CREATE/INSERT/SELECT round-trip — and it drops
# the `native-tls` transitive tree that otherwise requires a newer rustc than this
# workspace's MSRV.
= { = "0.34", = false, = [
"minimal-rust",
] }
= "0.7"
# Schema POST/GET round-trip for the Pinot module IT — already in the workspace tree
# as a runtime dep of rightsize-msb, reused here as a plain blocking HTTP client for
# test assertions instead of adding a second HTTP crate.
= { = true }
# Transitive-dependency MSRV pins — NOT used directly by this crate's own code.
# `Cargo.lock` is now committed (see the workspace root `.gitignore`), which is the
# durable fix for reproducible builds in general going forward; these two pins
# are still required on top of that for anyone who deletes/regenerates the
# lockfile from scratch (`rm Cargo.lock && cargo generate-lockfile`) rather than
# trusting the committed one, or who runs `cargo update` — re-verified directly,
# with a `cargo clean -p <crate>` before each rebuild so a stale cached artifact
# from a prior pin can't mask a real failure:
# - `mysql_common`'s unconditional build-dependency on `subprocess`: without this
# pin, a from-scratch resolve picks 0.2.15, and `cargo build --all-targets` fails
# with 8 `E0658` errors ("`let` expressions in this position are unstable") in
# `subprocess-0.2.15/src/{communicate,popen}.rs` — genuine let-chains syntax
# requiring a nightly feature/rustc 1.88, on the pinned 1.85 toolchain.
# - `tokio-postgres` -> `url` -> `idna` -> `idna_adapter`: without this pin, a
# from-scratch resolve picks 1.2.2, which pulls in the `icu_*` 2.2.0 crates, and
# `cargo build` fails outright with "rustc 1.85.1 is not supported by ...
# idna_adapter@1.2.2 requires rustc 1.86" (and five `icu_*` crates alongside it).
#
# The `time` pin this crate previously carried alongside these two is dropped: it
# does not appear anywhere in a from-scratch resolve of this graph at all (confirmed
# via `cargo tree -i time`, empty) — `mysql_async` 0.34.2's `minimal-rust` feature
# set does not pull it in transitively, so pinning it was a no-op.
= "=0.2.9"
= "=1.2.0"