Merge branch 'format-toml' into 'next'

style: format all toml with taplo

See merge request famedly/conduit!673
This commit is contained in:
Matthias Ahouansou 2024-05-06 20:16:13 +00:00
commit 3ad7675bbf
9 changed files with 158 additions and 76 deletions

View file

@ -1,24 +1,22 @@
# Keep alphabetically sorted
[workspace.lints.rust] [workspace.lints.rust]
explicit_outlives_requirements = "warn" explicit_outlives_requirements = "warn"
unused_qualifications = "warn" unused_qualifications = "warn"
# Keep alphabetically sorted
[workspace.lints.clippy] [workspace.lints.clippy]
cloned_instead_of_copied = "warn" cloned_instead_of_copied = "warn"
dbg_macro = "warn" dbg_macro = "warn"
str_to_string = "warn" str_to_string = "warn"
[package] [package]
name = "conduit"
description = "A Matrix homeserver written in Rust"
license = "Apache-2.0"
authors = ["timokoesters <timo@koesters.xyz>"] authors = ["timokoesters <timo@koesters.xyz>"]
homepage = "https://conduit.rs" description = "A Matrix homeserver written in Rust"
repository = "https://gitlab.com/famedly/conduit"
readme = "README.md"
version = "0.8.0-alpha"
edition = "2021" edition = "2021"
homepage = "https://conduit.rs"
license = "Apache-2.0"
name = "conduit"
readme = "README.md"
repository = "https://gitlab.com/famedly/conduit"
version = "0.8.0-alpha"
# See also `rust-toolchain.toml` # See also `rust-toolchain.toml`
rust-version = "1.78.0" rust-version = "1.78.0"
@ -30,14 +28,40 @@ workspace = true
[dependencies] [dependencies]
# Web framework # Web framework
axum = { version = "0.6.18", default-features = false, features = ["form", "headers", "http1", "http2", "json", "matched-path"], optional = true } axum = { version = "0.6.18", default-features = false, features = [
"form",
"headers",
"http1",
"http2",
"json",
"matched-path",
], optional = true }
axum-server = { version = "0.5.1", features = ["tls-rustls"] } axum-server = { version = "0.5.1", features = ["tls-rustls"] }
tower = { version = "0.4.13", features = ["util"] } tower = { version = "0.4.13", features = ["util"] }
tower-http = { version = "0.4.1", features = ["add-extension", "cors", "sensitive-headers", "trace", "util"] } tower-http = { version = "0.4.1", features = [
"add-extension",
"cors",
"sensitive-headers",
"trace",
"util",
] }
# Used for matrix spec type definitions and helpers # Used for matrix spec type definitions and helpers
#ruma = { version = "0.4.0", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] } #ruma = { version = "0.4.0", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] }
ruma = { git = "https://github.com/ruma/ruma", rev = "5495b85aa311c2805302edb0a7de40399e22b397", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] } ruma = { git = "https://github.com/ruma/ruma", rev = "5495b85aa311c2805302edb0a7de40399e22b397", features = [
"appservice-api-c",
"client-api",
"compat",
"federation-api",
"push-gateway-api-c",
"rand",
"ring-compat",
"state-res",
"unstable-exhaustive-types",
"unstable-msc2448",
"unstable-msc3575",
"unstable-unspecified",
] }
#ruma = { git = "https://github.com/timokoesters/ruma", rev = "4ec9c69bb7e09391add2382b3ebac97b6e8f4c64", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] } #ruma = { git = "https://github.com/timokoesters/ruma", rev = "4ec9c69bb7e09391add2382b3ebac97b6e8f4c64", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] }
#ruma = { path = "../ruma/crates/ruma", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] } #ruma = { path = "../ruma/crates/ruma", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] }
@ -65,11 +89,18 @@ rand = "0.8.5"
rust-argon2 = "2" rust-argon2 = "2"
# Used to send requests # Used to send requests
hyper = "0.14.26" hyper = "0.14.26"
reqwest = { version = "0.11.18", default-features = false, features = ["rustls-tls-native-roots", "socks"] } reqwest = { version = "0.11.18", default-features = false, features = [
"rustls-tls-native-roots",
"socks",
] }
# Used for conduit::Error type # Used for conduit::Error type
thiserror = "1.0.40" thiserror = "1.0.40"
# Used to generate thumbnails for images # Used to generate thumbnails for images
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "gif"] } image = { version = "0.25", default-features = false, features = [
"gif",
"jpeg",
"png",
] }
# Used to encode server public key # Used to encode server public key
base64 = "0.22" base64 = "0.22"
# Used when hashing the state # Used when hashing the state
@ -81,15 +112,17 @@ regex = "1.8.1"
# jwt jsonwebtokens # jwt jsonwebtokens
jsonwebtoken = "9.2.0" jsonwebtoken = "9.2.0"
# Performance measurements # Performance measurements
tracing = { version = "0.1.37", features = [] }
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
tracing-flame = "0.2.0"
opentelemetry = { version = "0.18.0", features = ["rt-tokio"] } opentelemetry = { version = "0.18.0", features = ["rt-tokio"] }
opentelemetry-jaeger = { version = "0.17.0", features = ["rt-tokio"] } opentelemetry-jaeger = { version = "0.17.0", features = ["rt-tokio"] }
tracing = { version = "0.1.37", features = [] }
tracing-flame = "0.2.0"
tracing-opentelemetry = "0.18.0" tracing-opentelemetry = "0.18.0"
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
lru-cache = "0.1.2" lru-cache = "0.1.2"
rusqlite = { version = "0.31", optional = true, features = ["bundled"] }
parking_lot = { version = "0.12.1", optional = true } parking_lot = { version = "0.12.1", optional = true }
rusqlite = { version = "0.31", optional = true, features = ["bundled"] }
# crossbeam = { version = "0.8.2", optional = true } # crossbeam = { version = "0.8.2", optional = true }
num_cpus = "1.15.0" num_cpus = "1.15.0"
threadpool = "1.8.1" threadpool = "1.8.1"
@ -102,7 +135,14 @@ thread_local = "1.1.7"
hmac = "0.12.1" hmac = "0.12.1"
sha-1 = "0.10.1" sha-1 = "0.10.1"
# used for conduit's CLI and admin room command parsing # used for conduit's CLI and admin room command parsing
clap = { version = "4.3.0", default-features = false, features = ["std", "derive", "help", "usage", "error-context", "string"] } clap = { version = "4.3.0", default-features = false, features = [
"derive",
"error-context",
"help",
"std",
"string",
"usage",
] }
futures-util = { version = "0.3.28", default-features = false } futures-util = { version = "0.3.28", default-features = false }
# Used for reading the configuration from conduit.toml & environment variables # Used for reading the configuration from conduit.toml & environment variables
figment = { version = "0.10.8", features = ["env", "toml"] } figment = { version = "0.10.8", features = ["env", "toml"] }
@ -110,34 +150,32 @@ figment = { version = "0.10.8", features = ["env", "toml"] }
# Validating urls in config # Validating urls in config
url = { version = "2", features = ["serde"] } url = { version = "2", features = ["serde"] }
tikv-jemallocator = { version = "0.5.0", features = ["unprefixed_malloc_on_supported_platforms"], optional = true }
async-trait = "0.1.68" async-trait = "0.1.68"
tikv-jemallocator = { version = "0.5.0", features = [
"unprefixed_malloc_on_supported_platforms",
], optional = true }
sd-notify = { version = "0.4.1", optional = true } sd-notify = { version = "0.4.1", optional = true }
[dependencies.rocksdb] [dependencies.rocksdb]
features = ["lz4", "multi-threaded-cf", "zstd"]
optional = true
package = "rust-rocksdb" package = "rust-rocksdb"
version = "0.25" version = "0.25"
optional = true
features = [
"multi-threaded-cf",
"zstd",
"lz4",
]
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]
nix = { version = "0.28", features = ["resource"] } nix = { version = "0.28", features = ["resource"] }
[features] [features]
default = ["conduit_bin", "backend_sqlite", "backend_rocksdb", "systemd"] default = ["backend_rocksdb", "backend_sqlite", "conduit_bin", "systemd"]
#backend_sled = ["sled"] #backend_sled = ["sled"]
backend_persy = ["persy", "parking_lot"] backend_persy = ["parking_lot", "persy"]
backend_sqlite = ["sqlite"] backend_sqlite = ["sqlite"]
#backend_heed = ["heed", "crossbeam"] #backend_heed = ["heed", "crossbeam"]
backend_rocksdb = ["rocksdb"] backend_rocksdb = ["rocksdb"]
jemalloc = ["tikv-jemallocator"]
sqlite = ["rusqlite", "parking_lot", "tokio/signal"]
conduit_bin = ["axum"] conduit_bin = ["axum"]
jemalloc = ["tikv-jemallocator"]
sqlite = ["parking_lot", "rusqlite", "tokio/signal"]
systemd = ["sd-notify"] systemd = ["sd-notify"]
[[bin]] [[bin]]
@ -150,35 +188,45 @@ name = "conduit"
path = "src/lib.rs" path = "src/lib.rs"
[package.metadata.deb] [package.metadata.deb]
name = "matrix-conduit" assets = [
maintainer = "Paul van Tilburg <paul@luon.net>" [
"README.md",
"usr/share/doc/matrix-conduit/",
"644",
],
[
"debian/README.md",
"usr/share/doc/matrix-conduit/README.Debian",
"644",
],
[
"target/release/conduit",
"usr/sbin/matrix-conduit",
"755",
],
]
conf-files = ["/etc/matrix-conduit/conduit.toml"]
copyright = "2020, Timo Kösters <timo@koesters.xyz>" copyright = "2020, Timo Kösters <timo@koesters.xyz>"
license-file = ["LICENSE", "3"]
depends = "$auto, ca-certificates" depends = "$auto, ca-certificates"
extended-description = """\ extended-description = """\
A fast Matrix homeserver that is optimized for smaller, personal servers, \ A fast Matrix homeserver that is optimized for smaller, personal servers, \
instead of a server that has high scalability.""" instead of a server that has high scalability."""
section = "net" license-file = ["LICENSE", "3"]
priority = "optional" maintainer = "Paul van Tilburg <paul@luon.net>"
assets = [
["debian/README.md", "usr/share/doc/matrix-conduit/README.Debian", "644"],
["README.md", "usr/share/doc/matrix-conduit/", "644"],
["target/release/conduit", "usr/sbin/matrix-conduit", "755"],
]
conf-files = [
"/etc/matrix-conduit/conduit.toml"
]
maintainer-scripts = "debian/" maintainer-scripts = "debian/"
name = "matrix-conduit"
priority = "optional"
section = "net"
systemd-units = { unit-name = "matrix-conduit" } systemd-units = { unit-name = "matrix-conduit" }
[profile.dev] [profile.dev]
lto = 'off'
incremental = true incremental = true
lto = 'off'
[profile.release] [profile.release]
lto = 'thin' codegen-units = 32
incremental = true incremental = true
codegen-units=32 lto = 'thin'
# If you want to make flamegraphs, enable debug info: # If you want to make flamegraphs, enable debug info:
# debug = true # debug = true

