From 3f62ba62390c4434e168d6558abb16d4bf476a95 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Thu, 23 May 2024 16:33:12 +0200 Subject: [PATCH 01/13] Remove opentelemetry --- Cargo.lock | 355 +++------------------------ Cargo.toml | 15 -- crates/utils/src/settings/structs.rs | 4 - src/lib.rs | 44 +--- src/main.rs | 14 +- src/telemetry.rs | 47 ---- 6 files changed, 46 insertions(+), 433 deletions(-) delete mode 100644 src/telemetry.rs diff --git a/Cargo.lock b/Cargo.lock index 07c607cb0a..20b1b6a59d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -35,7 +35,7 @@ dependencies = [ "http-signature-normalization", "http-signature-normalization-reqwest", "httpdate", - "itertools 0.12.1", + "itertools", "moka", "once_cell", "openssl", @@ -761,7 +761,7 @@ dependencies = [ "bitflags 2.5.0", "cexpr", "clang-sys", - "itertools 0.12.1", + "itertools", "lazy_static", "lazycell", "log", @@ -1108,18 +1108,6 @@ dependencies = [ "yaml-rust", ] -[[package]] -name = "console-api" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2895653b4d9f1538a83970077cb01dfc77a4810524e51a110944688e916b18e" -dependencies = [ - "prost 0.11.9", - "prost-types 0.11.9", - "tonic 0.9.2", - "tracing-core", -] - [[package]] name = "console-api" version = "0.6.0" @@ -1127,49 +1115,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd326812b3fd01da5bb1af7d340d0d555fd3d4b641e7f1dfcf5962a902952787" dependencies = [ "futures-core", - "prost 0.12.6", - "prost-types 0.12.6", + "prost", + "prost-types", "tonic 0.10.2", "tracing-core", ] -[[package]] -name = "console-subscriber" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4cf42660ac07fcebed809cfe561dd8730bcd35b075215e6479c516bcd0d11cb" -dependencies = [ - "console-api 0.5.0", - "crossbeam-channel", - "crossbeam-utils", - "futures", - "hdrhistogram", - "humantime", - "prost-types 0.11.9", - "serde", - "serde_json", - "thread_local", - "tokio", - "tokio-stream", - "tonic 0.9.2", - "tracing", - "tracing-core", - "tracing-subscriber", -] - [[package]] name = "console-subscriber" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7481d4c57092cd1c19dd541b92bdce883de840df30aa5d03fd48a3935c01842e" dependencies = [ - "console-api 0.6.0", + "console-api", "crossbeam-channel", "crossbeam-utils", "futures-task", "hdrhistogram", "humantime", - "prost-types 0.12.6", + "prost-types", "serde", "serde_json", "thread_local", @@ -2616,15 +2580,6 @@ version = "1.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.12.1" @@ -2816,7 +2771,7 @@ dependencies = [ "html2md", "html2text", "http 0.2.12", - "itertools 0.12.1", + "itertools", "lemmy_api_common", "lemmy_db_schema", "lemmy_db_views", @@ -3006,7 +2961,6 @@ dependencies = [ "chrono", "clap", "clokwerk", - "console-subscriber 0.1.10", "diesel", "diesel-async", "futures-util", @@ -3018,8 +2972,6 @@ dependencies = [ "lemmy_federate", "lemmy_routes", "lemmy_utils", - "opentelemetry 0.19.0", - "opentelemetry-otlp 0.12.0", "pict-rs", "pretty_assertions", "prometheus", @@ -3032,8 +2984,7 @@ dependencies = [ "tracing", "tracing-actix-web", "tracing-error", - "tracing-log 0.2.0", - "tracing-opentelemetry 0.19.0", + "tracing-log", "tracing-subscriber", "url", ] @@ -3052,7 +3003,7 @@ dependencies = [ "futures", "html2text", "http 0.2.12", - "itertools 0.12.1", + "itertools", "lettre", "markdown-it", "once_cell", @@ -3602,33 +3553,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "opentelemetry" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf9b1c4e9a6c4de793c632496fa490bdc0e1eea73f0c91394f7b6990935d22" -dependencies = [ - "async-trait", - "crossbeam-channel", - "futures", - "js-sys", - "lazy_static", - "percent-encoding", - "pin-project", - "rand", - "thiserror", -] - -[[package]] -name = "opentelemetry" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4b8347cc26099d3aeee044065ecc3ae11469796b4d65d065a23a584ed92a6f" -dependencies = [ - "opentelemetry_api", - "opentelemetry_sdk 0.19.0", -] - [[package]] name = "opentelemetry" version = "0.22.0" @@ -3644,24 +3568,6 @@ dependencies = [ "urlencoding", ] -[[package]] -name = "opentelemetry-otlp" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8af72d59a4484654ea8eb183fea5ae4eb6a41d7ac3e3bae5f4d2a282a3a7d3ca" -dependencies = [ - "async-trait", - "futures", - "futures-util", - "http 0.2.12", - "opentelemetry 0.19.0", - "opentelemetry-proto 0.2.0", - "prost 0.11.9", - "thiserror", - "tokio", - "tonic 0.8.3", -] - [[package]] name = "opentelemetry-otlp" version = "0.15.0" @@ -3671,38 +3577,25 @@ dependencies = [ "async-trait", "futures-core", "http 0.2.12", - "opentelemetry 0.22.0", - "opentelemetry-proto 0.5.0", + "opentelemetry", + "opentelemetry-proto", "opentelemetry-semantic-conventions", - "opentelemetry_sdk 0.22.1", - "prost 0.12.6", + "opentelemetry_sdk", + "prost", "thiserror", "tokio", "tonic 0.11.0", ] -[[package]] -name = "opentelemetry-proto" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045f8eea8c0fa19f7d48e7bc3128a39c2e5c533d5c61298c548dfefc1064474c" -dependencies = [ - "futures", - "futures-util", - "opentelemetry 0.19.0", - "prost 0.11.9", - "tonic 0.8.3", -] - [[package]] name = "opentelemetry-proto" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4" dependencies = [ - "opentelemetry 0.22.0", - "opentelemetry_sdk 0.22.1", - "prost 0.12.6", + "opentelemetry", + "opentelemetry_sdk", + "prost", "tonic 0.11.0", ] @@ -3712,44 +3605,6 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910" -[[package]] -name = "opentelemetry_api" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed41783a5bf567688eb38372f2b7a8530f5a607a4b49d38dd7573236c23ca7e2" -dependencies = [ - "fnv", - "futures-channel", - "futures-util", - "indexmap 1.9.3", - "once_cell", - "pin-project-lite", - "thiserror", - "urlencoding", -] - -[[package]] -name = "opentelemetry_sdk" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b3a2a91fdbfdd4d212c0dcc2ab540de2c2bcbbd90be17de7a7daf8822d010c1" -dependencies = [ - "async-trait", - "crossbeam-channel", - "dashmap", - "fnv", - "futures-channel", - "futures-executor", - "futures-util", - "once_cell", - "opentelemetry_api", - "percent-encoding", - "rand", - "thiserror", - "tokio", - "tokio-stream", -] - [[package]] name = "opentelemetry_sdk" version = "0.22.1" @@ -3763,7 +3618,7 @@ dependencies = [ "futures-util", "glob", "once_cell", - "opentelemetry 0.22.0", + "opentelemetry", "ordered-float", "percent-encoding", "rand", @@ -3965,7 +3820,7 @@ dependencies = [ "clap", "color-eyre", "config", - "console-subscriber 0.2.0", + "console-subscriber", "dashmap", "diesel", "diesel-async", @@ -3976,9 +3831,9 @@ dependencies = [ "metrics", "metrics-exporter-prometheus", "mime", - "opentelemetry 0.22.0", - "opentelemetry-otlp 0.15.0", - "opentelemetry_sdk 0.22.1", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry_sdk", "pin-project-lite", "refinery", "reqwest 0.12.4", @@ -4006,8 +3861,8 @@ dependencies = [ "tracing", "tracing-actix-web", "tracing-error", - "tracing-log 0.2.0", - "tracing-opentelemetry 0.23.0", + "tracing-log", + "tracing-opentelemetry", "tracing-subscriber", "url", "uuid", @@ -4228,16 +4083,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "prost" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" -dependencies = [ - "bytes", - "prost-derive 0.11.9", -] - [[package]] name = "prost" version = "0.12.6" @@ -4245,20 +4090,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ "bytes", - "prost-derive 0.12.6", -] - -[[package]] -name = "prost-derive" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" -dependencies = [ - "anyhow", - "itertools 0.10.5", - "proc-macro2", - "quote", - "syn 1.0.109", + "prost-derive", ] [[package]] @@ -4268,28 +4100,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools", "proc-macro2", "quote", "syn 2.0.65", ] -[[package]] -name = "prost-types" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" -dependencies = [ - "prost 0.11.9", -] - [[package]] name = "prost-types" version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" dependencies = [ - "prost 0.12.6", + "prost", ] [[package]] @@ -4657,12 +4480,10 @@ dependencies = [ "async-trait", "getrandom", "matchit 0.7.3", - "opentelemetry 0.16.0", "reqwest 0.11.27", "reqwest-middleware 0.2.5", "task-local-extensions", "tracing", - "tracing-opentelemetry 0.16.0", ] [[package]] @@ -5860,66 +5681,6 @@ dependencies = [ "winnow 0.6.8", ] -[[package]] -name = "tonic" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.13.1", - "bytes", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.28", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost 0.11.9", - "prost-derive 0.11.9", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tower-layer", - "tower-service", - "tracing", - "tracing-futures", -] - -[[package]] -name = "tonic" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" -dependencies = [ - "async-trait", - "axum", - "base64 0.21.7", - "bytes", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.28", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost 0.11.9", - "tokio", - "tokio-stream", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "tonic" version = "0.10.2" @@ -5938,7 +5699,7 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost 0.12.6", + "prost", "tokio", "tokio-stream", "tower", @@ -5965,7 +5726,7 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost 0.12.6", + "prost", "tokio", "tokio-stream", "tower", @@ -6042,10 +5803,10 @@ checksum = "fa069bd1503dd526ee793bb3fce408895136c95fc86d2edb2acf1c646d7f0684" dependencies = [ "actix-web", "mutually_exclusive_features", - "opentelemetry 0.22.0", + "opentelemetry", "pin-project", "tracing", - "tracing-opentelemetry 0.23.0", + "tracing-opentelemetry", "uuid", ] @@ -6080,27 +5841,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -6112,33 +5852,6 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-opentelemetry" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffbf13a0f8b054a4e59df3a173b818e9c6177c02789871f2073977fd0062076" -dependencies = [ - "opentelemetry 0.16.0", - "tracing", - "tracing-core", - "tracing-log 0.1.4", - "tracing-subscriber", -] - -[[package]] -name = "tracing-opentelemetry" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00a39dcf9bfc1742fa4d6215253b33a6e474be78275884c216fc2a06267b3600" -dependencies = [ - "once_cell", - "opentelemetry 0.19.0", - "tracing", - "tracing-core", - "tracing-log 0.1.4", - "tracing-subscriber", -] - [[package]] name = "tracing-opentelemetry" version = "0.23.0" @@ -6147,12 +5860,12 @@ checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284" dependencies = [ "js-sys", "once_cell", - "opentelemetry 0.22.0", - "opentelemetry_sdk 0.22.1", + "opentelemetry", + "opentelemetry_sdk", "smallvec", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", "tracing-subscriber", "web-time", ] @@ -6184,7 +5897,7 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", "tracing-serde", ] diff --git a/Cargo.toml b/Cargo.toml index 1494aaf472..612d845bf3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,15 +37,6 @@ debug = 0 [features] embed-pictrs = ["pict-rs"] -# This feature requires building with `tokio_unstable` flag, see documentation: -# https://docs.rs/tokio/latest/tokio/#unstable-features -console = [ - "console-subscriber", - "opentelemetry", - "opentelemetry-otlp", - "tracing-opentelemetry", - "reqwest-tracing/opentelemetry_0_16", -] json-log = ["tracing-subscriber/json"] default = [] @@ -150,8 +141,6 @@ itertools = "0.12.1" futures = "0.3.30" http = "0.2.12" rosetta-i18n = "0.1.3" -opentelemetry = { version = "0.19.0", features = ["rt-tokio"] } -tracing-opentelemetry = { version = "0.19.0" } ts-rs = { version = "7.1.1", features = [ "serde-compat", "chrono-impl", @@ -192,10 +181,6 @@ reqwest-middleware = { workspace = true } reqwest-tracing = { workspace = true } clokwerk = { workspace = true } serde_json = { workspace = true } -tracing-opentelemetry = { workspace = true, optional = true } -opentelemetry = { workspace = true, optional = true } -console-subscriber = { version = "0.1.10", optional = true } -opentelemetry-otlp = { version = "0.12.0", optional = true } pict-rs = { version = "0.5.13", optional = true } tokio.workspace = true actix-cors = "0.6.5" diff --git a/crates/utils/src/settings/structs.rs b/crates/utils/src/settings/structs.rs index 91a5b37f40..15c1f4faec 100644 --- a/crates/utils/src/settings/structs.rs +++ b/crates/utils/src/settings/structs.rs @@ -38,10 +38,6 @@ pub struct Settings { /// Whether the site is available over TLS. Needs to be true for federation to work. #[default(true)] pub tls_enabled: bool, - /// Set the URL for opentelemetry exports. If you do not have an opentelemetry collector, do not set this option - #[default(None)] - #[doku(skip)] - pub opentelemetry_url: Option, /// The number of activitypub federation workers that can be in-flight concurrently #[default(0)] pub worker_count: usize, diff --git a/src/lib.rs b/src/lib.rs index 85e2110a60..a2fed0657a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,8 +4,6 @@ pub mod prometheus_metrics; pub mod root_span_builder; pub mod scheduled_tasks; pub mod session_middleware; -#[cfg(feature = "console")] -pub mod telemetry; use crate::{ code_migrations::run_advanced_migrations, @@ -55,14 +53,9 @@ use prometheus_metrics::serve_prometheus; use reqwest_middleware::ClientBuilder; use reqwest_tracing::TracingMiddleware; use serde_json::json; -use std::{env, ops::Deref}; +use std::ops::Deref; use tokio::signal::unix::SignalKind; -use tracing::subscriber::set_global_default; use tracing_actix_web::TracingLogger; -use tracing_error::ErrorLayer; -use tracing_log::LogTracer; -use tracing_subscriber::{filter::Targets, layer::SubscriberExt, Layer, Registry}; -use url::Url; #[derive(Parser, Debug)] #[command( @@ -351,38 +344,3 @@ fn cors_config(settings: &Settings) -> Cors { .max_age(3600), } } - -pub fn init_logging(opentelemetry_url: &Option) -> LemmyResult<()> { - LogTracer::init()?; - - let log_description = env::var("RUST_LOG").unwrap_or_else(|_| "info".into()); - - let targets = log_description - .trim() - .trim_matches('"') - .parse::()?; - - let format_layer = { - #[cfg(feature = "json-log")] - let layer = tracing_subscriber::fmt::layer().with_ansi(false).json(); - #[cfg(not(feature = "json-log"))] - let layer = tracing_subscriber::fmt::layer().with_ansi(false); - - layer.with_filter(targets.clone()) - }; - - let subscriber = Registry::default() - .with(format_layer) - .with(ErrorLayer::default()); - - if let Some(_url) = opentelemetry_url { - #[cfg(feature = "console")] - telemetry::init_tracing(_url.as_ref(), subscriber, targets)?; - #[cfg(not(feature = "console"))] - tracing::error!("Feature `console` must be enabled for opentelemetry tracing"); - } else { - set_global_default(subscriber)?; - } - - Ok(()) -} diff --git a/src/main.rs b/src/main.rs index dd17d6eb8e..e450544f4e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,18 @@ use clap::Parser; -use lemmy_server::{init_logging, start_lemmy_server, CmdArgs}; -use lemmy_utils::{error::LemmyResult, settings::SETTINGS}; +use lemmy_server::{start_lemmy_server, CmdArgs}; +use lemmy_utils::error::LemmyResult; +use tracing::{level_filters::LevelFilter}; +use tracing_subscriber::EnvFilter; #[tokio::main] pub async fn main() -> LemmyResult<()> { - init_logging(&SETTINGS.opentelemetry_url)?; + let filter = EnvFilter::builder() + .with_default_directive(LevelFilter::INFO.into()) + .from_env_lossy(); + tracing_subscriber::fmt() + .with_env_filter(filter) + .init(); + let args = CmdArgs::parse(); #[cfg(not(feature = "embed-pictrs"))] diff --git a/src/telemetry.rs b/src/telemetry.rs deleted file mode 100644 index a7a1ac8093..0000000000 --- a/src/telemetry.rs +++ /dev/null @@ -1,47 +0,0 @@ -use console_subscriber::ConsoleLayer; -use lemmy_utils::error::LemmyResult; -use opentelemetry::{ - sdk::{propagation::TraceContextPropagator, Resource}, - KeyValue, -}; -use opentelemetry_otlp::WithExportConfig; -use tracing::{subscriber::set_global_default, Subscriber}; -use tracing_subscriber::{filter::Targets, layer::SubscriberExt, registry::LookupSpan, Layer}; - -pub fn init_tracing(opentelemetry_url: &str, subscriber: S, targets: Targets) -> LemmyResult<()> -where - S: Subscriber + for<'a> LookupSpan<'a> + Send + Sync + 'static, -{ - opentelemetry::global::set_text_map_propagator(TraceContextPropagator::new()); - - let console_layer = ConsoleLayer::builder() - .with_default_env() - .server_addr(([0, 0, 0, 0], 6669)) - .event_buffer_capacity(1024 * 1024) - .spawn(); - - let subscriber = subscriber.with(console_layer); - - let tracer = opentelemetry_otlp::new_pipeline() - .tracing() - .with_trace_config( - opentelemetry::sdk::trace::config() - .with_resource(Resource::new(vec![KeyValue::new("service.name", "lemmy")])), - ) - .with_exporter( - opentelemetry_otlp::new_exporter() - .tonic() - .with_endpoint(opentelemetry_url), - ) - .install_batch(opentelemetry::runtime::Tokio)?; - - let otel_layer = tracing_opentelemetry::layer() - .with_tracer(tracer) - .with_filter(targets); - - let subscriber = subscriber.with(otel_layer); - - set_global_default(subscriber)?; - - Ok(()) -} From 244aaedb7795cf68068cfc217abcc397d3bdf2f1 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Thu, 23 May 2024 16:43:51 +0200 Subject: [PATCH 02/13] remove unused deps, use backtrace --- Cargo.lock | 3 --- Cargo.toml | 4 ---- crates/utils/Cargo.toml | 2 -- crates/utils/src/error.rs | 11 +++++------ 4 files changed, 5 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 20b1b6a59d..d63e8ed8e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2983,8 +2983,6 @@ dependencies = [ "tokio", "tracing", "tracing-actix-web", - "tracing-error", - "tracing-log", "tracing-subscriber", "url", ] @@ -3021,7 +3019,6 @@ dependencies = [ "strum_macros", "tokio", "tracing", - "tracing-error", "ts-rs", "url", "urlencoding", diff --git a/Cargo.toml b/Cargo.toml index 612d845bf3..7548b65d3a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -108,8 +108,6 @@ actix-web = { version = "4.5.1", default-features = false, features = [ ] } tracing = "0.1.40" tracing-actix-web = { version = "0.7.10", default-features = false } -tracing-error = "0.2.0" -tracing-log = "0.2.0" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = { version = "2.5.0", features = ["serde"] } reqwest = { version = "0.11.27", features = ["json", "blocking", "gzip"] } @@ -172,8 +170,6 @@ diesel-async = { workspace = true } actix-web = { workspace = true } tracing = { workspace = true } tracing-actix-web = { workspace = true } -tracing-error = { workspace = true } -tracing-log = { workspace = true } tracing-subscriber = { workspace = true } url = { workspace = true } reqwest = { workspace = true } diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index 3834c3a477..f651326a9b 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -32,7 +32,6 @@ full = [ "dep:actix-web", "dep:serde_json", "dep:anyhow", - "dep:tracing-error", "dep:http", "dep:deser-hjson", "dep:regex", @@ -55,7 +54,6 @@ full = [ [dependencies] regex = { workspace = true, optional = true } tracing = { workspace = true, optional = true } -tracing-error = { workspace = true, optional = true } itertools = { workspace = true, optional = true } serde = { workspace = true } serde_json = { workspace = true, optional = true } diff --git a/crates/utils/src/error.rs b/crates/utils/src/error.rs index 324c08ccbe..fa92dcaf61 100644 --- a/crates/utils/src/error.rs +++ b/crates/utils/src/error.rs @@ -1,6 +1,6 @@ use cfg_if::cfg_if; use serde::{Deserialize, Serialize}; -use std::fmt::Debug; +use std::{backtrace::Backtrace, fmt::Debug}; use strum_macros::{Display, EnumIter}; #[derive(Display, Debug, Serialize, Deserialize, Clone, PartialEq, Eq, EnumIter, Hash)] @@ -182,14 +182,13 @@ pub enum LemmyErrorType { cfg_if! { if #[cfg(feature = "full")] { - use tracing_error::SpanTrace; use std::fmt; pub type LemmyResult = Result; pub struct LemmyError { pub error_type: LemmyErrorType, pub inner: anyhow::Error, - pub context: SpanTrace, + pub context: Backtrace, } /// Maximum number of items in an array passed as API parameter. See [[LemmyErrorType::TooManyItems]] @@ -204,7 +203,7 @@ cfg_if! { LemmyError { error_type: LemmyErrorType::Unknown(format!("{}", &cause)), inner: cause, - context: SpanTrace::capture(), + context: Backtrace::capture(), } } } @@ -249,7 +248,7 @@ cfg_if! { LemmyError { error_type, inner, - context: SpanTrace::capture(), + context: Backtrace::capture(), } } } @@ -263,7 +262,7 @@ cfg_if! { self.map_err(|error| LemmyError { error_type, inner: error.into(), - context: SpanTrace::capture(), + context: Backtrace::capture(), }) } } From 2e8bb386cf92655d6b6915836111458aecb61a78 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Thu, 23 May 2024 16:46:03 +0200 Subject: [PATCH 03/13] always print db migration messages regardless of log level (fixes #4725) --- crates/db_schema/src/schema_setup.rs | 5 ++--- src/lib.rs | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/crates/db_schema/src/schema_setup.rs b/crates/db_schema/src/schema_setup.rs index 3def940605..fb4affa91c 100644 --- a/crates/db_schema/src/schema_setup.rs +++ b/crates/db_schema/src/schema_setup.rs @@ -2,7 +2,6 @@ use anyhow::Context; use diesel::{connection::SimpleConnection, Connection, PgConnection}; use diesel_migrations::{EmbeddedMigrations, MigrationHarness}; use lemmy_utils::error::LemmyError; -use tracing::info; const MIGRATIONS: EmbeddedMigrations = embed_migrations!(); @@ -34,7 +33,7 @@ pub fn run(db_url: &str) -> Result<(), LemmyError> { // transaction as `REPLACEABLE_SCHEMA`. This code will be becone less hacky when the conditional // setup of things in `REPLACEABLE_SCHEMA` is done without using the number of pending // migrations. - info!("Running Database migrations (This may take a long time)..."); + println!("Running Database migrations (This may take a long time)..."); let migrations = conn .pending_migrations(MIGRATIONS) .map_err(|e| anyhow::anyhow!("Couldn't determine pending migrations: {e}"))?; @@ -60,7 +59,7 @@ pub fn run(db_url: &str) -> Result<(), LemmyError> { Ok(()) })?; - info!("Database migrations complete."); + println!("Database migrations complete."); Ok(()) } diff --git a/src/lib.rs b/src/lib.rs index a83f996093..df882bb1c4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -105,7 +105,7 @@ pub struct CmdArgs { /// Placing the main function in lib.rs allows other crates to import it and embed Lemmy pub async fn start_lemmy_server(args: CmdArgs) -> LemmyResult<()> { // Print version number to log - println!("Lemmy v{VERSION}"); + println!("Starting Lemmy v{VERSION}"); // return error 503 while running db migrations and startup tasks let mut startup_server_handle = None; From 355631c90ee2c4244131c868b18e038771add4ce Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Thu, 23 May 2024 16:59:51 +0200 Subject: [PATCH 04/13] fix ci --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index f8f4eb5f39..7cc0b8c8be 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -163,7 +163,7 @@ steps: CARGO_HOME: .cargo_home commands: - rustup component add clippy - - cargo clippy --workspace --tests --all-targets --features console -- -D warnings + - cargo clippy --workspace --tests --all-targets -- -D warnings when: *slow_check_paths cargo_build: From 7d23dfaf16ee572278f5098ce323710617c340da Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Thu, 23 May 2024 17:09:59 +0200 Subject: [PATCH 05/13] Remove useless root span builder --- src/lib.rs | 11 ++---- src/root_span_builder.rs | 83 ---------------------------------------- 2 files changed, 3 insertions(+), 91 deletions(-) delete mode 100644 src/root_span_builder.rs diff --git a/src/lib.rs b/src/lib.rs index df882bb1c4..a58ba80f9f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,15 +1,10 @@ pub mod api_routes_http; pub mod code_migrations; pub mod prometheus_metrics; -pub mod root_span_builder; pub mod scheduled_tasks; pub mod session_middleware; -use crate::{ - code_migrations::run_advanced_migrations, - root_span_builder::QuieterRootSpanBuilder, - session_middleware::SessionMiddleware, -}; +use crate::{code_migrations::run_advanced_migrations, session_middleware::SessionMiddleware}; use activitypub_federation::config::{FederationConfig, FederationMiddleware}; use actix_cors::Cors; use actix_web::{ @@ -55,7 +50,7 @@ use reqwest_tracing::TracingMiddleware; use serde_json::json; use std::ops::Deref; use tokio::signal::unix::SignalKind; -use tracing_actix_web::TracingLogger; +use tracing_actix_web::{DefaultRootSpanBuilder, TracingLogger}; #[derive(Parser, Debug)] #[command( @@ -294,7 +289,7 @@ fn create_http_server( )) .wrap(middleware::Compress::default()) .wrap(cors_config) - .wrap(TracingLogger::::new()) + .wrap(TracingLogger::::new()) .wrap(ErrorHandlers::new().default_handler(jsonify_plain_text_errors)) .app_data(Data::new(context.clone())) .app_data(Data::new(rate_limit_cell.clone())) diff --git a/src/root_span_builder.rs b/src/root_span_builder.rs deleted file mode 100644 index e062ade218..0000000000 --- a/src/root_span_builder.rs +++ /dev/null @@ -1,83 +0,0 @@ -use actix_web::{http::StatusCode, ResponseError}; -use tracing::Span; -use tracing_actix_web::RootSpanBuilder; - -// Code in this module adapted from DefaultRootSpanBuilder -// https://github.com/LukeMathWalker/tracing-actix-web/blob/main/src/root_span_builder.rs -// and root_span! -// https://github.com/LukeMathWalker/tracing-actix-web/blob/main/src/root_span_macro.rs - -pub struct QuieterRootSpanBuilder; - -impl RootSpanBuilder for QuieterRootSpanBuilder { - fn on_request_start(request: &actix_web::dev::ServiceRequest) -> Span { - let request_id = tracing_actix_web::root_span_macro::private::get_request_id(request); - - tracing::info_span!( - "HTTP request", - http.method = %request.method(), - http.scheme = request.connection_info().scheme(), - http.host = %request.connection_info().host(), - http.target = %request.uri().path(), - http.status_code = tracing::field::Empty, - otel.kind = "server", - otel.status_code = tracing::field::Empty, - trace_id = tracing::field::Empty, - request_id = %request_id, - exception.message = tracing::field::Empty, - // Not proper OpenTelemetry, but their terminology is fairly exception-centric - exception.details = tracing::field::Empty, - ) - } - - fn on_request_end( - span: tracing::Span, - outcome: &Result, actix_web::Error>, - ) { - match &outcome { - Ok(response) => { - if let Some(error) = response.response().error() { - // use the status code already constructed for the outgoing HTTP response - handle_error(span, response.status(), error.as_response_error()); - } else { - let code: i32 = response.response().status().as_u16().into(); - span.record("http.status_code", code); - span.record("otel.status_code", "OK"); - } - } - Err(error) => { - let response_error = error.as_response_error(); - handle_error(span, response_error.status_code(), response_error); - } - }; - } -} - -fn handle_error(span: Span, status_code: StatusCode, response_error: &dyn ResponseError) { - let code: i32 = status_code.as_u16().into(); - - span.record("http.status_code", code); - - if status_code.is_client_error() { - span.record("otel.status_code", "OK"); - } else { - span.record("otel.status_code", "ERROR"); - } - - // pre-formatting errors is a workaround for https://github.com/tokio-rs/tracing/issues/1565 - let display_error = format!("{response_error}"); - - tracing::info_span!( - parent: None, - "Error encountered while processing the incoming HTTP request" - ) - .in_scope(|| { - if status_code.is_client_error() { - tracing::warn!("{}", display_error); - } else { - tracing::error!("{}", display_error); - } - }); - - span.record("exception.message", &tracing::field::display(display_error)); -} From cffa406559e1108796bdefb1847badaa41f5298a Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Mon, 9 Sep 2024 15:45:15 +0200 Subject: [PATCH 06/13] Upgrade http and opentelemetry crates --- Cargo.lock | 563 +++++++++++++++------------------ Cargo.toml | 19 +- crates/apub/src/http/mod.rs | 5 +- crates/routes/Cargo.toml | 1 + crates/routes/src/images.rs | 17 +- crates/routes/src/webfinger.rs | 2 +- crates/utils/src/error.rs | 8 +- src/session_middleware.rs | 2 +- src/telemetry.rs | 10 +- 9 files changed, 281 insertions(+), 346 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 30b707f44e..db75a17970 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,8 +17,7 @@ checksum = "8f27d075294830fcab6f66e320dab524bc6d048f4a151698e153205559113772" [[package]] name = "activitypub_federation" version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b86eea7a032da501fe07b04a83c10716ea732c45e6943d7f045bc053aca03f2a" +source = "git+https://github.com/pbzweihander/activitypub-federation-rust.git?branch=upgrade-axum#88d999a6b5eb9367922af06ba118c7acffdbc75e" dependencies = [ "activitystreams-kinds", "actix-web", @@ -32,6 +31,7 @@ dependencies = [ "futures", "futures-core", "http 0.2.12", + "http 1.1.0", "http-signature-normalization", "http-signature-normalization-reqwest", "httpdate", @@ -41,8 +41,8 @@ dependencies = [ "pin-project-lite", "rand", "regex", - "reqwest 0.11.27", - "reqwest-middleware 0.2.5", + "reqwest 0.12.7", + "reqwest-middleware", "rsa", "serde", "serde_json", @@ -250,7 +250,7 @@ dependencies = [ "pin-project-lite", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tokio-util", "tracing", ] @@ -633,7 +633,7 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper", + "sync_wrapper 0.1.2", "tower", "tower-layer", "tower-service", @@ -769,7 +769,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "shlex", "syn 2.0.66", "which", @@ -942,7 +942,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -2341,16 +2341,16 @@ dependencies = [ [[package]] name = "http-signature-normalization-reqwest" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10cfb84663420ec12c4422820bfdf5e8e5e57467892587f43ac432e73ebce880" +checksum = "b8822f7eab343cae1ce3bd3b6d0b9b58c72adaf3463627cfe150f8f5406f27aa" dependencies = [ "async-trait", - "base64 0.13.1", + "base64 0.22.1", "http-signature-normalization", "httpdate", - "reqwest 0.11.27", - "reqwest-middleware 0.2.5", + "reqwest 0.12.7", + "reqwest-middleware", "sha2", "thiserror", "tokio", @@ -2421,33 +2421,20 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.29", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-rustls" -version = "0.26.0" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", "hyper 1.3.1", "hyper-util", - "rustls 0.22.4", + "rustls", "rustls-pki-types", "tokio", - "tokio-rustls 0.25.0", + "tokio-rustls", "tower-service", + "webpki-roots", ] [[package]] @@ -2800,8 +2787,8 @@ dependencies = [ "once_cell", "pretty_assertions", "regex", - "reqwest 0.11.27", - "reqwest-middleware 0.2.5", + "reqwest 0.12.7", + "reqwest-middleware", "rosetta-i18n", "serde", "serde_with", @@ -2853,7 +2840,7 @@ dependencies = [ "futures", "html2md", "html2text", - "http 0.2.12", + "http 1.1.0", "itertools 0.13.0", "lemmy_api_common", "lemmy_db_schema", @@ -2863,7 +2850,7 @@ dependencies = [ "moka", "once_cell", "pretty_assertions", - "reqwest 0.11.27", + "reqwest 0.12.7", "serde", "serde_json", "serde_with", @@ -2915,7 +2902,7 @@ dependencies = [ "once_cell", "pretty_assertions", "regex", - "rustls 0.23.10", + "rustls", "serde", "serde_json", "serde_with", @@ -3007,7 +2994,7 @@ dependencies = [ "mockall", "moka", "once_cell", - "reqwest 0.11.27", + "reqwest 0.12.7", "serde_json", "serial_test", "test-context", @@ -3028,14 +3015,15 @@ dependencies = [ "anyhow", "chrono", "futures", + "http 1.1.0", "lemmy_api_common", "lemmy_db_schema", "lemmy_db_views", "lemmy_db_views_actor", "lemmy_utils", "once_cell", - "reqwest 0.11.27", - "reqwest-middleware 0.2.5", + "reqwest 0.12.7", + "reqwest-middleware", "rss", "serde", "tokio", @@ -3067,23 +3055,24 @@ dependencies = [ "lemmy_federate", "lemmy_routes", "lemmy_utils", - "opentelemetry 0.19.0", + "opentelemetry 0.24.0", "opentelemetry-otlp 0.12.0", + "opentelemetry_sdk 0.24.1", "pict-rs", "pretty_assertions", "prometheus", - "reqwest 0.11.27", - "reqwest-middleware 0.2.5", - "reqwest-tracing 0.4.8", - "rustls 0.23.10", + "reqwest 0.12.7", + "reqwest-middleware", + "reqwest-tracing", + "rustls", "serde_json", "serial_test", "tokio", "tracing", "tracing-actix-web", "tracing-error", - "tracing-log 0.2.0", - "tracing-opentelemetry 0.19.0", + "tracing-log", + "tracing-opentelemetry 0.24.0", "tracing-subscriber", "url", ] @@ -3101,15 +3090,15 @@ dependencies = [ "enum-map", "futures", "html2text", - "http 0.2.12", + "http 1.1.0", "itertools 0.13.0", "lettre", "markdown-it", "once_cell", "pretty_assertions", "regex", - "reqwest 0.11.27", - "reqwest-middleware 0.2.5", + "reqwest 0.12.7", + "reqwest-middleware", "rosetta-build", "rosetta-i18n", "serde", @@ -3146,13 +3135,13 @@ dependencies = [ "nom", "percent-encoding", "quoted_printable", - "rustls 0.23.10", + "rustls", "rustls-pemfile 2.1.2", "socket2", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "url", - "webpki-roots 0.26.2", + "webpki-roots", ] [[package]] @@ -3168,7 +3157,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -3451,16 +3440,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" -dependencies = [ - "mime", - "unicase", -] - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -3739,23 +3718,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "opentelemetry" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf9b1c4e9a6c4de793c632496fa490bdc0e1eea73f0c91394f7b6990935d22" -dependencies = [ - "async-trait", - "crossbeam-channel", - "futures", - "js-sys", - "lazy_static", - "percent-encoding", - "pin-project", - "rand", - "thiserror", -] - [[package]] name = "opentelemetry" version = "0.19.0" @@ -3780,6 +3742,20 @@ dependencies = [ "thiserror", ] +[[package]] +name = "opentelemetry" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c365a63eec4f55b7efeceb724f1336f26a9cf3427b70e59e2cd2a5b947fba96" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", +] + [[package]] name = "opentelemetry-otlp" version = "0.12.0" @@ -3875,8 +3851,6 @@ dependencies = [ "percent-encoding", "rand", "thiserror", - "tokio", - "tokio-stream", ] [[package]] @@ -3901,6 +3875,27 @@ dependencies = [ "tokio-stream", ] +[[package]] +name = "opentelemetry_sdk" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692eac490ec80f24a17828d49b40b60f5aeaccdfe6a503f939713afd22bc28df" +dependencies = [ + "async-trait", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "once_cell", + "opentelemetry 0.24.0", + "percent-encoding", + "rand", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", +] + [[package]] name = "ordered-float" version = "4.2.0" @@ -3973,7 +3968,7 @@ dependencies = [ "libc", "redox_syscall 0.5.1", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4121,10 +4116,10 @@ dependencies = [ "opentelemetry_sdk 0.23.0", "pin-project-lite", "refinery", - "reqwest 0.12.4", - "reqwest-middleware 0.3.1", - "reqwest-tracing 0.5.0", - "rustls 0.23.10", + "reqwest 0.12.7", + "reqwest-middleware", + "reqwest-tracing", + "rustls", "rustls-channel-resolver", "rustls-pemfile 2.1.2", "rusty-s3", @@ -4146,12 +4141,12 @@ dependencies = [ "tracing", "tracing-actix-web", "tracing-error", - "tracing-log 0.2.0", + "tracing-log", "tracing-opentelemetry 0.24.0", "tracing-subscriber", "url", "uuid", - "webpki-roots 0.26.2", + "webpki-roots", ] [[package]] @@ -4520,6 +4515,54 @@ dependencies = [ "memchr", ] +[[package]] +name = "quinn" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.0.0", + "rustls", + "socket2", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +dependencies = [ + "bytes", + "rand", + "ring", + "rustc-hash 2.0.0", + "rustls", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +dependencies = [ + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.52.0", +] + [[package]] name = "quote" version = "1.0.36" @@ -4714,7 +4757,6 @@ version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ - "async-compression", "base64 0.21.7", "bytes", "encoding_rs", @@ -4724,53 +4766,48 @@ dependencies = [ "http 0.2.12", "http-body 0.4.6", "hyper 0.14.29", - "hyper-rustls 0.24.2", "hyper-tls", "ipnet", "js-sys", "log", "mime", - "mime_guess", "native-tls", "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.12", "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls 0.24.1", - "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", "web-sys", - "webpki-roots 0.25.4", - "winreg 0.50.0", + "winreg", ] [[package]] name = "reqwest" -version = "0.12.4" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" +checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ + "async-compression", "base64 0.22.1", "bytes", + "futures-channel", "futures-core", "futures-util", "http 1.1.0", "http-body 1.0.0", "http-body-util", "hyper 1.3.1", - "hyper-rustls 0.26.0", + "hyper-rustls", "hyper-util", "ipnet", "js-sys", @@ -4779,15 +4816,16 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.22.4", + "quinn", + "rustls", "rustls-pemfile 2.1.2", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", "tokio", - "tokio-rustls 0.25.0", + "tokio-rustls", "tokio-util", "tower-service", "url", @@ -4795,35 +4833,20 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.2", - "winreg 0.52.0", + "webpki-roots", + "windows-registry", ] [[package]] name = "reqwest-middleware" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a735987236a8e238bf0296c7e351b999c188ccc11477f311b82b55c93984216" -dependencies = [ - "anyhow", - "async-trait", - "http 0.2.12", - "reqwest 0.11.27", - "serde", - "task-local-extensions", - "thiserror", -] - -[[package]] -name = "reqwest-middleware" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45d100244a467870f6cb763c4484d010a6bed6bd610b3676e3825d93fb4cfbd" +checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.4", + "reqwest 0.12.7", "serde", "thiserror", "tower-service", @@ -4831,36 +4854,20 @@ dependencies = [ [[package]] name = "reqwest-tracing" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190838e54153d7a7e2ea98851304b3ce92daeabf14c54d32b01b84a3e636f683" -dependencies = [ - "anyhow", - "async-trait", - "getrandom", - "matchit 0.7.3", - "opentelemetry 0.16.0", - "reqwest 0.11.27", - "reqwest-middleware 0.2.5", - "task-local-extensions", - "tracing", - "tracing-opentelemetry 0.16.0", -] - -[[package]] -name = "reqwest-tracing" -version = "0.5.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b253954a1979e02eabccd7e9c3d61d8f86576108baa160775e7f160bb4e800a3" +checksum = "bfdd9bfa64c72233d8dd99ab7883efcdefe9e16d46488ecb9228b71a2e2ceb45" dependencies = [ "anyhow", "async-trait", "getrandom", "http 1.1.0", "matchit 0.8.2", - "reqwest 0.12.4", - "reqwest-middleware 0.3.1", + "opentelemetry 0.24.0", + "reqwest 0.12.7", + "reqwest-middleware", "tracing", + "tracing-opentelemetry 0.25.0", ] [[package]] @@ -4969,6 +4976,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc_version" version = "0.4.0" @@ -4991,32 +5004,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring", - "rustls-pki-types", - "rustls-webpki 0.102.4", - "subtle", - "zeroize", -] - [[package]] name = "rustls" version = "0.23.10" @@ -5028,7 +5015,7 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.4", + "rustls-webpki", "subtle", "zeroize", ] @@ -5040,7 +5027,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fede2a247359da6b4998f7723ec6468c2d6a577a5d8c17e54f21806426ad2290" dependencies = [ "nanorand", - "rustls 0.23.10", + "rustls", ] [[package]] @@ -5068,16 +5055,6 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted 0.9.0", -] - [[package]] name = "rustls-webpki" version = "0.102.4" @@ -5164,16 +5141,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted 0.9.0", -] - [[package]] name = "sdd" version = "0.2.0" @@ -5659,6 +5626,15 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] + [[package]] name = "syntect" version = "5.2.0" @@ -5708,15 +5684,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" -[[package]] -name = "task-local-extensions" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba323866e5d033818e3240feeb9f7db2c4296674e4d9e16b97b7bf8f490434e8" -dependencies = [ - "pin-utils", -] - [[package]] name = "tempfile" version = "3.10.1" @@ -5963,10 +5930,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8e98c31c29b2666fb28720739e11476166be4ead1610a37dcd7414bb124413a" dependencies = [ "aws-lc-rs", - "rustls 0.23.10", + "rustls", "tokio", "tokio-postgres", - "tokio-rustls 0.26.0", + "tokio-rustls", "x509-cert", ] @@ -5977,41 +5944,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04fb792ccd6bbcd4bba408eb8a292f70fc4a3589e5d793626f45190e6454b6ab" dependencies = [ "ring", - "rustls 0.23.10", + "rustls", "tokio", "tokio-postgres", - "tokio-rustls 0.26.0", + "tokio-rustls", "x509-certificate", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.10", + "rustls", "rustls-pki-types", "tokio", ] @@ -6301,17 +6247,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -6325,45 +6260,36 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffbf13a0f8b054a4e59df3a173b818e9c6177c02789871f2073977fd0062076" -dependencies = [ - "opentelemetry 0.16.0", - "tracing", - "tracing-core", - "tracing-log 0.1.4", - "tracing-subscriber", -] - -[[package]] -name = "tracing-opentelemetry" -version = "0.19.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00a39dcf9bfc1742fa4d6215253b33a6e474be78275884c216fc2a06267b3600" +checksum = "f68803492bf28ab40aeccaecc7021096bd256baf7ca77c3d425d89b35a7be4e4" dependencies = [ + "js-sys", "once_cell", - "opentelemetry 0.19.0", + "opentelemetry 0.23.0", + "opentelemetry_sdk 0.23.0", + "smallvec", "tracing", "tracing-core", - "tracing-log 0.1.4", + "tracing-log", "tracing-subscriber", + "web-time", ] [[package]] name = "tracing-opentelemetry" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f68803492bf28ab40aeccaecc7021096bd256baf7ca77c3d425d89b35a7be4e4" +checksum = "a9784ed4da7d921bc8df6963f8c80a0e4ce34ba6ba76668acadd3edbd985ff3b" dependencies = [ "js-sys", "once_cell", - "opentelemetry 0.23.0", - "opentelemetry_sdk 0.23.0", + "opentelemetry 0.24.0", + "opentelemetry_sdk 0.24.1", "smallvec", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", "tracing-subscriber", "web-time", ] @@ -6395,7 +6321,7 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", "tracing-serde", ] @@ -6482,15 +6408,6 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - [[package]] name = "unicode-bidi" version = "0.3.15" @@ -6771,12 +6688,6 @@ dependencies = [ "url", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "webpki-roots" version = "0.26.2" @@ -6846,7 +6757,37 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", ] [[package]] @@ -6864,7 +6805,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -6884,18 +6825,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -6906,9 +6847,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -6918,9 +6859,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -6930,15 +6871,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -6948,9 +6889,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -6960,9 +6901,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -6972,9 +6913,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -6984,9 +6925,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -7016,16 +6957,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "x509-cert" version = "0.2.5" diff --git a/Cargo.toml b/Cargo.toml index ca0598f825..7c4ff002d1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,9 +42,10 @@ embed-pictrs = ["pict-rs"] console = [ "console-subscriber", "opentelemetry", + "opentelemetry_sdk", "opentelemetry-otlp", "tracing-opentelemetry", - "reqwest-tracing/opentelemetry_0_16", + "reqwest-tracing/opentelemetry_0_24", ] json-log = ["tracing-subscriber/json"] default = [] @@ -99,7 +100,7 @@ lemmy_db_views = { version = "=0.19.5", path = "./crates/db_views" } lemmy_db_views_actor = { version = "=0.19.5", path = "./crates/db_views_actor" } lemmy_db_views_moderator = { version = "=0.19.5", path = "./crates/db_views_moderator" } lemmy_federate = { version = "=0.19.5", path = "./crates/federate" } -activitypub_federation = { version = "0.5.8", default-features = false, features = [ +activitypub_federation = { git = "https://github.com/pbzweihander/activitypub-federation-rust.git", branch = "upgrade-axum", default-features = false, features = [ "actix-web", ] } diesel = "2.1.6" @@ -121,14 +122,14 @@ tracing-error = "0.2.0" tracing-log = "0.2.0" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = { version = "2.5.0", features = ["serde"] } -reqwest = { version = "0.11.27", default-features = false, features = [ +reqwest = { version = "0.12.7", default-features = false, features = [ "json", "blocking", "gzip", "rustls-tls", ] } -reqwest-middleware = "0.2.5" -reqwest-tracing = "0.4.8" +reqwest-middleware = "0.3.3" +reqwest-tracing = "0.5.3" clokwerk = "0.4.0" doku = { version = "0.21.1", features = ["url-2"] } bcrypt = "0.15.1" @@ -153,10 +154,11 @@ strum = "0.26.2" strum_macros = "0.26.4" itertools = "0.13.0" futures = "0.3.30" -http = "0.2.12" +http = "1.0" rosetta-i18n = "0.1.3" -opentelemetry = { version = "0.19.0", features = ["rt-tokio"] } -tracing-opentelemetry = { version = "0.19.0" } +opentelemetry = "0.24.0" +opentelemetry_sdk = { version = "0.24.0", features = ["rt-tokio"] } +tracing-opentelemetry = { version = "0.24.0" } ts-rs = { version = "7.1.1", features = [ "serde-compat", "chrono-impl", @@ -200,6 +202,7 @@ clokwerk = { workspace = true } serde_json = { workspace = true } tracing-opentelemetry = { workspace = true, optional = true } opentelemetry = { workspace = true, optional = true } +opentelemetry_sdk = { workspace = true, optional = true } console-subscriber = { version = "0.3.0", optional = true } opentelemetry-otlp = { version = "0.12.0", optional = true } pict-rs = { version = "0.5.15", optional = true } diff --git a/crates/apub/src/http/mod.rs b/crates/apub/src/http/mod.rs index 6303dd1b04..a01afe6767 100644 --- a/crates/apub/src/http/mod.rs +++ b/crates/apub/src/http/mod.rs @@ -11,7 +11,6 @@ use activitypub_federation::{ FEDERATION_CONTENT_TYPE, }; use actix_web::{web, web::Bytes, HttpRequest, HttpResponse}; -use http::{header::LOCATION, StatusCode}; use lemmy_api_common::context::LemmyContext; use lemmy_db_schema::{ newtypes::DbUrl, @@ -76,14 +75,14 @@ fn create_apub_tombstone_response>(id: T) -> LemmyResult HttpResponse { let mut res = HttpResponse::PermanentRedirect(); - res.insert_header((LOCATION, url.as_str())); + res.insert_header((actix_web::http::header::LOCATION, url.as_str())); res.finish() } diff --git a/crates/routes/Cargo.toml b/crates/routes/Cargo.toml index 0d18e4f1fb..69b771727c 100644 --- a/crates/routes/Cargo.toml +++ b/crates/routes/Cargo.toml @@ -34,4 +34,5 @@ once_cell = { workspace = true } tracing = { workspace = true } tokio = { workspace = true } urlencoding = { workspace = true } +http.workspace = true rss = "2.0.8" diff --git a/crates/routes/src/images.rs b/crates/routes/src/images.rs index 10ffb57de2..e0baf8cb28 100644 --- a/crates/routes/src/images.rs +++ b/crates/routes/src/images.rs @@ -110,7 +110,7 @@ fn adapt_request( const INVALID_HEADERS: &[HeaderName] = &[ACCEPT_ENCODING, HOST]; let client_request = client - .request(request.method().clone(), url) + .request(http::Method::from_bytes(request.method().as_str().as_bytes()).unwrap(), url) .timeout(REQWEST_TIMEOUT); request @@ -120,7 +120,7 @@ fn adapt_request( if INVALID_HEADERS.contains(key) { client_req } else { - client_req.header(key, value) + client_req.header(key.as_str(), value.as_bytes()) } }) } @@ -167,7 +167,7 @@ async fn upload( } } - Ok(HttpResponse::build(status).json(images)) + Ok(HttpResponse::build(StatusCode::from_u16(status.as_u16())?).json(images)) } async fn full_res( @@ -210,14 +210,14 @@ async fn image( let res = client_req.send().await?; - if res.status() == StatusCode::NOT_FOUND { + if res.status() == http::StatusCode::NOT_FOUND { return Ok(HttpResponse::NotFound().finish()); } - let mut client_res = HttpResponse::build(res.status()); + let mut client_res = HttpResponse::build(StatusCode::from_u16(res.status().as_u16())?); for (name, value) in res.headers().iter().filter(|(h, _)| *h != "connection") { - client_res.insert_header((name.clone(), value.clone())); + client_res.insert_header((name.as_str(), value.as_bytes())); } Ok(client_res.body(BodyStream::new(res.bytes_stream()))) @@ -246,7 +246,10 @@ async fn delete( LocalImage::delete_by_alias(&mut context.pool(), &file).await?; - Ok(HttpResponse::build(res.status()).body(BodyStream::new(res.bytes_stream()))) + Ok( + HttpResponse::build(StatusCode::from_u16(res.status().as_u16())?) + .body(BodyStream::new(res.bytes_stream())), + ) } pub async fn image_proxy( diff --git a/crates/routes/src/webfinger.rs b/crates/routes/src/webfinger.rs index f2a67c0fce..c5b7024cd1 100644 --- a/crates/routes/src/webfinger.rs +++ b/crates/routes/src/webfinger.rs @@ -84,7 +84,7 @@ async fn get_webfinger_response( Ok( HttpResponse::Ok() - .content_type(&WEBFINGER_CONTENT_TYPE) + .content_type(WEBFINGER_CONTENT_TYPE.as_bytes()) .json(json), ) } diff --git a/crates/utils/src/error.rs b/crates/utils/src/error.rs index b848916b22..d90ad42420 100644 --- a/crates/utils/src/error.rs +++ b/crates/utils/src/error.rs @@ -230,13 +230,13 @@ cfg_if! { } impl actix_web::error::ResponseError for LemmyError { - fn status_code(&self) -> http::StatusCode { + fn status_code(&self) -> actix_web::http::StatusCode { if self.error_type == LemmyErrorType::IncorrectLogin { - return http::StatusCode::UNAUTHORIZED; + return actix_web::http::StatusCode::UNAUTHORIZED; } match self.inner.downcast_ref::() { - Some(diesel::result::Error::NotFound) => http::StatusCode::NOT_FOUND, - _ => http::StatusCode::BAD_REQUEST, + Some(diesel::result::Error::NotFound) => actix_web::http::StatusCode::NOT_FOUND, + _ => actix_web::http::StatusCode::BAD_REQUEST, } } diff --git a/src/session_middleware.rs b/src/session_middleware.rs index a72d84920f..f00009d106 100644 --- a/src/session_middleware.rs +++ b/src/session_middleware.rs @@ -9,7 +9,7 @@ use core::future::Ready; use futures_util::future::LocalBoxFuture; use lemmy_api::{local_user_view_from_jwt, read_auth_token}; use lemmy_api_common::context::LemmyContext; -use reqwest::header::HeaderValue; +use actix_web::http::header::HeaderValue; use std::{future::ready, rc::Rc}; #[derive(Clone)] diff --git a/src/telemetry.rs b/src/telemetry.rs index a7a1ac8093..647ff936af 100644 --- a/src/telemetry.rs +++ b/src/telemetry.rs @@ -1,10 +1,8 @@ use console_subscriber::ConsoleLayer; use lemmy_utils::error::LemmyResult; -use opentelemetry::{ - sdk::{propagation::TraceContextPropagator, Resource}, - KeyValue, -}; +use opentelemetry::KeyValue; use opentelemetry_otlp::WithExportConfig; +use opentelemetry_sdk::{propagation::TraceContextPropagator, Resource}; use tracing::{subscriber::set_global_default, Subscriber}; use tracing_subscriber::{filter::Targets, layer::SubscriberExt, registry::LookupSpan, Layer}; @@ -25,7 +23,7 @@ where let tracer = opentelemetry_otlp::new_pipeline() .tracing() .with_trace_config( - opentelemetry::sdk::trace::config() + opentelemetry_sdk::trace::config() .with_resource(Resource::new(vec![KeyValue::new("service.name", "lemmy")])), ) .with_exporter( @@ -33,7 +31,7 @@ where .tonic() .with_endpoint(opentelemetry_url), ) - .install_batch(opentelemetry::runtime::Tokio)?; + .install_batch(opentelemetry_sdk::runtime::Tokio)?; let otel_layer = tracing_opentelemetry::layer() .with_tracer(tracer) From aa67faa9f121382d5f7fa3c47f767e3bd0249b7d Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Tue, 10 Sep 2024 10:31:02 +0200 Subject: [PATCH 07/13] more fixes --- Cargo.lock | 298 ++++++++++++++++++------------------ Cargo.toml | 6 +- crates/routes/src/images.rs | 5 +- src/session_middleware.rs | 3 +- src/telemetry.rs | 4 +- 5 files changed, 160 insertions(+), 156 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index db75a17970..9b1bc0e9f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -618,7 +618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ "async-trait", - "axum-core", + "axum-core 0.3.4", "bitflags 1.3.2", "bytes", "futures-util", @@ -639,6 +639,33 @@ dependencies = [ "tower-service", ] +[[package]] +name = "axum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +dependencies = [ + "async-trait", + "axum-core 0.4.3", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 1.0.1", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "axum-core" version = "0.3.4" @@ -656,6 +683,26 @@ dependencies = [ "tower-service", ] +[[package]] +name = "axum-core" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" version = "0.3.71" @@ -1116,21 +1163,21 @@ checksum = "fd326812b3fd01da5bb1af7d340d0d555fd3d4b641e7f1dfcf5962a902952787" dependencies = [ "futures-core", "prost 0.12.6", - "prost-types", + "prost-types 0.12.6", "tonic 0.10.2", "tracing-core", ] [[package]] name = "console-api" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a257c22cd7e487dd4a13d413beabc512c5052f0bc048db0da6a84c3d8a6142fd" +checksum = "86ed14aa9c9f927213c6e4f3ef75faaad3406134efe84ba2cb7983431d5f0931" dependencies = [ "futures-core", - "prost 0.12.6", - "prost-types", - "tonic 0.11.0", + "prost 0.13.2", + "prost-types 0.13.2", + "tonic 0.12.2", "tracing-core", ] @@ -1146,7 +1193,7 @@ dependencies = [ "futures-task", "hdrhistogram", "humantime", - "prost-types", + "prost-types 0.12.6", "serde", "serde_json", "thread_local", @@ -1160,24 +1207,25 @@ dependencies = [ [[package]] name = "console-subscriber" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c4cc54bae66f7d9188996404abdf7fdfa23034ef8e43478c8810828abad758" +checksum = "e2e3a111a37f3333946ebf9da370ba5c5577b18eb342ec683eb488dd21980302" dependencies = [ - "console-api 0.7.0", + "console-api 0.8.0", "crossbeam-channel", "crossbeam-utils", "futures-task", "hdrhistogram", "humantime", - "prost 0.12.6", - "prost-types", + "hyper-util", + "prost 0.13.2", + "prost-types 0.13.2", "serde", "serde_json", "thread_local", "tokio", "tokio-stream", - "tonic 0.11.0", + "tonic 0.12.2", "tracing", "tracing-core", "tracing-subscriber", @@ -2400,9 +2448,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", @@ -2427,7 +2475,7 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.3.1", + "hyper 1.4.1", "hyper-util", "rustls", "rustls-pki-types", @@ -2449,6 +2497,19 @@ dependencies = [ "tokio-io-timeout", ] +[[package]] +name = "hyper-timeout" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +dependencies = [ + "hyper 1.4.1", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -2464,16 +2525,16 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" dependencies = [ "bytes", "futures-channel", "futures-util", "http 1.1.0", "http-body 1.0.0", - "hyper 1.3.1", + "hyper 1.4.1", "pin-project-lite", "socket2", "tokio", @@ -2628,15 +2689,6 @@ version = "1.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.12.1" @@ -3043,7 +3095,7 @@ dependencies = [ "chrono", "clap", "clokwerk", - "console-subscriber 0.3.0", + "console-subscriber 0.4.0", "diesel", "diesel-async", "futures-util", @@ -3056,7 +3108,7 @@ dependencies = [ "lemmy_routes", "lemmy_utils", "opentelemetry 0.24.0", - "opentelemetry-otlp 0.12.0", + "opentelemetry-otlp 0.17.0", "opentelemetry_sdk 0.24.1", "pict-rs", "pretty_assertions", @@ -3386,7 +3438,7 @@ checksum = "26eb45aff37b45cff885538e1dcbd6c2b462c04fe84ce0155ea469f325672c98" dependencies = [ "base64 0.22.1", "http-body-util", - "hyper 1.3.1", + "hyper 1.4.1", "hyper-util", "indexmap 2.2.6", "ipnet", @@ -3718,16 +3770,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "opentelemetry" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4b8347cc26099d3aeee044065ecc3ae11469796b4d65d065a23a584ed92a6f" -dependencies = [ - "opentelemetry_api", - "opentelemetry_sdk 0.19.0", -] - [[package]] name = "opentelemetry" version = "0.23.0" @@ -3756,24 +3798,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "opentelemetry-otlp" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8af72d59a4484654ea8eb183fea5ae4eb6a41d7ac3e3bae5f4d2a282a3a7d3ca" -dependencies = [ - "async-trait", - "futures", - "futures-util", - "http 0.2.12", - "opentelemetry 0.19.0", - "opentelemetry-proto 0.2.0", - "prost 0.11.9", - "thiserror", - "tokio", - "tonic 0.8.3", -] - [[package]] name = "opentelemetry-otlp" version = "0.16.0" @@ -3793,16 +3817,21 @@ dependencies = [ ] [[package]] -name = "opentelemetry-proto" -version = "0.2.0" +name = "opentelemetry-otlp" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045f8eea8c0fa19f7d48e7bc3128a39c2e5c533d5c61298c548dfefc1064474c" +checksum = "6b925a602ffb916fb7421276b86756027b37ee708f9dce2dbdcc51739f07e727" dependencies = [ - "futures", - "futures-util", - "opentelemetry 0.19.0", - "prost 0.11.9", - "tonic 0.8.3", + "async-trait", + "futures-core", + "http 1.1.0", + "opentelemetry 0.24.0", + "opentelemetry-proto 0.7.0", + "opentelemetry_sdk 0.24.1", + "prost 0.13.2", + "thiserror", + "tokio", + "tonic 0.12.2", ] [[package]] @@ -3818,39 +3847,15 @@ dependencies = [ ] [[package]] -name = "opentelemetry_api" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed41783a5bf567688eb38372f2b7a8530f5a607a4b49d38dd7573236c23ca7e2" -dependencies = [ - "fnv", - "futures-channel", - "futures-util", - "indexmap 1.9.3", - "once_cell", - "pin-project-lite", - "thiserror", - "urlencoding", -] - -[[package]] -name = "opentelemetry_sdk" -version = "0.19.0" +name = "opentelemetry-proto" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b3a2a91fdbfdd4d212c0dcc2ab540de2c2bcbbd90be17de7a7daf8822d010c1" +checksum = "30ee9f20bff9c984511a02f082dc8ede839e4a9bf15cc2487c8d6fea5ad850d9" dependencies = [ - "async-trait", - "crossbeam-channel", - "dashmap", - "fnv", - "futures-channel", - "futures-executor", - "futures-util", - "once_cell", - "opentelemetry_api", - "percent-encoding", - "rand", - "thiserror", + "opentelemetry 0.24.0", + "opentelemetry_sdk 0.24.1", + "prost 0.13.2", + "tonic 0.12.2", ] [[package]] @@ -4412,45 +4417,45 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ "bytes", - "prost-derive 0.11.9", + "prost-derive 0.12.6", ] [[package]] name = "prost" -version = "0.12.6" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +checksum = "3b2ecbe40f08db5c006b5764a2645f7f3f141ce756412ac9e1dd6087e6d32995" dependencies = [ "bytes", - "prost-derive 0.12.6", + "prost-derive 0.13.2", ] [[package]] name = "prost-derive" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.66", ] [[package]] name = "prost-derive" -version = "0.12.6" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.66", @@ -4465,6 +4470,15 @@ dependencies = [ "prost 0.12.6", ] +[[package]] +name = "prost-types" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519" +dependencies = [ + "prost 0.13.2", +] + [[package]] name = "protobuf" version = "2.28.0" @@ -4806,7 +4820,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.0", "http-body-util", - "hyper 1.3.1", + "hyper 1.4.1", "hyper-rustls", "hyper-util", "ipnet", @@ -6047,52 +6061,47 @@ dependencies = [ [[package]] name = "tonic" -version = "0.8.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" +checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" dependencies = [ "async-stream", "async-trait", - "axum", - "base64 0.13.1", + "axum 0.6.20", + "base64 0.21.7", "bytes", - "futures-core", - "futures-util", "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", "hyper 0.14.29", - "hyper-timeout", + "hyper-timeout 0.4.1", "percent-encoding", "pin-project", - "prost 0.11.9", - "prost-derive 0.11.9", + "prost 0.12.6", "tokio", "tokio-stream", - "tokio-util", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" dependencies = [ "async-stream", "async-trait", - "axum", + "axum 0.6.20", "base64 0.21.7", "bytes", "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", "hyper 0.14.29", - "hyper-timeout", + "hyper-timeout 0.4.1", "percent-encoding", "pin-project", "prost 0.12.6", @@ -6106,23 +6115,26 @@ dependencies = [ [[package]] name = "tonic" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +checksum = "c6f6ba989e4b2c58ae83d862d3a3e27690b6e3ae630d0deb59f3697f32aa88ad" dependencies = [ "async-stream", "async-trait", - "axum", - "base64 0.21.7", + "axum 0.7.5", + "base64 0.22.1", "bytes", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.29", - "hyper-timeout", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.4.1", + "hyper-timeout 0.5.1", + "hyper-util", "percent-encoding", "pin-project", - "prost 0.12.6", + "prost 0.13.2", + "socket2", "tokio", "tokio-stream", "tower", @@ -6237,16 +6249,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.2.0" diff --git a/Cargo.toml b/Cargo.toml index 7c4ff002d1..6c84b0b6de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -157,7 +157,7 @@ futures = "0.3.30" http = "1.0" rosetta-i18n = "0.1.3" opentelemetry = "0.24.0" -opentelemetry_sdk = { version = "0.24.0", features = ["rt-tokio"] } +opentelemetry_sdk = { version = "0.24.0", features = ["rt-tokio", "trace"] } tracing-opentelemetry = { version = "0.24.0" } ts-rs = { version = "7.1.1", features = [ "serde-compat", @@ -203,8 +203,8 @@ serde_json = { workspace = true } tracing-opentelemetry = { workspace = true, optional = true } opentelemetry = { workspace = true, optional = true } opentelemetry_sdk = { workspace = true, optional = true } -console-subscriber = { version = "0.3.0", optional = true } -opentelemetry-otlp = { version = "0.12.0", optional = true } +console-subscriber = { version = "0.4.0", optional = true } +opentelemetry-otlp = { version = "0.17.0", optional = true } pict-rs = { version = "0.5.15", optional = true } rustls = { workspace = true } tokio.workspace = true diff --git a/crates/routes/src/images.rs b/crates/routes/src/images.rs index e0baf8cb28..802f6eac91 100644 --- a/crates/routes/src/images.rs +++ b/crates/routes/src/images.rs @@ -110,7 +110,10 @@ fn adapt_request( const INVALID_HEADERS: &[HeaderName] = &[ACCEPT_ENCODING, HOST]; let client_request = client - .request(http::Method::from_bytes(request.method().as_str().as_bytes()).unwrap(), url) + .request( + http::Method::from_bytes(request.method().as_str().as_bytes()).unwrap(), + url, + ) .timeout(REQWEST_TIMEOUT); request diff --git a/src/session_middleware.rs b/src/session_middleware.rs index f00009d106..b23f8644ec 100644 --- a/src/session_middleware.rs +++ b/src/session_middleware.rs @@ -1,7 +1,7 @@ use actix_web::{ body::MessageBody, dev::{forward_ready, Service, ServiceRequest, ServiceResponse, Transform}, - http::header::CACHE_CONTROL, + http::header::{HeaderValue, CACHE_CONTROL}, Error, HttpMessage, }; @@ -9,7 +9,6 @@ use core::future::Ready; use futures_util::future::LocalBoxFuture; use lemmy_api::{local_user_view_from_jwt, read_auth_token}; use lemmy_api_common::context::LemmyContext; -use actix_web::http::header::HeaderValue; use std::{future::ready, rc::Rc}; #[derive(Clone)] diff --git a/src/telemetry.rs b/src/telemetry.rs index 647ff936af..bbf1415cd3 100644 --- a/src/telemetry.rs +++ b/src/telemetry.rs @@ -4,7 +4,7 @@ use opentelemetry::KeyValue; use opentelemetry_otlp::WithExportConfig; use opentelemetry_sdk::{propagation::TraceContextPropagator, Resource}; use tracing::{subscriber::set_global_default, Subscriber}; -use tracing_subscriber::{filter::Targets, layer::SubscriberExt, registry::LookupSpan, Layer}; +use tracing_subscriber::{filter::Targets, layer::SubscriberExt, registry::LookupSpan}; pub fn init_tracing(opentelemetry_url: &str, subscriber: S, targets: Targets) -> LemmyResult<()> where @@ -23,7 +23,7 @@ where let tracer = opentelemetry_otlp::new_pipeline() .tracing() .with_trace_config( - opentelemetry_sdk::trace::config() + opentelemetry_sdk::trace::Config::default() .with_resource(Resource::new(vec![KeyValue::new("service.name", "lemmy")])), ) .with_exporter( From 7fc2720c12479e4e1cd9c953849dab6406323816 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Tue, 10 Sep 2024 10:53:33 +0200 Subject: [PATCH 08/13] cleanup --- Cargo.lock | 300 +++++++++++++++++++++++++++++++++-- crates/api/Cargo.toml | 4 +- crates/federate/Cargo.toml | 2 +- crates/routes/Cargo.toml | 2 +- crates/routes/src/images.rs | 28 ++-- crates/utils/Cargo.toml | 4 +- crates/utils/src/response.rs | 2 +- 7 files changed, 313 insertions(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9b1bc0e9f4..5bf9dd58f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1698,6 +1698,17 @@ dependencies = [ "chrono", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "doku" version = "0.21.1" @@ -2586,6 +2597,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2612,6 +2741,18 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd69211b9b519e98303c015e21a007e293db403b6c85b9b124e133d25e242cdd" +dependencies = [ + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", +] + [[package]] name = "image" version = "0.24.9" @@ -3169,9 +3310,9 @@ dependencies = [ [[package]] name = "lettre" -version = "0.11.7" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a62049a808f1c4e2356a2a380bd5f2aca3b011b0b482cf3b914ba1731426969" +checksum = "1658ac89b01055e3ba23d66ecf6f8b97388ebe34ce125e49f8ef71234fb8aaba" dependencies = [ "async-trait", "base64 0.22.1", @@ -3182,13 +3323,14 @@ dependencies = [ "futures-io", "futures-util", "httpdate", - "idna 0.5.0", + "idna 1.0.2", "mime", "nom", "percent-encoding", "quoted_printable", "rustls", "rustls-pemfile 2.1.2", + "rustls-pki-types", "socket2", "tokio", "tokio-rustls", @@ -3245,6 +3387,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "local-channel" version = "0.1.5" @@ -3299,9 +3447,9 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "markdown-it" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "181d1b4704b0a2fc6027d3f758a7eedb975dcbaab86e6794901b8cfc52af94d5" +checksum = "f99c010929c8217b2dc0940954267a2e15a15f17cb309cd1f299e21933f84fac" dependencies = [ "argparse", "const_format", @@ -4529,6 +4677,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "quick-xml" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a05e2e8efddfa51a84ca47cec303fac86c8541b686d37cac5efc0e094417bc" +dependencies = [ + "encoding_rs", + "memchr", +] + [[package]] name = "quinn" version = "0.11.5" @@ -4968,14 +5126,14 @@ dependencies = [ [[package]] name = "rss" -version = "2.0.8" +version = "2.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f374fd66bb795938b78c021db1662d43a8ffbc42ec1ac25429fc4833b732751" +checksum = "27e92048f840d98c6d6dd870af9101610ea9ff413f11f1bcebf4f4c31d96d957" dependencies = [ "atom_syndication", "derive_builder", "never", - "quick-xml 0.31.0", + "quick-xml 0.36.1", ] [[package]] @@ -5503,6 +5661,12 @@ dependencies = [ "der", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "stacker" version = "0.1.15" @@ -5649,6 +5813,17 @@ dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "syntect" version = "5.2.0" @@ -5824,6 +5999,16 @@ version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ab95735ea2c8fd51154d01e39cf13912a78071c2d89abc49a7ef102a7dd725a" +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -5989,9 +6174,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -6145,9 +6330,9 @@ dependencies = [ [[package]] name = "totp-rs" -version = "5.5.1" +version = "5.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c4ae9724c5888c0417d2396037ed3b60665925624766416e3e342b6ba5dbd3f" +checksum = "17b2f27dad992486c26b4e7455f38aa487e838d6d61b57e72906ee2b8c287a90" dependencies = [ "base32", "constant_time_eq", @@ -6491,12 +6676,24 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8-width" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.1" @@ -6959,6 +7156,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "x509-cert" version = "0.2.5" @@ -7033,6 +7242,30 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.34" @@ -7053,6 +7286,27 @@ dependencies = [ "syn 2.0.66", ] +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", + "synstructure", +] + [[package]] name = "zeroize" version = "1.8.1" @@ -7073,6 +7327,28 @@ dependencies = [ "syn 2.0.66", ] +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "zstd" version = "0.13.1" diff --git a/crates/api/Cargo.toml b/crates/api/Cargo.toml index b98b15d627..9506049ee1 100644 --- a/crates/api/Cargo.toml +++ b/crates/api/Cargo.toml @@ -35,8 +35,8 @@ chrono = { workspace = true } url = { workspace = true } hound = "3.5.1" sitemap-rs = "0.2.1" -totp-rs = { version = "5.5.1", features = ["gen_secret", "otpauth"] } -actix-web-httpauth = "0.8.1" +totp-rs = { version = "5.6.0", features = ["gen_secret", "otpauth"] } +actix-web-httpauth = "0.8.2" [dev-dependencies] serial_test = { workspace = true } diff --git a/crates/federate/Cargo.toml b/crates/federate/Cargo.toml index b8b4389014..71bad19424 100644 --- a/crates/federate/Cargo.toml +++ b/crates/federate/Cargo.toml @@ -33,7 +33,7 @@ serde_json.workspace = true tokio = { workspace = true, features = ["full"] } tracing.workspace = true moka.workspace = true -tokio-util = "0.7.11" +tokio-util = "0.7.12" async-trait.workspace = true [dev-dependencies] diff --git a/crates/routes/Cargo.toml b/crates/routes/Cargo.toml index 69b771727c..55e4d60da3 100644 --- a/crates/routes/Cargo.toml +++ b/crates/routes/Cargo.toml @@ -35,4 +35,4 @@ tracing = { workspace = true } tokio = { workspace = true } urlencoding = { workspace = true } http.workspace = true -rss = "2.0.8" +rss = "2.0.9" diff --git a/crates/routes/src/images.rs b/crates/routes/src/images.rs index 802f6eac91..73a18a75a1 100644 --- a/crates/routes/src/images.rs +++ b/crates/routes/src/images.rs @@ -2,6 +2,7 @@ use actix_web::{ body::BodyStream, http::{ header::{HeaderName, ACCEPT_ENCODING, HOST}, + Method, StatusCode, }, web, @@ -10,6 +11,7 @@ use actix_web::{ HttpResponse, }; use futures::stream::{Stream, StreamExt}; +use http::HeaderValue; use lemmy_api_common::{context::LemmyContext, request::PictrsResponse}; use lemmy_db_schema::source::{ images::{LocalImage, LocalImageForm, RemoteImage}, @@ -110,10 +112,7 @@ fn adapt_request( const INVALID_HEADERS: &[HeaderName] = &[ACCEPT_ENCODING, HOST]; let client_request = client - .request( - http::Method::from_bytes(request.method().as_str().as_bytes()).unwrap(), - url, - ) + .request(convert_method(request.method()), url) .timeout(REQWEST_TIMEOUT); request @@ -123,6 +122,7 @@ fn adapt_request( if INVALID_HEADERS.contains(key) { client_req } else { + // TODO: remove as_str and as_bytes conversions after actix-web upgrades to http 1.0 client_req.header(key.as_str(), value.as_bytes()) } }) @@ -170,7 +170,7 @@ async fn upload( } } - Ok(HttpResponse::build(StatusCode::from_u16(status.as_u16())?).json(images)) + Ok(HttpResponse::build(convert_status(status)).json(images)) } async fn full_res( @@ -220,7 +220,7 @@ async fn image( let mut client_res = HttpResponse::build(StatusCode::from_u16(res.status().as_u16())?); for (name, value) in res.headers().iter().filter(|(h, _)| *h != "connection") { - client_res.insert_header((name.as_str(), value.as_bytes())); + client_res.insert_header(convert_header(name, value)); } Ok(client_res.body(BodyStream::new(res.bytes_stream()))) @@ -249,10 +249,7 @@ async fn delete( LocalImage::delete_by_alias(&mut context.pool(), &file).await?; - Ok( - HttpResponse::build(StatusCode::from_u16(res.status().as_u16())?) - .body(BodyStream::new(res.bytes_stream())), - ) + Ok(HttpResponse::build(convert_status(res.status())).body(BodyStream::new(res.bytes_stream()))) } pub async fn image_proxy( @@ -315,3 +312,14 @@ where std::pin::Pin::new(&mut self.rx).poll_recv(cx) } } + +// TODO: remove these conversions after actix-web upgrades to http 1.0 +fn convert_status(status: http::StatusCode) -> StatusCode { + StatusCode::from_u16(status.as_u16()).expect("status can be converted") +} +fn convert_method(method: &Method) -> http::Method { + http::Method::from_bytes(method.as_str().as_bytes()).expect("method can be converted") +} +fn convert_header<'a>(name: &'a http::HeaderName, value: &'a HeaderValue) -> (&'a str, &'a [u8]) { + (name.as_str(), value.as_bytes()) +} diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index b9cf9ae214..d86d9405c1 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -76,13 +76,13 @@ urlencoding = { workspace = true, optional = true } html2text = { version = "0.12.5", optional = true } deser-hjson = { version = "2.2.4", optional = true } smart-default = { version = "0.7.1", optional = true } -lettre = { version = "0.11.7", default-features = false, features = [ +lettre = { version = "0.11.8", default-features = false, features = [ "builder", "tokio1", "tokio1-rustls-tls", "smtp-transport", ], optional = true } -markdown-it = { version = "0.6.0", optional = true } +markdown-it = { version = "0.6.1", optional = true } ts-rs = { workspace = true, optional = true } enum-map = { workspace = true, optional = true } cfg-if = "1" diff --git a/crates/utils/src/response.rs b/crates/utils/src/response.rs index 82b1e70edc..f37c15dd7a 100644 --- a/crates/utils/src/response.rs +++ b/crates/utils/src/response.rs @@ -37,6 +37,7 @@ mod tests { use crate::error::{LemmyError, LemmyErrorType}; use actix_web::{ error::ErrorInternalServerError, + http::StatusCode, middleware::ErrorHandlers, test, web, @@ -45,7 +46,6 @@ mod tests { Handler, Responder, }; - use http::StatusCode; use pretty_assertions::assert_eq; #[actix_web::test] From 3d8bd39d864c767b3d553b550e50659542fe9576 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Wed, 11 Sep 2024 15:03:59 +0200 Subject: [PATCH 09/13] use release --- Cargo.lock | 5 +++-- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 45719332ce..7ad97906cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,8 +16,9 @@ checksum = "8f27d075294830fcab6f66e320dab524bc6d048f4a151698e153205559113772" [[package]] name = "activitypub_federation" -version = "0.5.8" -source = "git+https://github.com/pbzweihander/activitypub-federation-rust.git?branch=upgrade-axum#88d999a6b5eb9367922af06ba118c7acffdbc75e" +version = "0.6.0-alpha1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a91a6511b03a39b5c3d9b0351b1899e9a7774c44506ae648bea91e6f0b4bdd8" dependencies = [ "activitystreams-kinds", "actix-web", diff --git a/Cargo.toml b/Cargo.toml index f746e9a084..bd2cf080b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,7 +91,7 @@ lemmy_db_views = { version = "=0.19.6-beta.7", path = "./crates/db_views" } lemmy_db_views_actor = { version = "=0.19.6-beta.7", path = "./crates/db_views_actor" } lemmy_db_views_moderator = { version = "=0.19.6-beta.7", path = "./crates/db_views_moderator" } lemmy_federate = { version = "=0.19.6-beta.7", path = "./crates/federate" } -activitypub_federation = { git = "https://github.com/pbzweihander/activitypub-federation-rust.git", branch = "upgrade-axum", default-features = false, features = [ +activitypub_federation = { version = "0.6.0-alpha1", default-features = false, features = [ "actix-web", ] } diesel = "2.1.6" From 373c61a11754344f791f7ade23b4075490c8b32f Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Wed, 11 Sep 2024 15:14:42 +0200 Subject: [PATCH 10/13] upgrade more deps --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index bd2cf080b2..272691bc78 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -99,7 +99,7 @@ diesel_migrations = "2.1.0" diesel-async = "0.4.1" serde = { version = "1.0.204", features = ["derive"] } serde_with = "3.9.0" -actix-web = { version = "4.8.0", default-features = false, features = [ +actix-web = { version = "4.9.0", default-features = false, features = [ "macros", "rustls-0_23", "compress-brotli", @@ -141,7 +141,7 @@ diesel-derive-enum = { version = "2.1.0", features = ["postgres"] } strum = { version = "0.26.3", features = ["derive"] } itertools = "0.13.0" futures = "0.3.30" -http = "1.0" +http = "1.1" rosetta-i18n = "0.1.3" ts-rs = { version = "7.1.1", features = [ "serde-compat", From 0ece9c82593da20a637182db6f168003c13f497a Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Thu, 12 Sep 2024 10:21:52 +0200 Subject: [PATCH 11/13] machete --- Cargo.lock | 1 - crates/routes/Cargo.toml | 1 - 2 files changed, 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 46b9ec6d1b..1658ff0e38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3112,7 +3112,6 @@ dependencies = [ "tokio", "tracing", "url", - "urlencoding", ] [[package]] diff --git a/crates/routes/Cargo.toml b/crates/routes/Cargo.toml index 3d7a782708..4a8c53dea2 100644 --- a/crates/routes/Cargo.toml +++ b/crates/routes/Cargo.toml @@ -32,6 +32,5 @@ serde = { workspace = true } url = { workspace = true } tracing = { workspace = true } tokio = { workspace = true } -urlencoding = { workspace = true } http.workspace = true rss = "2.0.9" From 0ecd0cfe0e0cc84bfc359ba481935d5df2f5d202 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Thu, 12 Sep 2024 11:04:08 +0200 Subject: [PATCH 12/13] clippy --- crates/federate/src/worker.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/federate/src/worker.rs b/crates/federate/src/worker.rs index f6e70d846f..3a94f21599 100644 --- a/crates/federate/src/worker.rs +++ b/crates/federate/src/worker.rs @@ -688,7 +688,7 @@ mod test { |inbox_sender: actix_web::web::Data>, body: String| async move { tracing::debug!("received activity: {:?}", body); inbox_sender.send(body.clone()).unwrap(); - HttpResponse::new(StatusCode::OK) + HttpResponse::new(actix_web::http::StatusCode::OK) }, ), ) From 799b8b4e1c16cee975a63868702fd313ee6e93d5 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Thu, 12 Sep 2024 11:13:21 +0200 Subject: [PATCH 13/13] clippy --- crates/federate/src/worker.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/federate/src/worker.rs b/crates/federate/src/worker.rs index 3a94f21599..6c83aaa21c 100644 --- a/crates/federate/src/worker.rs +++ b/crates/federate/src/worker.rs @@ -459,7 +459,6 @@ mod test { traits::Crud, }; use lemmy_utils::error::LemmyResult; - use reqwest::StatusCode; use serde_json::{json, Value}; use serial_test::serial; use test_context::{test_context, AsyncTestContext};