workspace deps hygiene: minimal features, default-members sans tui; drop utoipa-scalar + /scalar; ci test --workspace; .sqlx dockerignore

This commit is contained in:
2026-10-26 04:25:10 +01:00
parent ae0c04a4f3
commit 9215f3db69
32 changed files with 177 additions and 223 deletions

View File

@@ -5,20 +5,22 @@ edition.workspace = true
[dependencies]
config = { workspace = true }
k-ap = { version = "0.5.1", registry = "gitea" }
k-ap = { workspace = true }
domain = { workspace = true }
axum = { workspace = true }
serde = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true, features = ["v4", "serde"] }
chrono = { workspace = true, features = ["clock", "serde"] }
anyhow = { workspace = true }
tracing = { workspace = true }
async-trait = { workspace = true }
url = { version = "2", features = ["serde"] }
ammonia = "4"
url = { workspace = true, features = ["serde"] }
ammonia = { workspace = true }
tokio = { workspace = true, features = ["time", "sync"] }
[dev-dependencies]
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros"] }
domain = { workspace = true, features = ["test-helpers"] }

View File

@@ -8,9 +8,9 @@ config = { workspace = true }
async-trait = { workspace = true }
domain = { workspace = true }
anyhow = { workspace = true }
chrono = { workspace = true }
chrono = { workspace = true, features = ["clock"] }
uuid = { workspace = true }
serde = { workspace = true }
jsonwebtoken = "9"
argon2 = { version = "0.5", features = ["std"] }
rand_core = { version = "0.6", features = ["getrandom"] }
serde = { workspace = true, features = ["derive"] }
jsonwebtoken = { workspace = true }
argon2 = { workspace = true, features = ["std"] }
rand_core = { workspace = true, features = ["getrandom"] }

View File

@@ -7,5 +7,8 @@ edition.workspace = true
config = { workspace = true }
domain = { workspace = true }
async-trait = { workspace = true }
tokio = { workspace = true }
tokio = { workspace = true, features = ["sync"] }
futures = { workspace = true }
[dev-dependencies]
tokio = { workspace = true, features = ["rt", "macros"] }

View File

@@ -13,4 +13,4 @@ async-stream = { workspace = true }
[dev-dependencies]
domain = { workspace = true, features = ["test-helpers"] }
uuid = { workspace = true }
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros"] }

View File

@@ -11,31 +11,30 @@ default = ["federation"]
federation = ["application/federation"]
[dependencies]
tower-http = { version = "0.6.8", features = ["cors", "fs", "trace", "tracing"] }
infer = "0.19.0"
percent-encoding = "2"
axum-governor = "2"
tower-http = { workspace = true, features = ["cors", "fs", "trace", "tracing"] }
infer = { workspace = true }
percent-encoding = { workspace = true }
axum-governor = { workspace = true }
axum = { workspace = true }
serde = { workspace = true }
axum = { workspace = true, features = ["macros", "multipart", "http1", "json", "query", "form", "tokio", "matched-path", "original-uri", "tower-log", "tracing"] }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
tracing = { workspace = true }
tokio = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true, features = ["v4", "serde"] }
chrono = { workspace = true, features = ["clock", "serde"] }
chrono-tz = { workspace = true }
futures = { workspace = true }
api-types = { workspace = true }
domain = { workspace = true }
application = { workspace = true }
askama = { version = "0.16.0" }
utoipa = { version = "5.5.0", features = ["axum_extras", "uuid"] }
utoipa-scalar = { version = "0.3.0", features = ["axum"], default-features = false }
utoipa-swagger-ui = { version = "9.0.2", features = ["axum", "vendored"] }
askama = { workspace = true }
utoipa = { workspace = true, features = ["axum_extras", "uuid"] }
utoipa-swagger-ui = { workspace = true, features = ["axum", "vendored"] }
[dev-dependencies]
bytes = { workspace = true }
futures = { workspace = true }
tower = { version = "0.5", features = ["util"] }
tower = { workspace = true, features = ["util"] }
tokio = { workspace = true, features = ["rt", "macros"] }
domain = { workspace = true, features = ["test-helpers"] }

View File

@@ -16,7 +16,6 @@ use utoipa::{
Modify, OpenApi,
openapi::security::{Http, HttpAuthScheme, SecurityScheme},
};
use utoipa_scalar::{Scalar, Servable};
use utoipa_swagger_ui::SwaggerUi;
struct SecurityAddon;
@@ -62,9 +61,7 @@ pub fn spec() -> utoipa::openapi::OpenApi {
}
pub fn serve(router: Router) -> Router {
tracing::info!("API docs at /docs (Swagger) and /scalar");
tracing::info!("API docs at /docs (Swagger)");
let spec = spec();
router
.merge(SwaggerUi::new("/docs").url("/openapi.json", spec.clone()))
.merge(Scalar::with_url("/scalar", spec))
router.merge(SwaggerUi::new("/docs").url("/openapi.json", spec))
}

