Specify dependencies and metadata for entire workspace (#2565)

* Specify dependencies and metadata for entire workspace (fixes #2474)

* building api_common shouldnt depend on diesel

* remove drone task

* try with quotes

* fix clippy

* more clippy
This commit is contained in:
Nutomic 2022-11-17 15:23:01 +00:00 committed by GitHub
parent 63c237d6df
commit df7809fbbb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 361 additions and 365 deletions

View File

@ -57,6 +57,11 @@ steps:
- cargo workspaces exec cargo check --no-default-features - cargo workspaces exec cargo check --no-default-features
- cargo workspaces exec cargo check --all-features - cargo workspaces exec cargo check --all-features
- name: lemmy_api_common doesnt depend on diesel
image: rust:1.64-buster
commands:
- "! cargo tree -p lemmy_api_common --no-default-features -i diesel"
- name: cargo build - name: cargo build
image: clux/muslrust:1.64.0 image: clux/muslrust:1.64.0
commands: commands:

65
Cargo.lock generated
View File

@ -2269,7 +2269,6 @@ dependencies = [
"reqwest-retry", "reqwest-retry",
"reqwest-tracing", "reqwest-tracing",
"serde", "serde",
"tokio",
"tracing", "tracing",
"tracing-actix-web", "tracing-actix-web",
"tracing-error", "tracing-error",
@ -2334,7 +2333,7 @@ dependencies = [
"lemmy_db_views", "lemmy_db_views",
"lemmy_db_views_actor", "lemmy_db_views_actor",
"lemmy_utils", "lemmy_utils",
"opentelemetry 0.18.0", "opentelemetry 0.17.0",
"rand 0.8.5", "rand 0.8.5",
"reqwest-middleware", "reqwest-middleware",
"serde", "serde",
@ -2343,7 +2342,7 @@ dependencies = [
"strum_macros", "strum_macros",
"tokio", "tokio",
"tracing", "tracing",
"tracing-opentelemetry 0.18.0", "tracing-opentelemetry 0.17.4",
] ]
[[package]] [[package]]
@ -2816,16 +2815,6 @@ dependencies = [
"tokio-stream", "tokio-stream",
] ]
[[package]]
name = "opentelemetry"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69d6c3d7288a106c0a363e4b0e8d308058d56902adefb16f4936f417ffef086e"
dependencies = [
"opentelemetry_api",
"opentelemetry_sdk",
]
[[package]] [[package]]
name = "opentelemetry-otlp" name = "opentelemetry-otlp"
version = "0.10.0" version = "0.10.0"
@ -2844,42 +2833,6 @@ dependencies = [
"tonic-build", "tonic-build",
] ]
[[package]]
name = "opentelemetry_api"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c24f96e21e7acc813c7a8394ee94978929db2bcc46cf6b5014fc612bf7760c22"
dependencies = [
"fnv",
"futures-channel",
"futures-util",
"indexmap",
"js-sys",
"once_cell",
"pin-project-lite",
"thiserror",
]
[[package]]
name = "opentelemetry_sdk"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ca41c4933371b61c2a2f214bf16931499af4ec90543604ec828f7a625c09113"
dependencies = [
"async-trait",
"crossbeam-channel",
"dashmap",
"fnv",
"futures-channel",
"futures-executor",
"futures-util",
"once_cell",
"opentelemetry_api",
"percent-encoding",
"rand 0.8.5",
"thiserror",
]
[[package]] [[package]]
name = "overload" name = "overload"
version = "0.1.1" version = "0.1.1"
@ -4547,20 +4500,6 @@ dependencies = [
"tracing-subscriber", "tracing-subscriber",
] ]
[[package]]
name = "tracing-opentelemetry"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21ebb87a95ea13271332df069020513ab70bdb5637ca42d6e492dc3bbbad48de"
dependencies = [
"once_cell",
"opentelemetry 0.18.0",
"tracing",
"tracing-core",
"tracing-log",
"tracing-subscriber",
]
[[package]] [[package]]
name = "tracing-subscriber" name = "tracing-subscriber"
version = "0.3.16" version = "0.3.16"

View File

