mirror of
https://github.com/element-hq/matrix-authentication-service.git
synced 2026-10-15 13:21:44 +00:00
Merge branch 'main' into docs-msc4190-appservice-devices
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
# Copyright 2025, 2026 Element Creations Ltd.
|
||||
# Copyright 2025 New Vector Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
@@ -43,6 +44,17 @@ updates:
|
||||
cooldown:
|
||||
default-days: 14
|
||||
|
||||
# Rust releases every six weeks; the cooldown lets the .1 point release land first.
|
||||
- package-ecosystem: "rust-toolchain"
|
||||
directory: "/"
|
||||
labels:
|
||||
- "A-Dependencies"
|
||||
- "Z-Deps-Backend"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
cooldown:
|
||||
default-days: 14
|
||||
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
labels:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Copyright 2025, 2026 Element Creations Ltd.
|
||||
# Copyright 2025 New Vector Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
@@ -123,9 +124,8 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Install the minimal toolchain, which includes rustc, rustdoc, and cargo.
|
||||
run: |
|
||||
rustup toolchain install stable --profile minimal
|
||||
rustup toolchain install
|
||||
rustup target add ${{ matrix.target }}
|
||||
|
||||
- name: Setup sccache
|
||||
|
||||
@@ -153,15 +153,12 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Install the minimal toolchain, which includes rustc, rustdoc, and cargo.
|
||||
# Then install rustfmt for `cargo fmt`.
|
||||
#
|
||||
# --override sets this as the default rust toolchain version in this directory.
|
||||
# rustfmt runs on nightly because .rustfmt.toml uses nightly-only options.
|
||||
run: |
|
||||
rustup toolchain install nightly --profile minimal --component rustfmt --override
|
||||
rustup toolchain install nightly --profile minimal --component rustfmt
|
||||
|
||||
- name: Check style
|
||||
run: cargo fmt --all -- --check
|
||||
run: cargo +nightly fmt --all -- --check
|
||||
|
||||
cargo-deny:
|
||||
name: Run `cargo deny` checks
|
||||
@@ -182,8 +179,6 @@ jobs:
|
||||
|
||||
- name: Run `cargo-deny`
|
||||
uses: EmbarkStudios/cargo-deny-action@3c6349835b2b7b196a839186cb8b78e02f7b5f25 # v2.1.1
|
||||
with:
|
||||
rust-version: stable
|
||||
|
||||
check-schema:
|
||||
name: Check schema
|
||||
@@ -200,7 +195,7 @@ jobs:
|
||||
|
||||
- name: Install Rust toolchain
|
||||
run: |
|
||||
rustup toolchain install stable
|
||||
rustup toolchain install
|
||||
|
||||
- name: Setup sccache
|
||||
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
|
||||
@@ -241,11 +236,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Install the minimal toolchain with clippy, pinned to a version kept in
|
||||
# sync with Dockerfile.
|
||||
#
|
||||
# --override sets this as the default rust toolchain version in this directory.
|
||||
run: rustup toolchain install 1.96.0 --profile minimal --component clippy --override
|
||||
run: rustup toolchain install
|
||||
|
||||
- uses: ./.github/actions/build-policies
|
||||
|
||||
@@ -270,8 +261,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Install the minimal toolchain, which includes rustc, rustdoc, and cargo.
|
||||
run: rustup toolchain install stable --profile minimal
|
||||
run: rustup toolchain install
|
||||
|
||||
- name: Install nextest
|
||||
uses: taiki-e/install-action@b6ff580856c41316412a0b9b60540fbc6f8c82cc # v2
|
||||
@@ -293,7 +283,7 @@ jobs:
|
||||
path: nextest-archive.tar.zst
|
||||
|
||||
test:
|
||||
name: Run test suite with Rust stable
|
||||
name: Run test suite
|
||||
needs: [rustfmt, opa-lint, compile-test-artifacts]
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
@@ -326,8 +316,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Install the minimal toolchain, which includes rustc, rustdoc, and cargo.
|
||||
run: rustup toolchain install stable --profile minimal
|
||||
run: rustup toolchain install
|
||||
|
||||
- name: Install nextest
|
||||
uses: taiki-e/install-action@b6ff580856c41316412a0b9b60540fbc6f8c82cc # v2
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Copyright 2025, 2026 Element Creations Ltd.
|
||||
# Copyright 2025 New Vector Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
@@ -107,11 +108,11 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Install the minimal toolchain, which includes rustc, rustdoc, and cargo.
|
||||
#
|
||||
# llvm-tools-preview installs some llvm tools, which are needed for `grcov` below.
|
||||
# See https://github.com/rust-lang/rust/issues/85658 for stability tracking issue.
|
||||
run: rustup toolchain install stable --profile minimal --component llvm-tools-preview
|
||||
run: |
|
||||
rustup toolchain install
|
||||
rustup component add llvm-tools-preview
|
||||
|
||||
- name: Setup sccache
|
||||
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Copyright 2025, 2026 Element Creations Ltd.
|
||||
# Copyright 2025 New Vector Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
@@ -30,8 +31,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Install the minimal toolchain, which includes rustc, rustdoc, and cargo
|
||||
run: rustup toolchain install stable --profile minimal
|
||||
run: rustup toolchain install
|
||||
|
||||
- name: Setup sccache
|
||||
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Copyright 2025, 2026 Element Creations Ltd.
|
||||
# Copyright 2025 New Vector Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
@@ -39,8 +40,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Only the minimal profile is required here to run `cargo metadata`
|
||||
run: rustup toolchain install stable --profile minimal
|
||||
run: rustup toolchain install
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v6.0.9
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Copyright 2025, 2026 Element Creations Ltd.
|
||||
# Copyright 2025 New Vector Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
@@ -38,8 +39,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Only the minimal profile is required here to run `cargo`
|
||||
run: rustup toolchain install stable --profile minimal
|
||||
run: rustup toolchain install
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v6.0.9
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Copyright 2025, 2026 Element Creations Ltd.
|
||||
# Copyright 2025 New Vector Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
@@ -35,8 +36,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
# Only the minimal profile is required here to run `cargo metadata`
|
||||
run: rustup toolchain install stable --profile minimal
|
||||
run: rustup toolchain install
|
||||
|
||||
- name: Set the crates version
|
||||
env:
|
||||
|
||||
+1
-4
@@ -1,11 +1,8 @@
|
||||
# Copyright 2025, 2026 Element Creations Ltd.
|
||||
# Copyright 2025 New Vector Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
# Please see LICENSE files in the repository root for full details.
|
||||
|
||||
max_width = 100
|
||||
comment_width = 80
|
||||
wrap_comments = true
|
||||
imports_granularity = "Crate"
|
||||
use_small_heuristics = "Default"
|
||||
group_imports = "StdExternalCrate"
|
||||
|
||||
Generated
+28
-28
@@ -3198,7 +3198,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-axum-utils"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
@@ -3233,7 +3233,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-cli"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
@@ -3308,7 +3308,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-config"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"camino",
|
||||
@@ -3339,7 +3339,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-context"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"console",
|
||||
"opentelemetry",
|
||||
@@ -3356,7 +3356,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-data-model"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"base64ct",
|
||||
"chrono",
|
||||
@@ -3378,7 +3378,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-email"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"lettre",
|
||||
@@ -3389,7 +3389,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-handlers"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"aide",
|
||||
"anyhow",
|
||||
@@ -3472,7 +3472,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-http"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"headers",
|
||||
@@ -3492,7 +3492,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-i18n"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"camino",
|
||||
"icu_datetime",
|
||||
@@ -3512,7 +3512,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-i18n-scan"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"camino",
|
||||
"clap",
|
||||
@@ -3526,7 +3526,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-iana"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"schemars 1.2.1",
|
||||
"serde",
|
||||
@@ -3534,7 +3534,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-iana-codegen"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -3551,7 +3551,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-jose"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"base64ct",
|
||||
"chrono",
|
||||
@@ -3581,7 +3581,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-keystore"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"aead",
|
||||
"base64ct",
|
||||
@@ -3609,7 +3609,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-listener"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bytes",
|
||||
@@ -3633,7 +3633,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-matrix"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -3643,7 +3643,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-matrix-synapse"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -3660,7 +3660,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-oidc-client"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"assert_matches",
|
||||
"async-trait",
|
||||
@@ -3696,7 +3696,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-policy"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
@@ -3713,7 +3713,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-router"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"serde",
|
||||
@@ -3724,7 +3724,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-spa"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"camino",
|
||||
"serde",
|
||||
@@ -3733,7 +3733,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-storage"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"chrono",
|
||||
@@ -3755,7 +3755,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-storage-pg"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"chrono",
|
||||
@@ -3787,7 +3787,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-tasks"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -3819,7 +3819,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-templates"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
@@ -3851,7 +3851,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mas-tower"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"http",
|
||||
"opentelemetry",
|
||||
@@ -4103,7 +4103,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oauth2-types"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"assert_matches",
|
||||
"base64ct",
|
||||
@@ -6279,7 +6279,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "syn2mas"
|
||||
version = "1.24.0-rc.1"
|
||||
version = "1.24.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
|
||||
+30
-30
@@ -9,7 +9,7 @@ members = ["crates/*"]
|
||||
resolver = "2"
|
||||
|
||||
# Updated in the CI with a `sed` command
|
||||
package.version = "1.24.0-rc.1"
|
||||
package.version = "1.24.0"
|
||||
package.license = "AGPL-3.0-only OR LicenseRef-Element-Commercial"
|
||||
package.authors = ["Element Backend Team"]
|
||||
package.edition = "2024"
|
||||
@@ -42,35 +42,35 @@ broken_intra_doc_links = "deny"
|
||||
[workspace.dependencies]
|
||||
|
||||
# Workspace crates
|
||||
mas-axum-utils = { path = "./crates/axum-utils/", version = "=1.24.0-rc.1" }
|
||||
mas-cli = { path = "./crates/cli/", version = "=1.24.0-rc.1" }
|
||||
mas-config = { path = "./crates/config/", version = "=1.24.0-rc.1" }
|
||||
mas-context = { path = "./crates/context/", version = "=1.24.0-rc.1" }
|
||||
mas-data-model = { path = "./crates/data-model/", version = "=1.24.0-rc.1" }
|
||||
mas-email = { path = "./crates/email/", version = "=1.24.0-rc.1" }
|
||||
mas-graphql = { path = "./crates/graphql/", version = "=1.24.0-rc.1" }
|
||||
mas-handlers = { path = "./crates/handlers/", version = "=1.24.0-rc.1" }
|
||||
mas-http = { path = "./crates/http/", version = "=1.24.0-rc.1" }
|
||||
mas-i18n = { path = "./crates/i18n/", version = "=1.24.0-rc.1" }
|
||||
mas-i18n-scan = { path = "./crates/i18n-scan/", version = "=1.24.0-rc.1" }
|
||||
mas-iana = { path = "./crates/iana/", version = "=1.24.0-rc.1" }
|
||||
mas-iana-codegen = { path = "./crates/iana-codegen/", version = "=1.24.0-rc.1" }
|
||||
mas-jose = { path = "./crates/jose/", version = "=1.24.0-rc.1" }
|
||||
mas-keystore = { path = "./crates/keystore/", version = "=1.24.0-rc.1" }
|
||||
mas-listener = { path = "./crates/listener/", version = "=1.24.0-rc.1" }
|
||||
mas-matrix = { path = "./crates/matrix/", version = "=1.24.0-rc.1" }
|
||||
mas-matrix-synapse = { path = "./crates/matrix-synapse/", version = "=1.24.0-rc.1" }
|
||||
mas-oidc-client = { path = "./crates/oidc-client/", version = "=1.24.0-rc.1" }
|
||||
mas-policy = { path = "./crates/policy/", version = "=1.24.0-rc.1" }
|
||||
mas-router = { path = "./crates/router/", version = "=1.24.0-rc.1" }
|
||||
mas-spa = { path = "./crates/spa/", version = "=1.24.0-rc.1" }
|
||||
mas-storage = { path = "./crates/storage/", version = "=1.24.0-rc.1" }
|
||||
mas-storage-pg = { path = "./crates/storage-pg/", version = "=1.24.0-rc.1" }
|
||||
mas-tasks = { path = "./crates/tasks/", version = "=1.24.0-rc.1" }
|
||||
mas-templates = { path = "./crates/templates/", version = "=1.24.0-rc.1" }
|
||||
mas-tower = { path = "./crates/tower/", version = "=1.24.0-rc.1" }
|
||||
oauth2-types = { path = "./crates/oauth2-types/", version = "=1.24.0-rc.1" }
|
||||
syn2mas = { path = "./crates/syn2mas", version = "=1.24.0-rc.1" }
|
||||
mas-axum-utils = { path = "./crates/axum-utils/", version = "=1.24.0" }
|
||||
mas-cli = { path = "./crates/cli/", version = "=1.24.0" }
|
||||
mas-config = { path = "./crates/config/", version = "=1.24.0" }
|
||||
mas-context = { path = "./crates/context/", version = "=1.24.0" }
|
||||
mas-data-model = { path = "./crates/data-model/", version = "=1.24.0" }
|
||||
mas-email = { path = "./crates/email/", version = "=1.24.0" }
|
||||
mas-graphql = { path = "./crates/graphql/", version = "=1.24.0" }
|
||||
mas-handlers = { path = "./crates/handlers/", version = "=1.24.0" }
|
||||
mas-http = { path = "./crates/http/", version = "=1.24.0" }
|
||||
mas-i18n = { path = "./crates/i18n/", version = "=1.24.0" }
|
||||
mas-i18n-scan = { path = "./crates/i18n-scan/", version = "=1.24.0" }
|
||||
mas-iana = { path = "./crates/iana/", version = "=1.24.0" }
|
||||
mas-iana-codegen = { path = "./crates/iana-codegen/", version = "=1.24.0" }
|
||||
mas-jose = { path = "./crates/jose/", version = "=1.24.0" }
|
||||
mas-keystore = { path = "./crates/keystore/", version = "=1.24.0" }
|
||||
mas-listener = { path = "./crates/listener/", version = "=1.24.0" }
|
||||
mas-matrix = { path = "./crates/matrix/", version = "=1.24.0" }
|
||||
mas-matrix-synapse = { path = "./crates/matrix-synapse/", version = "=1.24.0" }
|
||||
mas-oidc-client = { path = "./crates/oidc-client/", version = "=1.24.0" }
|
||||
mas-policy = { path = "./crates/policy/", version = "=1.24.0" }
|
||||
mas-router = { path = "./crates/router/", version = "=1.24.0" }
|
||||
mas-spa = { path = "./crates/spa/", version = "=1.24.0" }
|
||||
mas-storage = { path = "./crates/storage/", version = "=1.24.0" }
|
||||
mas-storage-pg = { path = "./crates/storage-pg/", version = "=1.24.0" }
|
||||
mas-tasks = { path = "./crates/tasks/", version = "=1.24.0" }
|
||||
mas-templates = { path = "./crates/templates/", version = "=1.24.0" }
|
||||
mas-tower = { path = "./crates/tower/", version = "=1.24.0" }
|
||||
oauth2-types = { path = "./crates/oauth2-types/", version = "=1.24.0" }
|
||||
syn2mas = { path = "./crates/syn2mas", version = "=1.24.0" }
|
||||
|
||||
# OpenAPI schema generation and validation
|
||||
[workspace.dependencies.aide]
|
||||
|
||||
+36
-16
@@ -13,8 +13,7 @@
|
||||
# The Debian version and version name must be in sync
|
||||
ARG DEBIAN_VERSION=13
|
||||
ARG DEBIAN_VERSION_NAME=trixie
|
||||
# Keep in sync with .github/workflows/ci.yaml
|
||||
ARG RUSTC_VERSION=1.96.0
|
||||
ARG RUSTUP_VERSION=1.29.0
|
||||
# Keep in sync with .node-version
|
||||
ARG NODEJS_VERSION=24.15.0
|
||||
# Keep in sync with .github/actions/build-policies/action.yml and policies/Makefile
|
||||
@@ -76,10 +75,42 @@ RUN --network=none \
|
||||
########################################
|
||||
## Build stage that builds the binary ##
|
||||
########################################
|
||||
FROM --platform=${BUILDPLATFORM} docker.io/library/rust:${RUSTC_VERSION}-${DEBIAN_VERSION_NAME} AS builder
|
||||
FROM --platform=${BUILDPLATFORM} docker.io/library/buildpack-deps:${DEBIAN_VERSION_NAME} AS builder
|
||||
|
||||
ARG BUILDARCH
|
||||
ARG CARGO_AUDITABLE_VERSION
|
||||
ARG RUSTC_VERSION
|
||||
ARG RUSTUP_VERSION
|
||||
|
||||
ENV RUSTUP_HOME=/usr/local/rustup \
|
||||
CARGO_HOME=/usr/local/cargo \
|
||||
PATH=/usr/local/cargo/bin:$PATH
|
||||
|
||||
# Checksums come from https://static.rust-lang.org/rustup/archive/<version>/<triple>/rustup-init.sha256
|
||||
# Network access: to download rustup
|
||||
RUN --network=default \
|
||||
case "${BUILDARCH}" in \
|
||||
amd64) RUSTUP_TRIPLE="x86_64-unknown-linux-gnu"; RUSTUP_SHA256="4acc9acc76d5079515b46346a485974457b5a79893cfb01112423c89aeb5aa10" ;; \
|
||||
arm64) RUSTUP_TRIPLE="aarch64-unknown-linux-gnu"; RUSTUP_SHA256="9732d6c5e2a098d3521fca8145d826ae0aaa067ef2385ead08e6feac88fa5792" ;; \
|
||||
*) echo "unsupported architecture: ${BUILDARCH}" >&2; exit 1 ;; \
|
||||
esac && \
|
||||
curl -fsSLo rustup-init "https://static.rust-lang.org/rustup/archive/${RUSTUP_VERSION}/${RUSTUP_TRIPLE}/rustup-init" && \
|
||||
echo "${RUSTUP_SHA256} *rustup-init" | sha256sum -c - && \
|
||||
chmod +x rustup-init && \
|
||||
./rustup-init -y --no-modify-path --default-toolchain none && \
|
||||
rm rustup-init
|
||||
|
||||
# Set the working directory
|
||||
WORKDIR /app
|
||||
|
||||
# Copied on its own so the toolchain layer is cached independently of the source tree
|
||||
COPY rust-toolchain.toml ./
|
||||
|
||||
# Network access: to download the toolchain and the cross-compilation targets
|
||||
RUN --network=default \
|
||||
rustup toolchain install && \
|
||||
rustup target add \
|
||||
x86_64-unknown-linux-gnu \
|
||||
aarch64-unknown-linux-gnu
|
||||
|
||||
# Install pinned versions of cargo-auditable
|
||||
# Network access: to fetch dependencies
|
||||
@@ -87,14 +118,6 @@ RUN --network=default \
|
||||
cargo install --locked \
|
||||
cargo-auditable@=${CARGO_AUDITABLE_VERSION}
|
||||
|
||||
# Install all cross-compilation targets
|
||||
# Network access: to download the targets
|
||||
RUN --network=default \
|
||||
rustup target add \
|
||||
--toolchain "${RUSTC_VERSION}" \
|
||||
x86_64-unknown-linux-gnu \
|
||||
aarch64-unknown-linux-gnu
|
||||
|
||||
RUN --network=none \
|
||||
dpkg --add-architecture arm64 && \
|
||||
dpkg --add-architecture amd64
|
||||
@@ -120,9 +143,6 @@ ENV \
|
||||
CC_x86_64_unknown_linux_gnu=x86_64-linux-gnu-gcc \
|
||||
CXX_x86_64_unknown_linux_gnu=x86_64-linux-gnu-g++
|
||||
|
||||
# Set the working directory
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the code
|
||||
COPY ./ /app
|
||||
ENV SQLX_OFFLINE=true
|
||||
@@ -134,7 +154,7 @@ ARG TARGETARCH
|
||||
|
||||
# Network access: cargo auditable needs it
|
||||
RUN --network=default \
|
||||
--mount=type=cache,target=/root/.cargo/registry \
|
||||
--mount=type=cache,target=/usr/local/cargo/registry \
|
||||
--mount=type=cache,target=/app/target \
|
||||
RUST_TARGET=$(case "${TARGETARCH}" in \
|
||||
amd64) echo "x86_64-unknown-linux-gnu" ;; \
|
||||
|
||||
@@ -27,6 +27,9 @@ ignore = [
|
||||
# Engine/Store, and as the advisory says explicitly:
|
||||
# > This bug is not triggerable by guest WebAssembly programs.
|
||||
"RUSTSEC-2026-0222",
|
||||
# A bug in wasmtime, but we are not affected as we're not using the WASI
|
||||
# capabilities and filesystem APIs
|
||||
"RUSTSEC-2026-0269",
|
||||
]
|
||||
|
||||
# Only warn about unmaintained crates in direct dependencies of the workspace,
|
||||
|
||||
@@ -19,7 +19,7 @@ There are two main ways to contribute to MAS:
|
||||
|
||||
To get MAS running locally from source you will need to:
|
||||
|
||||
- [Install Rust and Cargo](https://www.rust-lang.org/learn/get-started). We recommend using the latest stable version of Rust.
|
||||
- [Install Rust and Cargo](https://www.rust-lang.org/learn/get-started). The exact version is pinned in `rust-toolchain.toml`; rustup installs it automatically when you run cargo in the repo.
|
||||
- [Install Node.js](https://nodejs.org/). We recommend using the latest LTS version of Node.js. The frontend uses pnpm, which is installed automatically via corepack — see below.
|
||||
- [Install Open Policy Agent](https://www.openpolicyagent.org/docs#1-download-opa)
|
||||
|
||||
@@ -79,7 +79,7 @@ Most of them can be updated by running `sh misc/update.sh` at the root of the pr
|
||||
|
||||
Make sure your code adheres to our Rust and TypeScript code style by running:
|
||||
|
||||
- `cargo +nightly fmt` (with the nightly toolchain installed)
|
||||
- `cargo +nightly fmt` (`.rustfmt.toml` uses nightly-only options, so this needs the nightly toolchain installed)
|
||||
- `pnpm run format` in the `frontend` directory
|
||||
- `make fmt` in the `policies` directory (if changed)
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ The image can also be built from the source:
|
||||
|
||||
Building from the source requires:
|
||||
|
||||
- The latest stable [Rust toolchain](https://www.rust-lang.org/learn/get-started)
|
||||
- The [Rust toolchain](https://www.rust-lang.org/learn/get-started) pinned by `rust-toolchain.toml` (installed automatically by rustup)
|
||||
- [Node.js (24 and later)](https://nodejs.org/en/), with [corepack](https://nodejs.org/api/corepack.html) enabled so pnpm@11 is provisioned automatically
|
||||
- the [Open Policy Agent](https://www.openpolicyagent.org/docs/latest/#running-opa) binary (or alternatively, Docker)
|
||||
|
||||
|
||||
@@ -145,14 +145,14 @@
|
||||
"current_password_label": "Senine salasõna",
|
||||
"failure": {
|
||||
"description": {
|
||||
"account_locked": "Sinu kasutajakonto on lukustatud ning salasõna taastamist ei ole hetkel võimalik teha. Kui antud olukord tundub sulle kahtlane, siis palun teavita sellest sinu serveri haldajat.",
|
||||
"account_locked": "Sinu kasutajakonto on lukustatud ning salasõna taastamist ei ole hetkel võimalik teha. Kui antud olukord tundub sulle kahtlane, siis palun teavita sellest sinu teenusepakkujat.",
|
||||
"expired_recovery_ticket": "Salasõna taastamiseks mõeldud link on aegunud. Palun alusta taastamisprotsessi algusest.",
|
||||
"invalid_new_password": "Sinu sisestatud uus salasõna pole korrektne, ta ilmselt ei vasta seadistatud turvareeglitele.",
|
||||
"no_current_password": "Sul on hetkel kehtiv salasõna määramata.",
|
||||
"no_such_recovery_ticket": "Salasõna taastamiseks mõeldud link on vigane. Kui sa kopeerisid ja e-kirjast, siis palun kontrolli, et kopeerisid kogu lingi ühe tervikuna.",
|
||||
"password_changes_disabled": "Salasõnade muutmine pole lubatud.",
|
||||
"recovery_ticket_already_used": "Sa oled salasõna taastamiseks mõeldud linki juba kasutanud ja seda ei saa uuesti teha.",
|
||||
"unspecified": "See ilmselt on ajutine probleem, palun proovi mõne aja pärast uuesti. Kui viga ei kao, siis abi saad serveri haldajalt.",
|
||||
"unspecified": "See ilmselt on ajutine probleem, palun proovi mõne aja pärast uuesti. Kui viga ei kao, siis abi saad oma teenusepakkujalt.",
|
||||
"wrong_password": "Sinu sisestatud salasõna ei vasta hetkel kehtivale salasõnale. Palun proovi uuesti.,"
|
||||
},
|
||||
"title": "Salasõna uuendamine ei õnnestunud"
|
||||
@@ -239,7 +239,7 @@
|
||||
"positive_1": "Sinu kasutajakonto andmed, kontaktid, eelistused ja vestluste loendid jäävad muutmata"
|
||||
},
|
||||
"failure": {
|
||||
"description": "See ilmselt on ajutine probleem, palun proovi mõne aja pärast uuesti. Kui viga ei kao, siis abi saad serveri haldajalt.",
|
||||
"description": "See ilmselt on ajutine probleem, palun proovi mõne aja pärast uuesti. Kui viga ei kao, siis abi saad oma teenusepakkujalt.",
|
||||
"heading": "Krüptoidentiteedi lähtestamise lubamine ei õnnestunud"
|
||||
},
|
||||
"finish_reset": "Lõpeta lähtestamine",
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
"password_confirmation": "Potwierdź hasło do swojego konta, aby dodać ten adres e-mail"
|
||||
},
|
||||
"browser_session_details": {
|
||||
"current_badge": "Aktualny"
|
||||
"current_badge": "Aktualne"
|
||||
},
|
||||
"browser_sessions_overview": {
|
||||
"body:one": "{{count}} aktywna sesja",
|
||||
@@ -254,7 +254,7 @@
|
||||
},
|
||||
"session": {
|
||||
"client_id_label": "Identyfikator klienta",
|
||||
"current": "Aktualny",
|
||||
"current": "Aktualne",
|
||||
"device_id_label": "Identyfikator urządzenia",
|
||||
"finished_label": "Zakończone",
|
||||
"generic_browser_session": "Sesja przeglądarki",
|
||||
|
||||
+3
-2
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright 2025, 2026 Element Creations Ltd.
|
||||
# Copyright 2025 New Vector Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
@@ -22,8 +23,8 @@ if [ "${CF_PAGES:-""}" = "1" ]; then
|
||||
# Source the environment variables to add cargo to the path
|
||||
. "$HOME/.cargo/env"
|
||||
|
||||
# Install the minimal toolchain, which includes rustc, rustdoc, and cargo
|
||||
rustup toolchain install stable --profile minimal
|
||||
# Install the toolchain pinned in rust-toolchain.toml
|
||||
rustup toolchain install
|
||||
|
||||
# Install mdbook
|
||||
MDBOOK_URL="https://github.com/rust-lang/mdBook/releases/download/v${MDBOOK_VERSION}/mdbook-v${MDBOOK_VERSION}-$(uname -m)-unknown-linux-gnu.tar.gz"
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Copyright 2026 Element Creations Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
# Please see LICENSE files in the repository root for full details.
|
||||
|
||||
[toolchain]
|
||||
channel = "1.96.0"
|
||||
profile = "minimal"
|
||||
# No rustfmt: .rustfmt.toml uses nightly-only options, so formatting runs as `cargo +nightly fmt`.
|
||||
# No cross-compilation targets: the Dockerfile and build.yaml add the ones they need.
|
||||
components = ["clippy"]
|
||||
@@ -39,11 +39,11 @@
|
||||
"mas": {
|
||||
"account": {
|
||||
"deactivated": {
|
||||
"description": "See kasutajakonto (<em>%(mxid)s</em>) on kustutatud. Kui see nii ei peaks olema, siis palun võta ühendust oma serveri haldajaga.",
|
||||
"description": "See kasutajakonto (<em>%(mxid)s</em>) on kustutatud. Kui see nii ei peaks olema, siis palun võta ühendust oma teenusepakkujaga.",
|
||||
"heading": "Kasutajakonto on kustutatud"
|
||||
},
|
||||
"locked": {
|
||||
"description": "See kasutajakonto (<em>%(mxid)s</em>) on lukustatud. Kui see nii ei peaks olema, siis palun võta ühendust oma serveri haldajaga.",
|
||||
"description": "See kasutajakonto (<em>%(mxid)s</em>) on lukustatud. Kui see nii ei peaks olema, siis palun võta ühendust oma teenusepakkujaga.",
|
||||
"heading": "Kasutajakonto on lukustatud"
|
||||
},
|
||||
"logged_out": {
|
||||
@@ -226,7 +226,7 @@
|
||||
"terms_of_service": "Ma nõustun <a href=\"%s\" data-kind=\"primary\" class=\"cpd-link\">teenuse kasutustingimustega</a>"
|
||||
},
|
||||
"registration_token": {
|
||||
"description": "Palun sisesta registreerimise tunnusluba, mille serveri haldaja on sulle andnud.",
|
||||
"description": "Palun sisesta registreerimise tunnusluba, mille sinu teenusepakkuja on sulle andnud.",
|
||||
"field": "Registreerimise tunnusluba",
|
||||
"headline": "Registreerimise tunnusluba"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user