View File

@@ -9,12 +9,12 @@ domain = { workspace = true }
async-trait = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }
tokio = { workspace = true }
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp"] }
ravif = { version = "0.11", default-features = false }
webp = "0.3"
tokio = { workspace = true, features = ["rt"] }
image = { workspace = true, features = ["jpeg", "png", "webp"] }
ravif = { workspace = true }
webp = { workspace = true }
[dev-dependencies]
object-storage = { workspace = true }
object_store = { workspace = true }
uuid = { workspace = true }
uuid = { workspace = true, features = ["v4"] }

View File

@@ -10,4 +10,4 @@ xlsx = ["dep:calamine"]
domain = { workspace = true }
serde_json = { workspace = true }
csv = { workspace = true }
calamine = { version = "0.35", optional = true }
calamine = { workspace = true, optional = true }

View File

@@ -5,5 +5,5 @@ edition.workspace = true
[dependencies]
domain = { workspace = true }
serde = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }

View File

@@ -8,5 +8,5 @@ config = { workspace = true }
anyhow = { workspace = true }
async-trait = { workspace = true }
reqwest = { workspace = true }
serde = { workspace = true }
serde = { workspace = true, features = ["derive"] }
domain = { workspace = true }

View File

@@ -5,7 +5,7 @@ edition.workspace = true
[dependencies]
config = { workspace = true }
async-nats = "0.48.0"
async-nats = { workspace = true }
domain = { workspace = true }
event-payload = { workspace = true }
@@ -13,7 +13,7 @@ async-trait = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
tokio = { workspace = true }
uuid = { workspace = true, features = ["serde"] }
chrono = { workspace = true, features = ["serde"] }
tokio = { workspace = true, features = ["rt", "sync"] }
futures = { workspace = true }

View File

@@ -14,5 +14,5 @@ futures = { workspace = true }
object_store = { workspace = true }
[dev-dependencies]
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros"] }
uuid = { workspace = true }

View File

@@ -4,7 +4,7 @@ version = "0.1.0"
edition.workspace = true
[dependencies]
rss-feed = { package = "rss", version = "2", features = ["atom"] }
rss-feed = { workspace = true, features = ["atom"] }
domain = { workspace = true }
[dev-dependencies]

View File

@@ -6,17 +6,17 @@ edition.workspace = true
[dependencies]
sqlx = { workspace = true }
activitypub = { workspace = true }
k-ap = { version = "0.5.1", registry = "gitea" }
k-ap = { workspace = true }
sqlite = { workspace = true }
domain = { workspace = true }
anyhow = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true, features = ["v4", "serde"] }
chrono = { workspace = true, features = ["clock", "serde"] }
tracing = { workspace = true }
async-trait = { workspace = true }
[dev-dependencies]
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros"] }
domain = { workspace = true, features = ["test-helpers"] }
uuid = { workspace = true }

View File

@@ -12,11 +12,11 @@ event-payload = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
anyhow = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true, features = ["v4", "serde"] }
chrono = { workspace = true, features = ["clock", "serde"] }
tracing = { workspace = true }
async-trait = { workspace = true }
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt", "sync", "time", "macros", "rt-multi-thread"] }
futures = { workspace = true }
async-stream = { workspace = true }

View File

@@ -7,6 +7,6 @@ edition.workspace = true
config = { workspace = true }
domain = { workspace = true }
reqwest = { workspace = true }
serde = { workspace = true }
serde = { workspace = true, features = ["derive"] }
async-trait = { workspace = true }
chrono = { workspace = true }

View File

@@ -4,9 +4,9 @@ version = "0.1.0"
edition.workspace = true
[dependencies]
serde = { workspace = true }
serde = { workspace = true, features = ["derive"] }
uuid = { workspace = true }
utoipa = { version = "5.5.0", features = ["axum_extras", "uuid"] }
utoipa = { workspace = true, features = ["axum_extras", "uuid"] }
domain = { workspace = true }
[dev-dependencies]

View File