View file

@ -1,22 +1,21 @@
[book] [book]
title = "Conduit"
description = "Conduit is a simple, fast and reliable chat server for the Matrix protocol" description = "Conduit is a simple, fast and reliable chat server for the Matrix protocol"
language = "en" language = "en"
multilingual = false multilingual = false
src = "docs" src = "docs"
title = "Conduit"
[build] [build]
build-dir = "public" build-dir = "public"
create-missing = true create-missing = true
[output.html] [output.html]
git-repository-url = "https://gitlab.com/famedly/conduit"
edit-url-template = "https://gitlab.com/famedly/conduit/-/edit/next/{path}" edit-url-template = "https://gitlab.com/famedly/conduit/-/edit/next/{path}"
git-repository-icon = "fa-git-square" git-repository-icon = "fa-git-square"
git-repository-url = "https://gitlab.com/famedly/conduit"
[output.html.search] [output.html.search]
limit-results = 15 limit-results = 15
[output.html.code.hidelines] [output.html.code.hidelines]
json = "~" json = "~"

View file

@ -22,9 +22,9 @@
# YOU NEED TO EDIT THIS # YOU NEED TO EDIT THIS
#server_name = "your.server.name" #server_name = "your.server.name"
database_backend = "rocksdb"
# This is the only directory where Conduit will save its data # This is the only directory where Conduit will save its data
database_path = "/var/lib/matrix-conduit/" database_path = "/var/lib/matrix-conduit/"
database_backend = "rocksdb"
# The port Conduit will be running on. You need to set up a reverse proxy in # The port Conduit will be running on. You need to set up a reverse proxy in
# your web server (e.g. apache or nginx), so all requests to /_matrix on port # your web server (e.g. apache or nginx), so all requests to /_matrix on port
@ -44,8 +44,8 @@ allow_registration = true
# - Start the line with '#' to remove the condition # - Start the line with '#' to remove the condition
registration_token = "" registration_token = ""
allow_federation = true
allow_check_for_updates = true allow_check_for_updates = true
allow_federation = true
# Enable the display name lightning bolt on registration. # Enable the display name lightning bolt on registration.
enable_lightning_bolt = true enable_lightning_bolt = true