@ -1,12 +1,19 @@
[package] [workspace.package]
name = "lemmy_server"
version = "0.16.5" version = "0.16.5"
edition = "2021" edition = "2021"
description = "A link aggregator for the fediverse" description = "A link aggregator for the fediverse"
license = "AGPL-3.0" license = "AGPL-3.0"
homepage = "https://join-lemmy.org/" homepage = "https://join-lemmy.org/"
documentation = "https://join-lemmy.org/docs/en/index.html" documentation = "https://join-lemmy.org/docs/en/index.html"
rust-version = "1.57"
[package]
name = "lemmy_server"
version.workspace = true
edition.workspace = true
description.workspace = true
license.workspace = true
homepage.workspace = true
documentation.workspace = true
[lib] [lib]
doctest = false doctest = false
@ -40,15 +47,18 @@ members = [
"crates/routes" "crates/routes"
] ]
[dependencies] [workspace.dependencies]
lemmy_api = { version = "=0.16.5", path = "./crates/api" } lemmy_api = { version = "=0.16.5", path = "./crates/api" }
lemmy_api_crud = { version = "=0.16.5", path = "./crates/api_crud" } lemmy_api_crud = { version = "=0.16.5", path = "./crates/api_crud" }
lemmy_apub = { version = "=0.16.5", path = "./crates/apub" } lemmy_apub = { version = "=0.16.5", path = "./crates/apub" }
lemmy_utils = { version = "=0.16.5", path = "./crates/utils" } lemmy_utils = { version = "=0.16.5", path = "./crates/utils" }
lemmy_db_schema = { version = "=0.16.5", path = "./crates/db_schema" } lemmy_db_schema = { version = "=0.16.5", path = "./crates/db_schema" }
lemmy_api_common = { version = "=0.16.5", path = "crates/api_common" } lemmy_api_common = { version = "=0.16.5", path = "./crates/api_common" }
lemmy_websocket = { version = "=0.16.5", path = "./crates/websocket" } lemmy_websocket = { version = "=0.16.5", path = "./crates/websocket" }
lemmy_routes = { version = "=0.16.5", path = "./crates/routes" } lemmy_routes = { version = "=0.16.5", path = "./crates/routes" }
lemmy_db_views = { version = "=0.16.5", path = "./crates/db_views" }
lemmy_db_views_actor = { version = "=0.16.5", path = "./crates/db_views_actor" }
lemmy_db_views_moderator = { version = "=0.16.5", path = "./crates/db_views_moderator" }
activitypub_federation = "0.3.2" activitypub_federation = "0.3.2"
diesel = "2.0.2" diesel = "2.0.2"
diesel_migrations = "2.0.0" diesel_migrations = "2.0.0"
@ -69,8 +79,64 @@ clokwerk = "0.3.5"
doku = { version = "0.20.0", features = ["url-2"] } doku = { version = "0.20.0", features = ["url-2"] }
parking_lot = "0.12.1" parking_lot = "0.12.1"
reqwest-retry = "0.1.5" reqwest-retry = "0.1.5"
console-subscriber = { version = "0.1.8", optional = true } bcrypt = "0.13.0"
opentelemetry = { version = "0.17.0", features = ["rt-tokio"], optional = true } chrono = { version = "0.4.22", features = ["serde"], default-features = false }
opentelemetry-otlp = { version = "0.10.0", optional = true } serde_json = { version = "1.0.87", features = ["preserve_order"] }
tracing-opentelemetry = { version = "0.17.2", optional = true } base64 = "0.13.1"
uuid = { version = "1.2.1", features = ["serde", "v4"] }
async-trait = "0.1.58"
captcha = "0.0.9"
anyhow = "1.0.66"
diesel_ltree = "0.3.0"
typed-builder = "0.10.0"
serial_test = "0.9.0"
tokio = "1.21.2" tokio = "1.21.2"
sha2 = "0.10.6"
regex = "1.6.0"
once_cell = "1.15.0"
diesel-derive-newtype = "2.0.0-rc.0"
strum = "0.24.1"
strum_macros = "0.24.3"
itertools = "0.10.5"
futures = "0.3.25"
http = "0.2.8"
actix-rt = { version = "2.7.0", default-features = false }
percent-encoding = "2.2.0"
rosetta-i18n = "0.1.2"
rand = "0.8.5"
opentelemetry = { version = "0.17.0", features = ["rt-tokio"] }
tracing-opentelemetry = { version = "0.17.2" }
[dependencies]
lemmy_api = { workspace = true }
lemmy_api_crud = { workspace = true }
lemmy_apub = { workspace = true }
lemmy_utils = { workspace = true }
lemmy_db_schema = { workspace = true }
lemmy_api_common = { workspace = true }
lemmy_websocket = { workspace = true }
lemmy_routes = { workspace = true }
activitypub_federation = { workspace = true }
diesel = { workspace = true }
diesel_migrations = { workspace = true }
diesel-async = { workspace = true }
serde = { workspace = true }
actix = { 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 }
reqwest-middleware = { workspace = true }
reqwest-tracing = { workspace = true }
clokwerk = { workspace = true }
doku = { workspace = true }
parking_lot = { workspace = true }
reqwest-retry = { workspace = true }
tracing-opentelemetry = { workspace = true, optional = true }
opentelemetry = { workspace = true, optional = true }
console-subscriber = { version = "0.1.8", optional = true }
opentelemetry-otlp = { version = "0.10.0", optional = true }

View File

