Skip to content

Commit 748b7bc

Browse files
Merge tag 'v1.140.0' into ixo
Deployments that make use of the [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) module must upgrade to [v1.6.0](https://github.com/matrix-org/synapse-s3-storage-provider/releases/tag/v1.6.0). Using older versions of the module with this release of Synapse will prevent users from being able to upload or download media. No significant changes since 1.140.0rc1. - Add [a new Media Query by ID Admin API](https://element-hq.github.io/synapse/v1.140/admin_api/media_admin_api.html#query-a-piece-of-media-by-id) that allows server admins to query and investigate the metadata of local or cached remote media via the `origin/media_id` identifier found in a [Matrix Content URI](https://spec.matrix.org/v1.14/client-server-api/#matrix-content-mxc-uris). ([\element-hq#18911](element-hq#18911)) - Add [a new Fetch Event Admin API](https://element-hq.github.io/synapse/v1.140/admin_api/fetch_event.html) to fetch an event by ID. ([\element-hq#18963](element-hq#18963)) - Update [MSC4284: Policy Servers](matrix-org/matrix-spec-proposals#4284) implementation to support signatures when available. ([\element-hq#18934](element-hq#18934)) - Add experimental implementation of the `GET /_matrix/client/v1/rtc/transports` endpoint for the latest draft of [MSC4143: MatrixRTC](matrix-org/matrix-spec-proposals#4143). ([\element-hq#18967](element-hq#18967)) - Expose a `defer_to_threadpool` function in the Synapse Module API that allows modules to run a function on a separate thread in a custom threadpool. ([\element-hq#19032](element-hq#19032)) - Fix room upgrade `room_config` argument and documentation for `user_may_create_room` spam-checker callback. ([\element-hq#18721](element-hq#18721)) - Compute a user's last seen timestamp from their devices' last seen timestamps instead of IPs, because the latter are automatically cleared according to `user_ips_max_age`. ([\element-hq#18948](element-hq#18948)) - Fix bug where ephemeral events were not filtered by room ID. Contributed by @frastefanini. ([\element-hq#19002](element-hq#19002)) - Update Synapse main process version string to include git info. ([\element-hq#19011](element-hq#19011)) - Explain how `Deferred` callbacks interact with logcontexts. ([\element-hq#18914](element-hq#18914)) - Fix documentation for `rc_room_creation` and `rc_reports` to clarify that a `per_user` rate limit is not supported. ([\element-hq#18998](element-hq#18998)) - Remove deprecated `LoggingContext.set_current_context`/`LoggingContext.current_context` methods which already have equivalent bare methods in `synapse.logging.context`. ([\element-hq#18989](element-hq#18989)) - Drop support for unstable field names from the long-accepted [MSC2732](matrix-org/matrix-spec-proposals#2732) (Olm fallback keys) proposal. ([\element-hq#18996](element-hq#18996)) - Cleanly shutdown `SynapseHomeServer` object, allowing artifacts of embedded small hosts to be properly garbage collected. ([\element-hq#18828](element-hq#18828)) - Update OEmbed providers to use 'X' instead of 'Twitter' in URL previews, following a rebrand. Contributed by @HammyHavoc. ([\element-hq#18767](element-hq#18767)) - Fix `server_name` in logging context for multiple Synapse instances in one process. ([\element-hq#18868](element-hq#18868)) - Wrap the Rust HTTP client with `make_deferred_yieldable` so it follows Synapse logcontext rules. ([\element-hq#18903](element-hq#18903)) - Fix the GitHub Actions workflow that moves issues labeled "X-Needs-Info" to the "Needs info" column on the team's internal triage board. ([\element-hq#18913](element-hq#18913)) - Disconnect background process work from request trace. ([\element-hq#18932](element-hq#18932)) - Reduce overall number of calls to `_get_e2e_cross_signing_signatures_for_devices` by increasing the batch size of devices the query is called with, reducing DB load. ([\element-hq#18939](element-hq#18939)) - Update error code used when an appservice tries to masquerade as an unknown device using [MSC4326](matrix-org/matrix-spec-proposals#4326). Contributed by @tulir @ Beeper. ([\element-hq#18947](element-hq#18947)) - Fix `no active span when trying to log` tracing error on startup (when OpenTracing is enabled). ([\element-hq#18959](element-hq#18959)) - Fix `run_coroutine_in_background(...)` incorrectly handling logcontext. ([\element-hq#18964](element-hq#18964)) - Add debug logs wherever we change current logcontext. ([\element-hq#18966](element-hq#18966)) - Update dockerfile metadata to fix broken link; point to documentation website. ([\element-hq#18971](element-hq#18971)) - Note that the code is additionally licensed under the [Element Commercial license](https://github.com/element-hq/synapse/blob/develop/LICENSE-COMMERCIAL) in SPDX expression field configs. ([\element-hq#18973](element-hq#18973)) - Fix logcontext handling in `timeout_deferred` tests. ([\element-hq#18974](element-hq#18974)) - Remove internal `ReplicationUploadKeysForUserRestServlet` as a follow-up to the work in element-hq#18581 that moved device changes off the main process. ([\element-hq#18988](element-hq#18988)) - Switch task scheduler from raw logcontext manipulation to using the dedicated logcontext utils. ([\element-hq#18990](element-hq#18990)) - Remove `MockClock()` in tests. ([\element-hq#18992](element-hq#18992)) - Switch back to our own custom `LogContextScopeManager` instead of OpenTracing's `ContextVarsScopeManager` which was causing problems when using the experimental `SYNAPSE_ASYNC_IO_REACTOR` option with tracing enabled. ([\element-hq#19007](element-hq#19007)) - Remove `version_string` argument from `HomeServer` since it's always the same. ([\element-hq#19012](element-hq#19012)) - Remove duplicate call to `hs.start_background_tasks()` introduced from a bad merge. ([\element-hq#19013](element-hq#19013)) - Split homeserver creation (`create_homeserver`) and setup (`setup`). ([\element-hq#19015](element-hq#19015)) - Swap near-end-of-life `macos-13` GitHub Actions runner for the `macos-15-intel` variant. ([\element-hq#19025](element-hq#19025)) - Introduce `RootConfig.validate_config()` which can be subclassed in `HomeServerConfig` to do cross-config class validation. ([\element-hq#19027](element-hq#19027)) - Allow any command of the `release.py` script to accept a `--gh-token` argument. ([\element-hq#19035](element-hq#19035)) * Bump Swatinem/rust-cache from 2.8.0 to 2.8.1. ([\element-hq#18949](element-hq#18949)) * Bump actions/cache from 4.2.4 to 4.3.0. ([\element-hq#18983](element-hq#18983)) * Bump anyhow from 1.0.99 to 1.0.100. ([\element-hq#18950](element-hq#18950)) * Bump authlib from 1.6.3 to 1.6.4. ([\element-hq#18957](element-hq#18957)) * Bump authlib from 1.6.4 to 1.6.5. ([\element-hq#19019](element-hq#19019)) * Bump bcrypt from 4.3.0 to 5.0.0. ([\element-hq#18984](element-hq#18984)) * Bump docker/login-action from 3.5.0 to 3.6.0. ([\element-hq#18978](element-hq#18978)) * Bump lxml from 6.0.0 to 6.0.2. ([\element-hq#18979](element-hq#18979)) * Bump phonenumbers from 9.0.13 to 9.0.14. ([\element-hq#18954](element-hq#18954)) * Bump phonenumbers from 9.0.14 to 9.0.15. ([\element-hq#18991](element-hq#18991)) * Bump prometheus-client from 0.22.1 to 0.23.1. ([\element-hq#19016](element-hq#19016)) * Bump pydantic from 2.11.9 to 2.11.10. ([\element-hq#19017](element-hq#19017)) * Bump pygithub from 2.7.0 to 2.8.1. ([\element-hq#18952](element-hq#18952)) * Bump regex from 1.11.2 to 1.11.3. ([\element-hq#18981](element-hq#18981)) * Bump serde from 1.0.224 to 1.0.226. ([\element-hq#18953](element-hq#18953)) * Bump serde from 1.0.226 to 1.0.228. ([\element-hq#18982](element-hq#18982)) * Bump setuptools-rust from 1.11.1 to 1.12.0. ([\element-hq#18980](element-hq#18980)) * Bump twine from 6.1.0 to 6.2.0. ([\element-hq#18985](element-hq#18985)) * Bump types-pyyaml from 6.0.12.20250809 to 6.0.12.20250915. ([\element-hq#19018](element-hq#19018)) * Bump types-requests from 2.32.4.20250809 to 2.32.4.20250913. ([\element-hq#18951](element-hq#18951)) * Bump typing-extensions from 4.14.1 to 4.15.0. ([\element-hq#18956](element-hq#18956))
2 parents 1bcd343 + b8f6ad2 commit 748b7bc

File tree

682 files changed

+36457
-9930
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

682 files changed

+36457
-9930
lines changed

.ci/scripts/test_synapse_port_db.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ poetry run update_synapse_database --database-config .ci/postgres-config-unporte
6161
echo "+++ Comparing ported schema with unported schema"
6262
# Ignore the tables that portdb creates. (Should it tidy them up when the porting is completed?)
6363
psql synapse -c "DROP TABLE port_from_sqlite3;"
64-
pg_dump --format=plain --schema-only --no-tablespaces --no-acl --no-owner synapse_unported > unported.sql
65-
pg_dump --format=plain --schema-only --no-tablespaces --no-acl --no-owner synapse > ported.sql
64+
pg_dump --format=plain --schema-only --no-tablespaces --no-acl --no-owner --restrict-key=TESTING synapse_unported > unported.sql
65+
pg_dump --format=plain --schema-only --no-tablespaces --no-acl --no-owner --restrict-key=TESTING synapse > ported.sql
6666
# By default, `diff` returns zero if there are no changes and nonzero otherwise
67-
diff -u unported.sql ported.sql | tee schema_diff
67+
diff -u unported.sql ported.sql | tee schema_diff
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
# 1) Resolve project ID.
5+
PROJECT_ID=$(gh project view "$PROJECT_NUMBER" --owner "$PROJECT_OWNER" --format json | jq -r '.id')
6+
7+
# 2) Find existing item (project card) for this issue.
8+
ITEM_ID=$(
9+
gh project item-list "$PROJECT_NUMBER" --owner "$PROJECT_OWNER" --format json \
10+
| jq -r --arg url "$ISSUE_URL" '.items[] | select(.content.url==$url) | .id' | head -n1
11+
)
12+
13+
# 3) If one doesn't exist, add this issue to the project.
14+
if [ -z "${ITEM_ID:-}" ]; then
15+
ITEM_ID=$(gh project item-add "$PROJECT_NUMBER" --owner "$PROJECT_OWNER" --url "$ISSUE_URL" --format json | jq -r '.id')
16+
fi
17+
18+
# 4) Get Status field id + the option id for TARGET_STATUS.
19+
FIELDS_JSON=$(gh project field-list "$PROJECT_NUMBER" --owner "$PROJECT_OWNER" --format json)
20+
STATUS_FIELD=$(echo "$FIELDS_JSON" | jq -r '.fields[] | select(.name=="Status")')
21+
STATUS_FIELD_ID=$(echo "$STATUS_FIELD" | jq -r '.id')
22+
OPTION_ID=$(echo "$STATUS_FIELD" | jq -r --arg name "$TARGET_STATUS" '.options[] | select(.name==$name) | .id')
23+
24+
if [ -z "${OPTION_ID:-}" ]; then
25+
echo "No Status option named \"$TARGET_STATUS\" found"; exit 1
26+
fi
27+
28+
# 5) Set Status (moves item to the matching column in the board view).
29+
gh project item-edit --id "$ITEM_ID" --project-id "$PROJECT_ID" --field-id "$STATUS_FIELD_ID" --single-select-option-id "$OPTION_ID"

.github/workflows/docker.yml

Lines changed: 101 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ name: Build docker images
55
on:
66
push:
77
tags: ["v*"]
8-
branches: [ master, main, develop ]
8+
branches: [master, main, develop]
99
workflow_dispatch:
1010

1111
permissions:
@@ -14,26 +14,24 @@ permissions:
1414
id-token: write # needed for signing the images with GitHub OIDC Token
1515
jobs:
1616
build:
17-
runs-on: ubuntu-22.04
17+
name: Build and push image for ${{ matrix.platform }}
18+
runs-on: ${{ matrix.runs_on }}
19+
strategy:
20+
matrix:
21+
include:
22+
- platform: linux/amd64
23+
runs_on: ubuntu-24.04
24+
suffix: linux-amd64
25+
- platform: linux/arm64
26+
runs_on: ubuntu-24.04-arm
27+
suffix: linux-arm64
1828
steps:
19-
- name: Set up QEMU
20-
id: qemu
21-
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
22-
with:
23-
platforms: arm64
24-
2529
- name: Set up Docker Buildx
2630
id: buildx
27-
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
28-
29-
- name: Inspect builder
30-
run: docker buildx inspect
31-
32-
- name: Install Cosign
33-
uses: sigstore/cosign-installer@3454372f43399081ed03b604cb2d021dabca52bb # v3.8.2
31+
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
3432

3533
- name: Checkout repository
36-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
34+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
3735

3836
- name: Extract version from pyproject.toml
3937
# Note: explicitly requesting bash will mean bash is invoked with `-eo pipefail`, see
@@ -43,57 +41,115 @@ jobs:
4341
echo "SYNAPSE_VERSION=$(grep "^version" pyproject.toml | sed -E 's/version\s*=\s*["]([^"]*)["]/\1/')" >> $GITHUB_ENV
4442
4543
- name: Log in to DockerHub
46-
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
44+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
4745
with:
4846
username: ${{ secrets.DOCKERHUB_USERNAME }}
4947
password: ${{ secrets.DOCKERHUB_TOKEN }}
5048

5149
- name: Log in to GHCR
52-
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
50+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
5351
with:
5452
registry: ghcr.io
5553
username: ${{ github.repository_owner }}
5654
password: ${{ secrets.GITHUB_TOKEN }}
5755

58-
- name: Calculate docker image tag
59-
id: set-tag
60-
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
56+
- name: Build and push by digest
57+
id: build
58+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
6159
with:
62-
images: |
60+
push: true
61+
labels: |
62+
gitsha1=${{ github.sha }}
63+
org.opencontainers.image.version=${{ env.SYNAPSE_VERSION }}
64+
tags: |
6365
docker.io/matrixdotorg/synapse
6466
ghcr.io/element-hq/synapse
67+
file: "docker/Dockerfile"
68+
platforms: ${{ matrix.platform }}
69+
outputs: type=image,push-by-digest=true,name-canonical=true,push=true
70+
71+
- name: Export digest
72+
run: |
73+
mkdir -p ${{ runner.temp }}/digests
74+
digest="${{ steps.build.outputs.digest }}"
75+
touch "${{ runner.temp }}/digests/${digest#sha256:}"
76+
77+
- name: Upload digest
78+
uses: actions/upload-artifact@v4
79+
with:
80+
name: digests-${{ matrix.suffix }}
81+
path: ${{ runner.temp }}/digests/*
82+
if-no-files-found: error
83+
retention-days: 1
84+
85+
merge:
86+
name: Push merged images to ${{ matrix.repository }}
87+
runs-on: ubuntu-latest
88+
strategy:
89+
matrix:
90+
repository:
91+
- docker.io/matrixdotorg/synapse
92+
- ghcr.io/element-hq/synapse
93+
94+
needs:
95+
- build
96+
steps:
97+
- name: Download digests
98+
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
99+
with:
100+
path: ${{ runner.temp }}/digests
101+
pattern: digests-*
102+
merge-multiple: true
103+
104+
- name: Log in to DockerHub
105+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
106+
if: ${{ startsWith(matrix.repository, 'docker.io') }}
107+
with:
108+
username: ${{ secrets.DOCKERHUB_USERNAME }}
109+
password: ${{ secrets.DOCKERHUB_TOKEN }}
110+
111+
- name: Log in to GHCR
112+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
113+
if: ${{ startsWith(matrix.repository, 'ghcr.io') }}
114+
with:
115+
registry: ghcr.io
116+
username: ${{ github.repository_owner }}
117+
password: ${{ secrets.GITHUB_TOKEN }}
118+
119+
- name: Set up Docker Buildx
120+
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
121+
122+
- name: Install Cosign
123+
uses: sigstore/cosign-installer@d7543c93d881b35a8faa02e8e3605f69b7a1ce62 # v3.10.0
124+
125+
- name: Calculate docker image tag
126+
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
127+
with:
128+
images: ${{ matrix.repository }}
65129
flavor: |
66130
latest=false
67131
tags: |
68132
type=raw,value=develop,enable=${{ github.ref == 'refs/heads/develop' }}
69133
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }}
70134
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
71135
type=pep440,pattern={{raw}}
136+
type=sha
72137
73-
- name: Build and push all platforms
74-
id: build-and-push
75-
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
76-
with:
77-
push: true
78-
labels: |
79-
gitsha1=${{ github.sha }}
80-
org.opencontainers.image.version=${{ env.SYNAPSE_VERSION }}
81-
tags: "${{ steps.set-tag.outputs.tags }}"
82-
file: "docker/Dockerfile"
83-
platforms: linux/amd64,linux/arm64
84-
85-
# arm64 builds OOM without the git fetch setting. c.f.
86-
# https://github.com/rust-lang/cargo/issues/10583
87-
build-args: |
88-
CARGO_NET_GIT_FETCH_WITH_CLI=true
138+
- name: Create manifest list and push
139+
working-directory: ${{ runner.temp }}/digests
140+
env:
141+
REPOSITORY: ${{ matrix.repository }}
142+
run: |
143+
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
144+
$(printf "$REPOSITORY@sha256:%s " *)
89145
90-
- name: Sign the images with GitHub OIDC Token
146+
- name: Sign each manifest
91147
env:
92-
DIGEST: ${{ steps.build-and-push.outputs.digest }}
93-
TAGS: ${{ steps.set-tag.outputs.tags }}
148+
REPOSITORY: ${{ matrix.repository }}
94149
run: |
95-
images=""
96-
for tag in ${TAGS}; do
97-
images+="${tag}@${DIGEST} "
150+
DIGESTS=""
151+
for TAG in $(echo "$DOCKER_METADATA_OUTPUT_JSON" | jq -r '.tags[]'); do
152+
DIGEST="$(docker buildx imagetools inspect $TAG --format '{{json .Manifest}}' | jq -r '.digest')"
153+
DIGESTS="$DIGESTS $REPOSITORY@$DIGEST"
98154
done
99-
cosign sign --yes ${images}
155+
cosign sign --yes $DIGESTS

.github/workflows/docs-pr-netlify.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
# There's a 'download artifact' action, but it hasn't been updated for the workflow_run action
1515
# (https://github.com/actions/download-artifact/issues/60) so instead we get this mess:
1616
- name: 📥 Download artifact
17-
uses: dawidd6/action-download-artifact@07ab29fd4a977ae4d2b275087cf67563dfdf0295 # v9
17+
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
1818
with:
1919
workflow: docs-pr.yaml
2020
run_id: ${{ github.event.workflow_run.id }}

.github/workflows/docs-pr.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
name: GitHub Pages
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
16+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
1717
with:
1818
# Fetch all history so that the schema_versions script works.
1919
fetch-depth: 0
@@ -24,7 +24,7 @@ jobs:
2424
mdbook-version: '0.4.17'
2525

2626
- name: Setup python
27-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
27+
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
2828
with:
2929
python-version: "3.x"
3030

@@ -50,7 +50,7 @@ jobs:
5050
name: Check links in documentation
5151
runs-on: ubuntu-latest
5252
steps:
53-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
53+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
5454

5555
- name: Setup mdbook
5656
uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08 # v2.0.0

.github/workflows/docs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
needs:
5151
- pre
5252
steps:
53-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
53+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
5454
with:
5555
# Fetch all history so that the schema_versions script works.
5656
fetch-depth: 0
@@ -64,7 +64,7 @@ jobs:
6464
run: echo 'window.SYNAPSE_VERSION = "${{ needs.pre.outputs.branch-version }}";' > ./docs/website_files/version.js
6565

6666
- name: Setup python
67-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
67+
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
6868
with:
6969
python-version: "3.x"
7070

.github/workflows/fix_lint.yaml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,26 @@ name: Attempt to automatically fix linting errors
66
on:
77
workflow_dispatch:
88

9+
env:
10+
# We use nightly so that `fmt` correctly groups together imports, and
11+
# clippy correctly fixes up the benchmarks.
12+
RUST_VERSION: nightly-2025-06-24
13+
914
jobs:
1015
fixup:
1116
name: Fix up
1217
runs-on: ubuntu-latest
1318

1419
steps:
1520
- name: Checkout repository
16-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
21+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
1722

1823
- name: Install Rust
19-
uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 # master (rust 1.85.1)
24+
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # master
2025
with:
21-
# We use nightly so that `fmt` correctly groups together imports, and
22-
# clippy correctly fixes up the benchmarks.
23-
toolchain: nightly-2022-12-01
26+
toolchain: ${{ env.RUST_VERSION }}
2427
components: clippy, rustfmt
25-
- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8
28+
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
2629

2730
- name: Setup Poetry
2831
uses: matrix-org/setup-python-poetry@5bbf6603c5c930615ec8a29f1b5d7d258d905aa4 # v2.0.0
@@ -44,6 +47,6 @@ jobs:
4447
- run: cargo fmt
4548
continue-on-error: true
4649

47-
- uses: stefanzweifel/git-auto-commit-action@b863ae1933cb653a53c021fe36dbb774e1fb9403 # v5.2.0
50+
- uses: stefanzweifel/git-auto-commit-action@778341af668090896ca464160c2def5d1d1a3eb0 # v6.0.1
4851
with:
4952
commit_message: "Attempt to fix linting"

0 commit comments

Comments
 (0)