View file

@ -1,48 +1,48 @@
interpreter = ["bash", "-euo", "pipefail", "-c"] interpreter = ["bash", "-euo", "pipefail", "-c"]
[[task]] [[task]]
name = "engage"
group = "versions" group = "versions"
name = "engage"
script = "engage --version" script = "engage --version"
[[task]] [[task]]
name = "rustc"
group = "versions" group = "versions"
name = "rustc"
script = "rustc --version" script = "rustc --version"
[[task]] [[task]]
name = "cargo"
group = "versions" group = "versions"
name = "cargo"
script = "cargo --version" script = "cargo --version"
[[task]] [[task]]
name = "cargo-fmt"
group = "versions" group = "versions"
name = "cargo-fmt"
script = "cargo fmt --version" script = "cargo fmt --version"
[[task]] [[task]]
name = "rustdoc"
group = "versions" group = "versions"
name = "rustdoc"
script = "rustdoc --version" script = "rustdoc --version"
[[task]] [[task]]
name = "cargo-clippy"
group = "versions" group = "versions"
name = "cargo-clippy"
script = "cargo clippy -- --version" script = "cargo clippy -- --version"
[[task]] [[task]]
name = "lychee"
group = "versions" group = "versions"
name = "lychee"
script = "lychee --version" script = "lychee --version"
[[task]] [[task]]
name = "cargo-fmt"
group = "lints" group = "lints"
name = "cargo-fmt"
script = "cargo fmt --check -- --color=always" script = "cargo fmt --check -- --color=always"
[[task]] [[task]]
name = "cargo-doc"
group = "lints" group = "lints"
name = "cargo-doc"
script = """ script = """
RUSTDOCFLAGS="-D warnings" cargo doc \ RUSTDOCFLAGS="-D warnings" cargo doc \
--workspace \ --workspace \
@ -52,18 +52,23 @@ RUSTDOCFLAGS="-D warnings" cargo doc \
""" """
[[task]] [[task]]
name = "cargo-clippy"
group = "lints" group = "lints"
name = "cargo-clippy"
script = "cargo clippy --workspace --all-targets --color=always -- -D warnings" script = "cargo clippy --workspace --all-targets --color=always -- -D warnings"
[[task]] [[task]]
name = "lychee"
group = "lints" group = "lints"
name = "taplo-fmt"
script = "taplo fmt --check --colors always"
[[task]]
group = "lints"
name = "lychee"
script = "lychee --offline docs" script = "lychee --offline docs"
[[task]] [[task]]
name = "cargo"
group = "tests" group = "tests"
name = "cargo"
script = """ script = """
cargo test \ cargo test \
--workspace \ --workspace \