@ -1,12 +1,11 @@
[package] [package]
name = "lemmy_api" name = "lemmy_api"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
name = "lemmy_api" name = "lemmy_api"
@ -14,28 +13,28 @@ path = "src/lib.rs"
doctest = false doctest = false
[dependencies] [dependencies]
lemmy_apub = { version = "=0.16.5", path = "../apub" } lemmy_apub = { workspace = true }
lemmy_utils = { version = "=0.16.5", path = "../utils" } lemmy_utils = { workspace = true }
lemmy_db_schema = { version = "=0.16.5", path = "../db_schema", features = ["full"] } lemmy_db_schema = { workspace = true, features = ["full"] }
lemmy_db_views = { version = "=0.16.5", path = "../db_views", features = ["full"] } lemmy_db_views = { workspace = true, features = ["full"] }
lemmy_db_views_moderator = { version = "=0.16.5", path = "../db_views_moderator", features = ["full"] } lemmy_db_views_moderator = { workspace = true, features = ["full"] }
lemmy_db_views_actor = { version = "=0.16.5", path = "../db_views_actor", features = ["full"] } lemmy_db_views_actor = { workspace = true, features = ["full"] }
lemmy_api_common = { version = "=0.16.5", path = "../api_common", features = ["full"] } lemmy_api_common = { workspace = true, features = ["full"] }
lemmy_websocket = { version = "=0.16.5", path = "../websocket" } lemmy_websocket = { workspace = true }
activitypub_federation = "0.3.2" activitypub_federation = { workspace = true }
diesel = "2.0.2" diesel = { workspace = true }
bcrypt = "0.13.0" bcrypt = { workspace = true }
chrono = { version = "0.4.22", features = ["serde"], default-features = false } chrono = { workspace = true }
serde_json = { version = "1.0.87", features = ["preserve_order"] } serde_json = { workspace = true }
serde = { version = "1.0.147", features = ["derive"] } serde = { workspace = true }
actix-web = { version = "4.2.1", default-features = false } actix-web = { workspace = true }
base64 = "0.13.1" base64 = { workspace = true }
uuid = { version = "1.2.1", features = ["serde", "v4"] } uuid = { workspace = true }
async-trait = "0.1.58" async-trait = { workspace = true }
captcha = "0.0.9" captcha = { workspace = true }
anyhow = "1.0.66" anyhow = { workspace = true }
tracing = "0.1.37" tracing = { workspace = true }
[dev-dependencies] [dev-dependencies]
serial_test = "0.9.0" serial_test = { workspace = true }
tokio = "1.21.2" tokio = { workspace = true }

View File

@ -1,12 +1,11 @@
[package] [package]
name = "lemmy_api_common" name = "lemmy_api_common"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
name = "lemmy_api_common" name = "lemmy_api_common"
@ -19,24 +18,24 @@ full = ["diesel", "tracing", "rosetta-i18n", "chrono", "actix-web", "lemmy_utils
"percent-encoding", "encoding", "reqwest-middleware", "webpage"] "percent-encoding", "encoding", "reqwest-middleware", "webpage"]
[dependencies] [dependencies]
lemmy_db_views = { version = "=0.16.5", path = "../db_views" } lemmy_db_views = { workspace = true }
lemmy_db_views_moderator = { version = "=0.16.5", path = "../db_views_moderator" } lemmy_db_views_moderator = { workspace = true }
lemmy_db_views_actor = { version = "=0.16.5", path = "../db_views_actor" } lemmy_db_views_actor = { workspace = true }
lemmy_db_schema = { version = "=0.16.5", path = "../db_schema", default-features = false } lemmy_db_schema = { workspace = true, default-features = false }
lemmy_utils = { version = "=0.16.5", path = "../utils", optional = true } lemmy_utils = { workspace = true, optional = true }
serde = { version = "1.0.147", features = ["derive"] } serde = { workspace = true }
url = "2.3.1" url = { workspace = true }
actix-web = { version = "4.2.1", default-features = false, features = ["cookies"], optional = true } actix-web = { workspace = true, features = ["cookies"], optional = true }
chrono = { version = "0.4.22", features = ["serde"], optional = true } chrono = { workspace = true, optional = true }
diesel = { version = "2.0.2", optional = true } diesel = { workspace = true, optional = true }
tracing = { version = "0.1.36", optional = true } tracing = { workspace = true, optional = true }
rosetta-i18n = { version = "0.1.2", optional = true } reqwest-middleware = { workspace = true, optional = true }
percent-encoding = { version = "2.2.0", optional = true } regex = { workspace = true }
encoding = { version = "0.2.33", optional = true } rosetta-i18n = { workspace = true, optional = true }
reqwest-middleware = { version = "0.1.6", optional = true } percent-encoding = { workspace = true, optional = true }
webpage = { version = "1.4.0", default-features = false, features = ["serde"], optional = true } webpage = { version = "1.4.0", default-features = false, features = ["serde"], optional = true }
regex = "1.6.0" encoding = { version = "0.2.33", optional = true }
[dev-dependencies] [dev-dependencies]
actix-rt = { version = "2.7.0", default-features = false } actix-rt = { workspace = true }
reqwest = { version = "0.11.12", features = ["json"] } reqwest = { workspace = true }

