diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 2057c4edb9..50c5a0428f 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -192,6 +192,7 @@ jobs: run: | ../scripts/check-doc-symbols.sh \ linux/ARCHITECTURE.md \ + linux/docs/adding-drivers.md \ linux/docs/state-management.md \ linux/docs/storage.md \ linux/docs/testing.md \ diff --git a/linux/crates/app/Cargo.toml b/linux/crates/app/Cargo.toml index e29064f3fc..8a6849cd5b 100644 --- a/linux/crates/app/Cargo.toml +++ b/linux/crates/app/Cargo.toml @@ -81,7 +81,7 @@ relm4.workspace = true rustix = { workspace = true, features = ["time"] } secrecy.workspace = true tokio.workspace = true -tokio-util = { workspace = true, features = ["rt"] } +tokio-util.workspace = true tracing.workspace = true tracing-subscriber.workspace = true uuid.workspace = true @@ -97,7 +97,7 @@ tablepro-session = { workspace = true, features = ["fakes"] } tablepro-test-fixtures.workspace = true tablepro-test-support.workspace = true tempfile.workspace = true -tokio = { workspace = true, features = ["macros", "rt", "test-util"] } +tokio = { workspace = true, features = ["rt", "test-util"] } # tokio-postgres logs through `log`, so the logging tests drive that # bridge the way it does. log = "0.4" diff --git a/linux/crates/core/Cargo.toml b/linux/crates/core/Cargo.toml index abdb754d84..b52cfa2534 100644 --- a/linux/crates/core/Cargo.toml +++ b/linux/crates/core/Cargo.toml @@ -18,14 +18,14 @@ serde.workspace = true serde_json.workspace = true sqlparser.workspace = true thiserror.workspace = true -tokio = { workspace = true, features = ["io-util", "macros", "rt", "sync", "time"] } -tokio-util = { workspace = true, features = ["rt"] } +tokio = { workspace = true, features = ["io-util", "rt"] } +tokio-util.workspace = true uuid.workspace = true [dev-dependencies] proptest.workspace = true zip.workspace = true -tokio = { workspace = true, features = ["macros", "rt", "test-util"] } +tokio = { workspace = true, features = ["rt", "test-util"] } [lints] workspace = true diff --git a/linux/crates/drivers/clickhouse/Cargo.toml b/linux/crates/drivers/clickhouse/Cargo.toml index b71c94009e..b79db0f8e0 100644 --- a/linux/crates/drivers/clickhouse/Cargo.toml +++ b/linux/crates/drivers/clickhouse/Cargo.toml @@ -22,8 +22,8 @@ secrecy.workspace = true serde.workspace = true serde_json.workspace = true sqlparser.workspace = true -tokio = { workspace = true, features = ["io-util", "macros", "rt", "sync", "time"] } -tokio-util = { workspace = true, features = ["rt"] } +tokio = { workspace = true, features = ["io-util", "rt"] } +tokio-util.workspace = true tower-service.workspace = true tracing.workspace = true uuid.workspace = true @@ -32,7 +32,7 @@ uuid.workspace = true tablepro-test-fixtures.workspace = true tablepro-test-support.workspace = true rustls.workspace = true -tokio = { workspace = true, features = ["macros", "rt-multi-thread", "test-util"] } +tokio = { workspace = true, features = ["test-util"] } [lints] workspace = true diff --git a/linux/crates/drivers/mssql/Cargo.toml b/linux/crates/drivers/mssql/Cargo.toml index b9498adeee..c225f1903c 100644 --- a/linux/crates/drivers/mssql/Cargo.toml +++ b/linux/crates/drivers/mssql/Cargo.toml @@ -18,15 +18,15 @@ deadpool.workspace = true futures-util.workspace = true secrecy.workspace = true tiberius.workspace = true -tokio = { workspace = true, features = ["macros", "rt", "sync", "time"] } -tokio-util = { workspace = true, features = ["compat", "rt"] } +tokio = { workspace = true, features = ["rt"] } +tokio-util = { workspace = true, features = ["compat"] } tracing.workspace = true uuid.workspace = true [dev-dependencies] tablepro-test-fixtures.workspace = true tablepro-test-support.workspace = true -tokio = { workspace = true, features = ["io-util", "macros", "rt-multi-thread", "test-util"] } +tokio = { workspace = true, features = ["io-util", "test-util"] } [lints] workspace = true diff --git a/linux/crates/drivers/mysql/Cargo.toml b/linux/crates/drivers/mysql/Cargo.toml index 414c9ae1c3..9d47ae179a 100644 --- a/linux/crates/drivers/mysql/Cargo.toml +++ b/linux/crates/drivers/mysql/Cargo.toml @@ -15,15 +15,15 @@ futures-util.workspace = true secrecy.workspace = true sqlx = { workspace = true, features = ["mysql", "mysql-rsa", "tls-rustls-aws-lc-rs"] } thiserror.workspace = true -tokio = { workspace = true, features = ["macros", "rt", "sync", "time"] } -tokio-util = { workspace = true, features = ["rt"] } +tokio = { workspace = true, features = ["rt"] } +tokio-util.workspace = true tracing.workspace = true [dev-dependencies] tablepro-test-fixtures.workspace = true tablepro-test-support.workspace = true tempfile.workspace = true -tokio = { workspace = true, features = ["macros", "rt-multi-thread", "test-util"] } +tokio = { workspace = true, features = ["test-util"] } tracing-subscriber.workspace = true [lints] diff --git a/linux/crates/drivers/postgres/Cargo.toml b/linux/crates/drivers/postgres/Cargo.toml index 71ab903a65..6692c78b72 100644 --- a/linux/crates/drivers/postgres/Cargo.toml +++ b/linux/crates/drivers/postgres/Cargo.toml @@ -17,10 +17,10 @@ futures-util.workspace = true postgres-protocol.workspace = true postgres-types.workspace = true secrecy.workspace = true -tokio = { workspace = true, features = ["macros", "rt", "sync", "time"] } +tokio = { workspace = true, features = ["rt"] } tokio-postgres.workspace = true tokio-postgres-rustls.workspace = true -tokio-util = { workspace = true, features = ["rt"] } +tokio-util.workspace = true tracing.workspace = true uuid.workspace = true @@ -28,7 +28,7 @@ uuid.workspace = true tablepro-test-fixtures.workspace = true tablepro-test-support.workspace = true rustls.workspace = true -tokio = { workspace = true, features = ["io-util", "macros", "rt-multi-thread", "test-util"] } +tokio = { workspace = true, features = ["io-util", "test-util"] } [lints] workspace = true diff --git a/linux/crates/drivers/sqlite/Cargo.toml b/linux/crates/drivers/sqlite/Cargo.toml index 615a9f5a37..7bad3ec1f3 100644 --- a/linux/crates/drivers/sqlite/Cargo.toml +++ b/linux/crates/drivers/sqlite/Cargo.toml @@ -16,7 +16,7 @@ futures.workspace = true libsqlite3-sys.workspace = true sqlparser.workspace = true sqlx = { workspace = true, features = ["sqlite-unbundled"] } -tokio = { workspace = true, features = ["macros", "rt", "sync", "time"] } +tokio = { workspace = true, features = ["rt"] } tokio-util.workspace = true tracing.workspace = true uuid.workspace = true diff --git a/linux/crates/net/Cargo.toml b/linux/crates/net/Cargo.toml index b21e08553e..d176f36486 100644 --- a/linux/crates/net/Cargo.toml +++ b/linux/crates/net/Cargo.toml @@ -15,7 +15,7 @@ rustls-pki-types.workspace = true rustls-platform-verifier.workspace = true socket2.workspace = true thiserror.workspace = true -tokio = { workspace = true, features = ["net", "rt", "time"] } +tokio = { workspace = true, features = ["rt"] } tracing.workspace = true [dev-dependencies] @@ -24,7 +24,7 @@ hyper-rustls.workspace = true hyper-util.workspace = true rcgen.workspace = true tempfile.workspace = true -tokio = { workspace = true, features = ["macros", "rt-multi-thread", "io-util"] } +tokio = { workspace = true, features = ["io-util"] } tokio-rustls.workspace = true tower-service.workspace = true diff --git a/linux/crates/session/Cargo.toml b/linux/crates/session/Cargo.toml index 7b7dfec6ce..34dcdd439d 100644 --- a/linux/crates/session/Cargo.toml +++ b/linux/crates/session/Cargo.toml @@ -19,8 +19,8 @@ tablepro-test-support = { workspace = true, optional = true } futures.workspace = true secrecy.workspace = true thiserror.workspace = true -tokio = { workspace = true, features = ["rt", "sync", "time"] } -tokio-util = { workspace = true, features = ["rt"] } +tokio = { workspace = true, features = ["rt"] } +tokio-util.workspace = true tracing.workspace = true uuid.workspace = true @@ -29,7 +29,7 @@ tablepro-driver-postgres.workspace = true tablepro-test-fixtures.workspace = true tablepro-test-support.workspace = true tempfile.workspace = true -tokio = { workspace = true, features = ["macros", "rt-multi-thread", "test-util", "sync"] } +tokio = { workspace = true, features = ["test-util"] } [lints] workspace = true diff --git a/linux/crates/ssh/Cargo.toml b/linux/crates/ssh/Cargo.toml index c0d846d17d..4e3825f4c5 100644 --- a/linux/crates/ssh/Cargo.toml +++ b/linux/crates/ssh/Cargo.toml @@ -13,7 +13,7 @@ futures.workspace = true rustix = { workspace = true, features = ["fs", "process"] } secrecy.workspace = true thiserror.workspace = true -tokio = { workspace = true, features = ["io-util", "process", "net", "time", "sync", "fs"] } +tokio = { workspace = true, features = ["io-util", "fs"] } tokio-util.workspace = true tracing.workspace = true uuid.workspace = true @@ -23,7 +23,7 @@ zeroize.workspace = true tablepro-test-support.workspace = true tempfile.workspace = true testcontainers.workspace = true -tokio = { workspace = true, features = ["macros", "rt", "test-util"] } +tokio = { workspace = true, features = ["rt", "test-util"] } [lints] workspace = true diff --git a/linux/crates/storage/Cargo.toml b/linux/crates/storage/Cargo.toml index 8eaeeeca36..9b5c4ffba4 100644 --- a/linux/crates/storage/Cargo.toml +++ b/linux/crates/storage/Cargo.toml @@ -13,7 +13,7 @@ secrecy.workspace = true serde.workspace = true serde_json.workspace = true thiserror.workspace = true -tokio = { workspace = true, features = ["fs", "sync"] } +tokio = { workspace = true, features = ["fs"] } uuid.workspace = true sqlx = { workspace = true, features = ["sqlite-unbundled", "migrate", "macros"] } chrono.workspace = true diff --git a/linux/crates/test-fixtures/Cargo.toml b/linux/crates/test-fixtures/Cargo.toml index 358b0b14b0..1bb3ab8b1e 100644 --- a/linux/crates/test-fixtures/Cargo.toml +++ b/linux/crates/test-fixtures/Cargo.toml @@ -12,7 +12,7 @@ tempfile.workspace = true testcontainers.workspace = true testcontainers-modules = { workspace = true, features = ["postgres", "mssql_server"] } thiserror.workspace = true -tokio = { workspace = true, features = ["fs", "io-util", "process"] } +tokio = { workspace = true, features = ["fs", "io-util"] } uuid.workspace = true [dev-dependencies] diff --git a/linux/crates/test-support/Cargo.toml b/linux/crates/test-support/Cargo.toml index 97aaae246a..119657e5c8 100644 --- a/linux/crates/test-support/Cargo.toml +++ b/linux/crates/test-support/Cargo.toml @@ -13,11 +13,11 @@ secrecy.workspace = true tempfile.workspace = true uuid.workspace = true futures.workspace = true -tokio = { workspace = true, features = ["io-util", "macros", "net", "rt", "sync", "time"] } +tokio = { workspace = true, features = ["io-util", "rt"] } tokio-util.workspace = true [dev-dependencies] -tokio = { workspace = true, features = ["macros", "rt", "rt-multi-thread", "test-util"] } +tokio = { workspace = true, features = ["rt", "test-util"] } [lints] workspace = true diff --git a/linux/docs/adding-drivers.md b/linux/docs/adding-drivers.md index 713491a6a1..0fd906c3de 100644 --- a/linux/docs/adding-drivers.md +++ b/linux/docs/adding-drivers.md @@ -54,20 +54,20 @@ tablepro-core.workspace = true tablepro-net.workspace = true async-trait.workspace = true secrecy.workspace = true -tokio = { workspace = true, features = ["macros", "rt", "sync", "time"] } -tokio-util = { workspace = true, features = ["rt"] } +tokio = { workspace = true, features = ["rt"] } +tokio-util.workspace = true tracing.workspace = true [dev-dependencies] tablepro-test-fixtures.workspace = true tablepro-test-support.workspace = true -tokio = { workspace = true, features = ["macros", "rt-multi-thread", "test-util"] } +tokio = { workspace = true, features = ["test-util"] } [lints] workspace = true ``` -A driver depends on `tablepro-core`, and on `tablepro-net` when it speaks TLS or dials TCP. `secrecy` reads the password of a password login. It never depends on GTK, on `tablepro-session`, on `tablepro-ssh` or on another driver. Add the crate to `members` and to `[workspace.dependencies]` in `linux/Cargo.toml`. +A driver depends on `tablepro-core`, and on `tablepro-net` when it speaks TLS or dials TCP. `secrecy` reads the password of a password login. It never depends on GTK, on `tablepro-session`, on `tablepro-ssh` or on another driver. Add the crate to `members` and to `[workspace.dependencies]` in `linux/Cargo.toml`. A member lists only the features its workspace entry does not already name. ## 3. `DatabaseDriver` and capabilities @@ -316,7 +316,7 @@ A run streams `ResultEvent`s into a `ResultSink`: ### Structure changes -`DdlDialect` lives in the driver's `src/ddl.rs`, implemented on the dialect type itself, so `ddl()` returns `Some(self)`. It plans every structure change the Structure tab makes, against the `TableDefinition` that `fetch_table_definition` returned: +`DdlDialect` lives in the driver's `ddl` module, as `crates/drivers/postgres/src/ddl.rs` or, once it spans files, `crates/drivers/sqlite/src/ddl/`, implemented on the dialect type itself, so `ddl()` returns `Some(self)`. It plans every structure change the Structure tab makes, against the `TableDefinition` that `fetch_table_definition` returned: | Method | What it does | |---|---| @@ -329,7 +329,7 @@ A run streams `ResultEvent`s into a `ResultSink`: | `plan_drop_table` | The default writes `DROP TABLE [IF EXISTS]