Merge branch 'main' into clear_deleted_posts_comments

This commit is contained in:
Vijay Ramesh 2023-06-22 09:59:43 -07:00 committed by GitHub
commit 418bca78e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 66 additions and 116 deletions

View file

@ -2,7 +2,7 @@
# See https://github.com/woodpecker-ci/woodpecker/issues/1677
variables:
- &muslrust_image "clux/muslrust:1.67.0"
- &muslrust_image "clux/muslrust:1.70.0"
# Broken for cron jobs currently, see
# https://github.com/woodpecker-ci/woodpecker/issues/1716

93
Cargo.lock generated
View file

@ -14,15 +14,14 @@ dependencies = [
[[package]]
name = "activitypub_federation"
version = "0.4.1"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f85cab86a72489b908adfeec61a4f104124b01784b9a5bb721c988727c363dad"
checksum = "27540f6c4b72c91176610ed5279061a021387f972c7c6f42c41032b78a808267"
dependencies = [
"activitystreams-kinds",
"actix-web",
"anyhow",
"async-trait",
"background-jobs",
"base64 0.21.2",
"bytes",
"chrono",
@ -46,6 +45,7 @@ dependencies = [
"serde_json",
"sha2",
"thiserror",
"tokio",
"tracing",
"url",
]
@ -418,15 +418,6 @@ dependencies = [
"syn 1.0.103",
]
[[package]]
name = "async-mutex"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e"
dependencies = [
"event-listener",
]
[[package]]
name = "async-stream"
version = "0.3.3"
@ -602,56 +593,6 @@ dependencies = [
"tower-service",
]
[[package]]
name = "background-jobs"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "793a813f9145c5f3a27b8dcd834c0927de68bbd60d53a369e5894f3cc5759020"
dependencies = [
"background-jobs-actix",
"background-jobs-core",
]
[[package]]
name = "background-jobs-actix"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8660626a2d8781b50cbe0e3b63d8e2a7e08a90e80fa2bca8e8cc19deff72ebf4"
dependencies = [
"actix-rt",
"anyhow",
"async-mutex",
"async-trait",
"background-jobs-core",
"num_cpus",
"serde",
"serde_json",
"thiserror",
"tokio",
"tracing",
"tracing-futures",
"uuid",
]
[[package]]
name = "background-jobs-core"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48e78e842fe2ae461319e3d1843c12e301630e65650332b02032ac70b0dfc66f"
dependencies = [
"actix-rt",
"anyhow",
"async-trait",
"event-listener",
"serde",
"serde_json",
"thiserror",
"time 0.3.15",
"tracing",
"tracing-futures",
"uuid",
]
[[package]]
name = "backtrace"
version = "0.3.67"
@ -1762,12 +1703,6 @@ dependencies = [
"libc",
]
[[package]]
name = "event-listener"
version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
[[package]]
name = "eyre"
version = "0.6.8"
@ -2583,7 +2518,7 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "lemmy_api"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"actix-web",
"anyhow",
@ -2606,7 +2541,7 @@ dependencies = [
[[package]]
name = "lemmy_api_common"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"actix-rt",
"actix-web",
@ -2635,7 +2570,7 @@ dependencies = [
[[package]]
name = "lemmy_api_crud"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"activitypub_federation",
"actix-web",
@ -2654,7 +2589,7 @@ dependencies = [
[[package]]
name = "lemmy_apub"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"activitypub_federation",
"actix-rt",
@ -2692,7 +2627,7 @@ dependencies = [
[[package]]
name = "lemmy_db_schema"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"activitypub_federation",
"async-trait",
@ -2724,7 +2659,7 @@ dependencies = [
[[package]]
name = "lemmy_db_views"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"diesel",
"diesel-async",
@ -2741,7 +2676,7 @@ dependencies = [
[[package]]
name = "lemmy_db_views_actor"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"diesel",
"diesel-async",
@ -2754,7 +2689,7 @@ dependencies = [
[[package]]
name = "lemmy_db_views_moderator"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"diesel",
"diesel-async",
@ -2766,7 +2701,7 @@ dependencies = [
[[package]]
name = "lemmy_routes"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"activitypub_federation",
"actix-web",
@ -2791,7 +2726,7 @@ dependencies = [
[[package]]
name = "lemmy_server"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"activitypub_federation",
"actix-cors",
@ -2828,7 +2763,7 @@ dependencies = [
[[package]]
name = "lemmy_utils"
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
dependencies = [
"actix-web",
"anyhow",

View file

@ -1,5 +1,5 @@
[workspace.package]
version = "0.18.0-rc.5"
version = "0.18.0-rc.6"
edition = "2021"
description = "A link aggregator for the fediverse"
license = "AGPL-3.0"
@ -49,17 +49,17 @@ members = [
]
[workspace.dependencies]
lemmy_api = { version = "=0.18.0-rc.5", path = "./crates/api" }
lemmy_api_crud = { version = "=0.18.0-rc.5", path = "./crates/api_crud" }
lemmy_apub = { version = "=0.18.0-rc.5", path = "./crates/apub" }
lemmy_utils = { version = "=0.18.0-rc.5", path = "./crates/utils" }
lemmy_db_schema = { version = "=0.18.0-rc.5", path = "./crates/db_schema" }
lemmy_api_common = { version = "=0.18.0-rc.5", path = "./crates/api_common" }
lemmy_routes = { version = "=0.18.0-rc.5", path = "./crates/routes" }
lemmy_db_views = { version = "=0.18.0-rc.5", path = "./crates/db_views" }
lemmy_db_views_actor = { version = "=0.18.0-rc.5", path = "./crates/db_views_actor" }
lemmy_db_views_moderator = { version = "=0.18.0-rc.5", path = "./crates/db_views_moderator" }
activitypub_federation = { version = "0.4.1", default-features = false, features = ["actix-web"] }
lemmy_api = { version = "=0.18.0-rc.6", path = "./crates/api" }
lemmy_api_crud = { version = "=0.18.0-rc.6", path = "./crates/api_crud" }
lemmy_apub = { version = "=0.18.0-rc.6", path = "./crates/apub" }
lemmy_utils = { version = "=0.18.0-rc.6", path = "./crates/utils" }
lemmy_db_schema = { version = "=0.18.0-rc.6", path = "./crates/db_schema" }
lemmy_api_common = { version = "=0.18.0-rc.6", path = "./crates/api_common" }
lemmy_routes = { version = "=0.18.0-rc.6", path = "./crates/routes" }
lemmy_db_views = { version = "=0.18.0-rc.6", path = "./crates/db_views" }
lemmy_db_views_actor = { version = "=0.18.0-rc.6", path = "./crates/db_views_actor" }
lemmy_db_views_moderator = { version = "=0.18.0-rc.6", path = "./crates/db_views_moderator" }
activitypub_federation = { version = "0.4.4", default-features = false, features = ["actix-web"] }
diesel = "2.1.0"
diesel_migrations = "2.1.0"
diesel-async = "0.3.1"

View file

@ -30,7 +30,7 @@
<br />
<a href="https://join-lemmy.org">Join Lemmy</a>
·
<a href="https://join-lemmy.org/docs/en/index.html">Documentation</a>
<a href="https://join-lemmy.org/docs/index.html">Documentation</a>
·
<a href="https://matrix.to/#/#lemmy-space:matrix.org">Matrix Chat</a>
·
@ -40,7 +40,7 @@
·
<a href="https://github.com/LemmyNet/lemmy/blob/main/RELEASES.md">Releases</a>
·
<a href="https://join-lemmy.org/docs/en/code_of_conduct.html">Code of Conduct</a>
<a href="https://join-lemmy.org/docs/code_of_conduct.html">Code of Conduct</a>
</p>
</p>
@ -77,7 +77,7 @@ Each Lemmy server can set its own moderation policy; appointing site-wide admins
- Open source, [AGPL License](/LICENSE).
- Self hostable, easy to deploy.
- Comes with [Docker](https://join-lemmy.org/docs/en/administration/install_docker.html) and [Ansible](https://join-lemmy.org/docs/en/administration/install_ansible.html).
- Comes with [Docker](https://join-lemmy.org/docs/administration/install_docker.html) and [Ansible](https://join-lemmy.org/docs/administration/install_ansible.html).
- Clean, mobile-friendly interface.
- Only a minimum of a username and password is required to sign up!
- User avatar support.
@ -111,8 +111,8 @@ Each Lemmy server can set its own moderation policy; appointing site-wide admins
## Installation
- [Docker](https://join-lemmy.org/docs/en/administration/install_docker.html)
- [Ansible](https://join-lemmy.org/docs/en/administration/install_ansible.html)
- [Docker](https://join-lemmy.org/docs/administration/install_docker.html)
- [Ansible](https://join-lemmy.org/docs/administration/install_ansible.html)
## Lemmy Projects
@ -154,9 +154,9 @@ Lemmy is free, open-source software, meaning no advertising, monetizing, or vent
## Contributing
- [Contributing instructions](https://join-lemmy.org/docs/en/contributors/01-overview.html)
- [Docker Development](https://join-lemmy.org/docs/en/contributors/03-docker-development.html)
- [Local Development](https://join-lemmy.org/docs/en/contributors/02-local-development.html)
- [Contributing instructions](https://join-lemmy.org/docs/contributors/01-overview.html)
- [Docker Development](https://join-lemmy.org/docs/contributors/03-docker-development.html)
- [Local Development](https://join-lemmy.org/docs/contributors/02-local-development.html)
### Translations

View file

@ -106,6 +106,7 @@ pub(crate) mod tests {
.domain("example.com")
.app_data(context)
.build()
.await
.unwrap();
config.to_request_data()
}

View file

@ -1,4 +1,4 @@
FROM clux/muslrust:1.67.0 as builder
FROM clux/muslrust:1.70.0 as builder
WORKDIR /app
ARG CARGO_BUILD_TARGET=x86_64-unknown-linux-musl

View file

@ -1,4 +1,4 @@
version: "3.3"
version: "3.7"
x-logging: &default-logging
driver: "json-file"
@ -80,6 +80,7 @@ services:
- lemmy
restart: always
logging: *default-logging
init: true
pictrs:
image: asonix/pictrs:0.4.0-beta.19

View file

@ -1,6 +1,7 @@
version: "3.3"
version: "3.7"
x-ui-default: &ui-default
init: true
image: dessalines/lemmy-ui:0.17.3
# assuming lemmy-ui is cloned besides lemmy directory
# build:

View file

@ -0,0 +1,2 @@
-- Add a no-op statement to prevent `diesel migration redo` errors
SELECT 1;

View file

@ -0,0 +1,5 @@
update community c
set local=true
from local_site ls
join site s on ls.site_id=s.id
where c.instance_id=s.instance_id and not c.local;

View file

@ -139,21 +139,23 @@ pub async fn start_lemmy_server() -> Result<(), LemmyError> {
});
}
let federation_config = FederationConfig::builder()
.domain(settings.hostname.clone())
.app_data(context.clone())
.client(client.clone())
.http_fetch_limit(FEDERATION_HTTP_FETCH_LIMIT)
.worker_count(local_site.federation_worker_count as usize)
.debug(cfg!(debug_assertions))
.http_signature_compat(true)
.url_verifier(Box::new(VerifyUrlData(context.pool().clone())))
.build()
.await
.expect("configure federation");
// Create Http server with websocket support
let settings_bind = settings.clone();
HttpServer::new(move || {
let context = context.clone();
let federation_config = FederationConfig::builder()
.domain(settings.hostname.clone())
.app_data(context.clone())
.client(client.clone())
.http_fetch_limit(FEDERATION_HTTP_FETCH_LIMIT)
.worker_count(local_site.federation_worker_count as u64)
.debug(cfg!(debug_assertions))
.http_signature_compat(true)
.url_verifier(Box::new(VerifyUrlData(context.pool().clone())))
.build()
.expect("configure federation");
let cors_config = if cfg!(debug_assertions) {
Cors::permissive()
@ -165,12 +167,15 @@ pub async fn start_lemmy_server() -> Result<(), LemmyError> {
};
App::new()
.wrap(middleware::Logger::default())
.wrap(middleware::Logger::new(
// This is the default log format save for the usage of %{r}a over %a to guarantee to record the client's (forwarded) IP and not the last peer address, since the latter is frequently just a reverse proxy
"%{r}a '%r' %s %b '%{Referer}i' '%{User-Agent}i' %T",
))
.wrap(cors_config)
.wrap(TracingLogger::<QuieterRootSpanBuilder>::new())
.app_data(Data::new(context))
.app_data(Data::new(rate_limit_cell.clone()))
.wrap(FederationMiddleware::new(federation_config))
.wrap(FederationMiddleware::new(federation_config.clone()))
// The routes
.configure(|cfg| api_routes_http::config(cfg, rate_limit_cell))
.configure(|cfg| {