View File

@ -274,8 +274,8 @@ pub async fn build_federated_instances(
let blocked = Instance::blocklist(pool).await?; let blocked = Instance::blocklist(pool).await?;
// These can return empty vectors, so convert them to options // These can return empty vectors, so convert them to options
let allowed = (!allowed.is_empty()).then(|| allowed); let allowed = (!allowed.is_empty()).then_some(allowed);
let blocked = (!blocked.is_empty()).then(|| blocked); let blocked = (!blocked.is_empty()).then_some(blocked);
Ok(Some(FederatedInstances { Ok(Some(FederatedInstances {
linked, linked,

View File

@ -1,27 +1,26 @@
[package] [package]
name = "lemmy_api_crud" name = "lemmy_api_crud"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[dependencies] [dependencies]
lemmy_apub = { version = "=0.16.5", path = "../apub" } lemmy_apub = { workspace = true }
lemmy_utils = { version = "=0.16.5", path = "../utils" } lemmy_utils = { workspace = true }
lemmy_db_schema = { version = "=0.16.5", path = "../db_schema", features = ["full"] } lemmy_db_schema = { workspace = true, features = ["full"] }
lemmy_db_views = { version = "=0.16.5", path = "../db_views", features = ["full"] } lemmy_db_views = { workspace = true, features = ["full"] }
lemmy_db_views_actor = { version = "=0.16.5", path = "../db_views_actor", features = ["full"] } lemmy_db_views_actor = { workspace = true, features = ["full"] }
lemmy_api_common = { version = "=0.16.5", path = "../api_common", features = ["full"] } lemmy_api_common = { workspace = true, features = ["full"] }
lemmy_websocket = { version = "=0.16.5", path = "../websocket" } lemmy_websocket = { workspace = true }
activitypub_federation = "0.3.2" activitypub_federation = { workspace = true }
bcrypt = "0.13.0" bcrypt = { workspace = true }
serde_json = { version = "1.0.87", features = ["preserve_order"] } serde_json = { workspace = true }
serde = { version = "1.0.147", features = ["derive"] } serde = { workspace = true }
actix-web = { version = "4.2.1", default-features = false } actix-web = { workspace = true }
tracing = "0.1.36" tracing = { workspace = true }
url = { version = "2.3.1", features = ["serde"] } url = { workspace = true }
async-trait = "0.1.58" async-trait = { workspace = true }
webmention = "0.4.0" webmention = "0.4.0"

View File

@ -1,12 +1,11 @@
[package] [package]
name = "lemmy_apub" name = "lemmy_apub"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
name = "lemmy_apub" name = "lemmy_apub"
@ -14,41 +13,41 @@ path = "src/lib.rs"
doctest = false doctest = false
[dependencies] [dependencies]
lemmy_utils = { version = "=0.16.5", path = "../utils" } lemmy_utils = { workspace = true }
lemmy_db_schema = { version = "=0.16.5", path = "../db_schema", features = ["full"] } lemmy_db_schema = { workspace = true, features = ["full"] }
lemmy_db_views = { version = "=0.16.5", path = "../db_views", features = ["full"] } lemmy_db_views = { workspace = true, features = ["full"] }
lemmy_db_views_actor = { version = "=0.16.5", path = "../db_views_actor", features = ["full"] } lemmy_db_views_actor = { workspace = true, features = ["full"] }
lemmy_api_common = { version = "=0.16.5", path = "../api_common", features = ["full"] } lemmy_api_common = { workspace = true, features = ["full"] }
lemmy_websocket = { version = "=0.16.5", path = "../websocket" } lemmy_websocket = { workspace = true }
activitypub_federation = "0.3.2" activitypub_federation = { workspace = true }
diesel = "2.0.2" diesel = { workspace = true }
activitystreams-kinds = "0.2.1" chrono = { workspace = true }
chrono = { version = "0.4.22", features = ["serde"], default-features = false } serde_json = { workspace = true }
serde_json = { version = "1.0.87", features = ["preserve_order"] } serde = { workspace = true }
serde = { version = "1.0.147", features = ["derive"] } actix = { workspace = true }
serde_with = "1.14.0" actix-web = { workspace = true }
actix = "0.13.0" actix-rt = { workspace = true }
actix-web = { version = "4.2.1", default-features = false } tracing = { workspace = true }
actix-rt = { version = "2.7.0", default-features = false } strum_macros = { workspace = true }
tracing = "0.1.36" url = { workspace = true }
strum_macros = "0.24.3" http = { workspace = true }
url = { version = "2.3.1", features = ["serde"] } futures = { workspace = true }
http = "0.2.8" itertools = { workspace = true }
http-signature-normalization-actix = { version = "0.6.1", default-features = false, features = ["server", "sha-2"] } uuid = { workspace = true }
futures = "0.3.25" sha2 = { workspace = true }
itertools = "0.10.5" async-trait = { workspace = true }
uuid = { version = "1.2.1", features = ["serde", "v4"] } anyhow = { workspace = true }
sha2 = "0.10.6" reqwest = { workspace = true }
async-trait = "0.1.58" once_cell = { workspace = true }
anyhow = "1.0.66" tokio = { workspace = true }
reqwest = { version = "0.11.12", features = ["json"] }
html2md = "0.2.13" html2md = "0.2.13"
once_cell = "1.15.0" serde_with = "1.14.0"
tokio = "1.21.2" activitystreams-kinds = "0.2.1"
http-signature-normalization-actix = { version = "0.6.1", default-features = false, features = ["server", "sha-2"] }
enum_delegate = "0.2.0" enum_delegate = "0.2.0"
[dev-dependencies] [dev-dependencies]
serial_test = "0.9.0" serial_test = { workspace = true }
assert-json-diff = "2.0.2" reqwest-middleware = { workspace = true }
reqwest-middleware = "0.1.6"
task-local-extensions = "0.1.3" task-local-extensions = "0.1.3"
assert-json-diff = "2.0.2"

View File

@ -151,8 +151,8 @@ pub(crate) async fn fetch_local_site_data(
let blocked = Instance::blocklist(pool).await?; let blocked = Instance::blocklist(pool).await?;
// These can return empty vectors, so convert them to options // These can return empty vectors, so convert them to options
let allowed_instances = (!allowed.is_empty()).then(|| allowed); let allowed_instances = (!allowed.is_empty()).then_some(allowed);
let blocked_instances = (!blocked.is_empty()).then(|| blocked); let blocked_instances = (!blocked.is_empty()).then_some(blocked);
Ok(LocalSiteData { Ok(LocalSiteData {
local_site, local_site,

View File

@ -1,12 +1,11 @@
[package] [package]
name = "lemmy_db_schema" name = "lemmy_db_schema"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
name = "lemmy_db_schema" name = "lemmy_db_schema"
@ -15,31 +14,32 @@ doctest = false
[features] [features]
full = ["diesel", "diesel-derive-newtype", "diesel_migrations", "bcrypt", "lemmy_utils", full = ["diesel", "diesel-derive-newtype", "diesel_migrations", "bcrypt", "lemmy_utils",
"activitypub_federation", "sha2", "regex", "once_cell", "serde_json"] "activitypub_federation", "sha2", "regex", "once_cell", "serde_json", "diesel_ltree",
"diesel-async", "bb8"]
[dependencies] [dependencies]
chrono = { version = "0.4.22", features = ["serde"], default-features = false } chrono = { workspace = true }
serde = { version = "1.0.147", features = ["derive"] } serde = { workspace = true }
url = { version = "2.3.1", features = ["serde"] } url = { workspace = true }
strum = "0.24.1" strum = { workspace = true }
strum_macros = "0.24.3" strum_macros = { workspace = true }
serde_json = { version = "1.0.87", features = ["preserve_order"], optional = true } serde_json = { workspace = true, optional = true }
activitypub_federation = {version = "0.3.2", optional = true } activitypub_federation = { workspace = true, optional = true }
lemmy_utils = { version = "=0.16.5", path = "../utils", optional = true } lemmy_utils = { workspace = true, optional = true }
bcrypt = { version = "0.13.0", optional = true } bcrypt = { workspace = true, optional = true }
diesel = { version = "2.0.2", features = ["postgres","chrono", "serde_json"], optional = true } diesel = { workspace = true, features = ["postgres","chrono", "serde_json"], optional = true }
diesel-derive-newtype = { version = "2.0.0-rc.0", optional = true } diesel-derive-newtype = { workspace = true, optional = true }
diesel_migrations = { version = "2.0.0", optional = true } diesel_migrations = { workspace = true, optional = true }
diesel-async = { version = "0.1.1", features = ["postgres", "bb8"] } diesel-async = { workspace = true, features = ["postgres", "bb8"], optional = true }
bb8 = "0.8.0" sha2 = { workspace = true, optional = true }
sha2 = { version = "0.10.6", optional = true } regex = { workspace = true, optional = true }
regex = { version = "1.6.0", optional = true } once_cell = { workspace = true, optional = true }
once_cell = { version = "1.15.0", optional = true } diesel_ltree = { workspace = true, optional = true }
diesel_ltree = "0.3.0" typed-builder = { workspace = true }
typed-builder = "0.10.0" async-trait = { workspace = true }
async-trait = "0.1.58" tokio = { workspace = true }
tokio = "1.21.2" bb8 = { version = "0.8.0", optional = true }
[dev-dependencies] [dev-dependencies]
serial_test = "0.9.0" serial_test = { workspace = true }

View File

@ -8,10 +8,10 @@ extern crate diesel;
extern crate diesel_derive_newtype; extern crate diesel_derive_newtype;
// this is used in tests // this is used in tests
#[cfg(feature = "full")] #[cfg(feature = "full")]
#[allow(unused_imports)]
#[macro_use] #[macro_use]
extern crate diesel_migrations; extern crate diesel_migrations;
#[cfg(feature = "full")]
#[macro_use] #[macro_use]
extern crate async_trait; extern crate async_trait;

View File

@ -1,3 +1,4 @@
#[cfg(feature = "full")]
use diesel_ltree::Ltree; use diesel_ltree::Ltree;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::{ use std::{
@ -111,6 +112,7 @@ pub struct LocalSiteId(i32);
#[cfg_attr(feature = "full", diesel(sql_type = diesel::sql_types::Text))] #[cfg_attr(feature = "full", diesel(sql_type = diesel::sql_types::Text))]
pub struct DbUrl(pub(crate) Url); pub struct DbUrl(pub(crate) Url);
#[cfg(feature = "full")]
#[derive(Serialize, Deserialize)] #[derive(Serialize, Deserialize)]
#[serde(remote = "Ltree")] #[serde(remote = "Ltree")]
/// Do remote derivation for the Ltree struct /// Do remote derivation for the Ltree struct

View File

@ -1,6 +1,9 @@
use crate::newtypes::{CommentId, DbUrl, LanguageId, LtreeDef, PersonId, PostId}; #[cfg(feature = "full")]
use crate::newtypes::LtreeDef;
use crate::newtypes::{CommentId, DbUrl, LanguageId, PersonId, PostId};
#[cfg(feature = "full")] #[cfg(feature = "full")]
use crate::schema::{comment, comment_like, comment_saved}; use crate::schema::{comment, comment_like, comment_saved};
#[cfg(feature = "full")]
use diesel_ltree::Ltree; use diesel_ltree::Ltree;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use typed_builder::TypedBuilder; use typed_builder::TypedBuilder;
@ -20,6 +23,7 @@ pub struct Comment {
pub deleted: bool, pub deleted: bool,
pub ap_id: DbUrl, pub ap_id: DbUrl,
pub local: bool, pub local: bool,
#[cfg(feature = "full")]
#[serde(with = "LtreeDef")] #[serde(with = "LtreeDef")]
pub path: Ltree, pub path: Ltree,
pub distinguished: bool, pub distinguished: bool,

View File

@ -1,12 +1,11 @@
[package] [package]
name = "lemmy_db_views" name = "lemmy_db_views"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
doctest = false doctest = false
@ -15,15 +14,15 @@ doctest = false
full = ["lemmy_db_schema/full", "diesel", "diesel-async", "diesel_ltree", "tracing"] full = ["lemmy_db_schema/full", "diesel", "diesel-async", "diesel_ltree", "tracing"]
[dependencies] [dependencies]
lemmy_db_schema = { version = "=0.16.5", path = "../db_schema" } lemmy_db_schema = { workspace = true }
diesel = { version = "2.0.2", features = ["postgres","chrono","serde_json"], optional = true } diesel = { workspace = true, optional = true }
diesel-async = { version = "0.1.1", features = ["postgres", "bb8"], optional = true} diesel-async = { workspace = true, optional = true}
diesel_ltree = { version = "0.3.0", optional = true} diesel_ltree = { workspace = true, optional = true}
serde = { version = "1.0.147", features = ["derive"] } serde = { workspace = true }
tracing = { version = "0.1.36", optional = true } tracing = { workspace = true, optional = true }
typed-builder = "0.10.0" typed-builder = { workspace = true }
url = { version = "2.3.1", features = ["serde"] } url = { workspace = true }
[dev-dependencies] [dev-dependencies]
serial_test = "0.9.0" serial_test = { workspace = true }
tokio = "1.21.2" tokio = { workspace = true }

View File

@ -1,12 +1,11 @@
[package] [package]
name = "lemmy_db_views_actor" name = "lemmy_db_views_actor"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
doctest = false doctest = false
@ -15,8 +14,8 @@ doctest = false
full = ["lemmy_db_schema/full", "diesel", "diesel-async"] full = ["lemmy_db_schema/full", "diesel", "diesel-async"]
[dependencies] [dependencies]
lemmy_db_schema = { version = "=0.16.5", path = "../db_schema" } lemmy_db_schema = { workspace = true }
diesel = { version = "2.0.2", features = ["postgres","chrono","serde_json"], optional = true } diesel = { workspace = true, features = ["postgres","chrono","serde_json"], optional = true }
diesel-async = { version = "0.1.1", features = ["postgres", "bb8"], optional = true } diesel-async = { workspace = true, features = ["postgres", "bb8"], optional = true }
serde = { version = "1.0.147", features = ["derive"] } serde = { workspace = true }
typed-builder = "0.10.0" typed-builder = { workspace = true }

View File

@ -1,12 +1,11 @@
[package] [package]
name = "lemmy_db_views_moderator" name = "lemmy_db_views_moderator"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
doctest = false doctest = false
@ -15,7 +14,7 @@ doctest = false
full = ["lemmy_db_schema/full", "diesel", "diesel-async"] full = ["lemmy_db_schema/full", "diesel", "diesel-async"]
[dependencies] [dependencies]
lemmy_db_schema = { version = "=0.16.5", path = "../db_schema" } lemmy_db_schema = { workspace = true }
diesel = { version = "2.0.2", features = ["postgres","chrono","serde_json"], optional = true } diesel = { workspace = true, features = ["postgres","chrono","serde_json"], optional = true }
diesel-async = { version = "0.1.1", features = ["postgres", "bb8"], optional = true } diesel-async = { workspace = true, features = ["postgres", "bb8"], optional = true }
serde = { version = "1.0.147", features = ["derive"] } serde = { workspace = true }

View File

@ -1,35 +1,34 @@
[package] [package]
name = "lemmy_routes" name = "lemmy_routes"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
doctest = false doctest = false
[dependencies] [dependencies]
lemmy_utils = { version = "=0.16.5", path = "../utils" } lemmy_utils = { workspace = true }
lemmy_websocket = { version = "=0.16.5", path = "../websocket" } lemmy_websocket = { workspace = true }
lemmy_db_views = { version = "=0.16.5", path = "../db_views" } lemmy_db_views = { workspace = true }
lemmy_db_views_actor = { version = "=0.16.5", path = "../db_views_actor" } lemmy_db_views_actor = { workspace = true }
lemmy_db_schema = { version = "=0.16.5", path = "../db_schema" } lemmy_db_schema = { workspace = true }
lemmy_api_common = { version = "=0.16.5", path = "../api_common" } lemmy_api_common = { workspace = true }
lemmy_apub = { version = "=0.16.5", path = "../apub" } lemmy_apub = { workspace = true }
diesel = "2.0.2" diesel = { workspace = true }
actix-web = { version = "4.2.1", default-features = false, features = ["rustls"] } actix-web = { workspace = true }
anyhow = "1.0.66" anyhow = { workspace = true }
chrono = { version = "0.4.22", features = ["serde"], default-features = false } chrono = { workspace = true }
futures = "0.3.25" futures = { workspace = true }
reqwest = { version = "0.11.12", features = ["stream"] } reqwest = { workspace = true, features = ["stream"] }
reqwest-middleware = "0.1.6" reqwest-middleware = { workspace = true }
serde = { workspace = true }
url = { workspace = true }
strum = { workspace = true }
once_cell = { workspace = true }
tracing = { workspace = true }
tokio = { workspace = true }
rss = "2.0.1" rss = "2.0.1"
serde = { version = "1.0.147", features = ["derive"] }
url = { version = "2.3.1", features = ["serde"] }
strum = "0.24.1"
once_cell = "1.15.0"
tracing = "0.1.36"
tokio = { version = "1.21.2", features = ["sync"] }

View File

@ -1,12 +1,11 @@
[package] [package]
name = "lemmy_utils" name = "lemmy_utils"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
name = "lemmy_utils" name = "lemmy_utils"
@ -14,38 +13,38 @@ path = "src/lib.rs"
doctest = false doctest = false
[dependencies] [dependencies]
regex = "1.6.0" regex = { workspace = true }
chrono = { version = "0.4.22", features = ["serde", "clock"], default-features = false } chrono = { workspace = true }
lettre = "0.10.1" tracing = { workspace = true }
tracing = "0.1.37" tracing-error = { workspace = true }
tracing-error = "0.2.0" itertools = { workspace = true }
itertools = "0.10.5" rand = { workspace = true }
rand = "0.8.5" serde = { workspace = true }
serde = { version = "1.0.147", features = ["derive"] } serde_json = { workspace = true }
serde_json = { version = "1.0.87", features = ["preserve_order"] } once_cell = { workspace = true }
comrak = { version = "0.14.0", default-features = false } url = { workspace = true }
once_cell = "1.15.0" actix-web = { workspace = true }
anyhow = { workspace = true }
reqwest-middleware = { workspace = true }
strum = { workspace = true }
strum_macros = { workspace = true }
futures = { workspace = true }
diesel = { workspace = true, features = ["chrono"] }
http = { workspace = true }
doku = { workspace = true, features = ["url-2"] }
uuid = { workspace = true, features = ["serde", "v4"] }
rosetta-i18n = { workspace = true }
parking_lot = { workspace = true }
typed-builder = { workspace = true }
percent-encoding = { workspace = true }
tokio = { workspace = true }
openssl = "0.10.42" openssl = "0.10.42"
url = { version = "2.3.1", features = ["serde"] } html2text = "0.4.3"
actix-web = { version = "4.2.1", default-features = false, features = ["rustls"] }
anyhow = "1.0.66"
reqwest-middleware = "0.1.6"
strum = "0.24.1"
strum_macros = "0.24.3"
futures = "0.3.25"
diesel = { version = "2.0.2", features = ["chrono"] }
http = "0.2.8"
deser-hjson = "1.0.2" deser-hjson = "1.0.2"
smart-default = "0.6.0" smart-default = "0.6.0"
jsonwebtoken = "8.1.1" jsonwebtoken = "8.1.1"
doku = { version = "0.20.0", features = ["url-2"] } lettre = "0.10.1"
uuid = { version = "1.2.1", features = ["serde", "v4"] } comrak = { version = "0.14.0", default-features = false }
html2text = "0.4.3"
rosetta-i18n = "0.1.2"
parking_lot = "0.12.1"
typed-builder = "0.10.0"
percent-encoding = "2.2.0"
tokio = "1.21.2"
[build-dependencies] [build-dependencies]
rosetta-build = "0.1.2" rosetta-build = "0.1.2"

View File

@ -1,12 +1,11 @@
[package] [package]
name = "lemmy_websocket" name = "lemmy_websocket"
version = "0.16.5" version.workspace = true
edition = "2021" edition.workspace = true
description = "A link aggregator for the fediverse" description.workspace = true
license = "AGPL-3.0" license.workspace = true
homepage = "https://join-lemmy.org/" homepage.workspace = true
documentation = "https://join-lemmy.org/docs/en/index.html" documentation.workspace = true
rust-version = "1.57"
[lib] [lib]
name = "lemmy_websocket" name = "lemmy_websocket"
@ -14,25 +13,25 @@ path = "src/lib.rs"
doctest = false doctest = false
[dependencies] [dependencies]
lemmy_utils = { version = "=0.16.5", path = "../utils" } lemmy_utils = { workspace = true }
lemmy_api_common = { version = "=0.16.5", path = "../api_common", features = ["full"] } lemmy_api_common = { workspace = true, features = ["full"] }
lemmy_db_schema = { version = "=0.16.5", path = "../db_schema", features = ["full"] } lemmy_db_schema = { workspace = true, features = ["full"] }
lemmy_db_views = { version = "=0.16.5", path = "../db_views", features = ["full"] } lemmy_db_views = { workspace = true, features = ["full"] }
lemmy_db_views_actor = { version = "=0.16.5", path = "../db_views_actor", features = ["full"] } lemmy_db_views_actor = { workspace = true, features = ["full"] }
reqwest-middleware = "0.1.6" reqwest-middleware = { workspace = true }
tracing = "0.1.36" tracing = { workspace = true }
rand = "0.8.5" rand = { workspace = true }
serde = { version = "1.0.147", features = ["derive"] } serde = { workspace = true }
serde_json = { version = "1.0.87", features = ["preserve_order"] } serde_json = { workspace = true }
actix = "0.13.0" actix = { workspace = true }
anyhow = "1.0.66" anyhow = { workspace = true }
diesel = "2.0.2" diesel = { workspace = true }
background-jobs = "0.13.0" tokio = { workspace = true }
tokio = "1.21.2" strum = { workspace = true }
strum = "0.24.1" strum_macros = { workspace = true }
strum_macros = "0.24.3" chrono = { workspace = true }
chrono = { version = "0.4.22", features = ["serde"], default-features = false } actix-web = { workspace = true }
actix-web = { version = "4.2.1", default-features = false, features = ["rustls"] } opentelemetry = { workspace = true }
tracing-opentelemetry = { workspace = true }
actix-web-actors = { version = "4.1.0", default-features = false } actix-web-actors = { version = "4.1.0", default-features = false }
opentelemetry = "0.18.0" background-jobs = "0.13.0"
tracing-opentelemetry = "0.18.0"

View File

@ -32,16 +32,6 @@ fi
# Update crate versions for crates.io # Update crate versions for crates.io
pushd ../../ pushd ../../
old_tag=$(head -3 Cargo.toml | tail -1 | cut -d'"' -f 2) old_tag=$(head -3 Cargo.toml | tail -1 | cut -d'"' -f 2)
for crate in crates/*; do
pushd $crate
# update version of the crate itself (only first occurence)
# https://stackoverflow.com/a/9453461
sed -i "0,/version = \"$old_tag\"/s//version = \"$new_tag\"/g" Cargo.toml
# update version of lemmy dependencies
sed -i "s/{ version = \"=$old_tag\", path/{ version = \"=$new_tag\", path/g" Cargo.toml
git add Cargo.toml
popd
done
# same as above, for the main cargo.toml # same as above, for the main cargo.toml
sed -i "s/{ version = \"=$old_tag\", path/{ version = \"=$new_tag\", path/g" Cargo.toml sed -i "s/{ version = \"=$old_tag\", path/{ version = \"=$new_tag\", path/g" Cargo.toml
sed -i "s/version = \"$old_tag\"/version = \"$new_tag\"/g" Cargo.toml sed -i "s/version = \"$old_tag\"/version = \"$new_tag\"/g" Cargo.toml