View file

@ -10,6 +10,7 @@
, mkShell , mkShell
, olm , olm
, system , system
, taplo
, toolchain , toolchain
}: }:
@ -29,10 +30,15 @@ mkShell {
# `$PATH` will have stable rustfmt instead. # `$PATH` will have stable rustfmt instead.
inputs.fenix.packages.${system}.latest.rustfmt inputs.fenix.packages.${system}.latest.rustfmt
# Keep sorted # rust itself
engage
toolchain toolchain
# CI tests
engage
# format toml files
taplo
# Needed for producing Debian packages # Needed for producing Debian packages
cargo-deb cargo-deb

View file

@ -12,11 +12,11 @@
[toolchain] [toolchain]
channel = "1.78.0" channel = "1.78.0"
components = [ components = [
# For rust-analyzer # For rust-analyzer
"rust-src", "rust-src",
] ]
targets = [ targets = [
"x86_64-unknown-linux-gnu", "aarch64-unknown-linux-musl",
"x86_64-unknown-linux-musl", "x86_64-unknown-linux-gnu",
"aarch64-unknown-linux-musl", "x86_64-unknown-linux-musl",
] ]

View file

@ -1,2 +1,2 @@
imports_granularity = "Crate"
unstable_features = true unstable_features = true
imports_granularity="Crate"

24
taplo.toml Normal file
View file

@ -0,0 +1,24 @@
exclude = [".**/*.toml"]
include = ["**/*.toml"]
[formatting]
reorder_arrays = true
reorder_keys = true
# Prevent breaking command and argument order
[[rule]]
include = ["engage.toml"]
# https://github.com/tamasfe/taplo/issues/608
#keys = ["interpreter"]
[rule.formatting]
reorder_arrays = false
# Prevent breaking license file order
[[rule]]
include = ["Cargo.toml"]
# https://github.com/tamasfe/taplo/issues/608
# keys = ["package.metadata.deb.license-file", "package.metadata.deb.assets"]
keys = ["package.metadata.deb", "package.metadata.deb.assets"]
[rule.formatting]
reorder_arrays = false

View file

@ -7,9 +7,9 @@ server_name = "localhost"
database_path = "/tmp" database_path = "/tmp"
# All the other settings are left at their defaults: # All the other settings are left at their defaults:
port = 6167
max_request_size = 20_000_000
allow_registration = true
trusted_servers = ["matrix.org"]
address = "127.0.0.1" address = "127.0.0.1"
allow_registration = true
max_request_size = 20_000_000
port = 6167
proxy = "none" proxy = "none"
trusted_servers = ["matrix.org"]