@@ -7,11 +7,11 @@ edition.workspace = true
async-trait = { workspace = true }
domain = { workspace = true }
config = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true, features = ["v4"] }
chrono = { workspace = true, features = ["clock"] }
tracing = { workspace = true }
futures = { workspace = true }
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt", "sync", "time", "macros"] }
sha2 = { workspace = true }
rand = { workspace = true }
hex = { workspace = true }
@@ -22,5 +22,5 @@ xlsx = []
federation = []
[dev-dependencies]
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt-multi-thread"] }
domain = { workspace = true, features = ["test-helpers"] }

View File

@@ -33,11 +33,11 @@ sqlx = { workspace = true }
anyhow = { workspace = true }
async-trait = { workspace = true }
axum = { workspace = true }
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros", "sync", "time", "net"] }
futures = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] }
tracing-subscriber = { workspace = true, features = ["env-filter", "fmt", "ansi"] }
rustls = { workspace = true, features = ["ring", "std", "tls12", "logging"] }
nats = { workspace = true, optional = true }
activitypub = { workspace = true, optional = true }
@@ -45,8 +45,8 @@ sqlite-federation = { workspace = true, optional = true }
[dev-dependencies]
reqwest = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true, features = ["clock"] }
uuid = { workspace = true, features = ["v4"] }
serde_json = { workspace = true }
tower = { version = "0.5", features = ["util"] }
tower = { workspace = true, features = ["util"] }
domain = { workspace = true, features = ["test-helpers"] }

View File

@@ -252,7 +252,6 @@ async fn feeds_and_openapi_are_served() {
("/openapi.json", 200),
("/docs", 303),
("/docs/", 200),
("/scalar", 200),
] {
let uri = expand(&seed, template);
let (status, _, _) = send(&seed.router, get(&uri, None)).await;

View File

@@ -5,7 +5,7 @@ version = "0.1.0"
[dependencies]
thiserror.workspace = true
serde.workspace = true
serde = { workspace = true, features = ["derive"] }
figment.workspace = true
tracing.workspace = true

View File

@@ -4,20 +4,20 @@ version = "0.1.0"
edition.workspace = true
[dependencies]
uuid = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true, features = ["v4", "v5", "serde"] }
chrono = { workspace = true, features = ["clock", "serde"] }
async-trait = { workspace = true }
thiserror = { workspace = true }
bytes = { workspace = true }
futures = { workspace = true }
serde = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
email_address = "0.2.9"
email_address = { workspace = true }
[dev-dependencies]
domain = { path = ".", features = ["test-helpers"] }
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros"] }
[features]
test-helpers = []

View File

@@ -5,7 +5,7 @@ edition.workspace = true
[dependencies]
domain = { workspace = true }
serde = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
serde = { workspace = true, features = ["derive"] }
chrono = { workspace = true, features = ["serde"] }
uuid = { workspace = true, features = ["serde"] }
serde_json = { workspace = true }

View File

@@ -16,8 +16,8 @@ sqlite-federation = ["federation"]
[dependencies]
bootstrap = { workspace = true }
config = { workspace = true }
axum = { workspace = true }
tokio = { workspace = true }
axum = { workspace = true, features = ["http1", "tokio"] }
tokio = { workspace = true, features = ["rt-multi-thread", "macros", "net"] }
anyhow = { workspace = true }
dotenvy = { workspace = true }
tracing = { workspace = true }

View File

@@ -13,9 +13,9 @@ linux-zbus = [
windows = ["dep:windows-native-keyring-store"]
[dependencies]
ratatui = "0.30.0"
keyring-core = "1.0.0"
directories = "6"
ratatui = { workspace = true }
keyring-core = { workspace = true }
directories = { workspace = true }
csv = { workspace = true }
apple-native-keyring-store = { version = "1.0.0", optional = true, features = [
@@ -26,11 +26,11 @@ windows-native-keyring-store = { version = "1.0.0", optional = true }
api-types = { workspace = true }
reqwest = { workspace = true }
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] }
serde = { workspace = true }
rustls = { workspace = true, features = ["ring", "std", "tls12", "logging"] }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
tokio = { workspace = true }
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "sync", "macros", "time"] }
anyhow = { workspace = true }
uuid = { workspace = true }
uuid = { workspace = true, features = ["serde"] }
thiserror = { workspace = true }

View File

@@ -14,7 +14,7 @@ sqlite-federation = ["federation"]
[dependencies]
bootstrap = { workspace = true }
config = { workspace = true }
tokio = { workspace = true, features = ["signal"] }
tokio = { workspace = true, features = ["rt-multi-thread", "macros", "signal", "sync"] }
anyhow = { workspace = true }
dotenvy = { workspace = true }
tracing = { workspace = true }