build: base on Synapse v1.164.1 and build the pinned version on merge #1

Merged
jlxq0 merged 1 commit from chore/synapse-v1.164.1 into main 2026-11-02 04:59:46 +00:00
Owner

Bumps the base image to Synapse v1.164.1 (latest stable, 2026-10-28; v1.164.0 + msgpack GHSA-j586-36cw-2gc2 fix) and makes a merge build the version the Dockerfile pins.

Changes

  • ARG SYNAPSE_VERSION and the workflow_dispatch default: v1.157.0 → v1.164.1.
  • build.yaml: a push to main now builds the ARG SYNAPSE_VERSION from the Dockerfile. Before this, a push built whatever api.github.com/.../releases/latest returned at that moment, so the ARG had no effect. Dispatch (explicit input) and the weekly schedule (releases/latest) are unchanged.
  • Every path refuses a version that is not vX.Y.Z. That covers an rc tag and null from an unauthenticated, rate-limited GitHub API answer.
  • The element-hq/synapse#19702 assert is still present in v1.164.1 (synapse/handlers/profile.py:952), so the sed workaround and its grep guard stay.

Verified locally

docker build --platform linux/amd64 of this branch succeeded: the patch applied, the guard passed, synapse.__version__ == 1.164.1, Python 3.13.18, and s3_storage_provider imports. Upstream base: ghcr.io/element-hq/synapse:v1.164.1 = index sha256:fa4aa980f279bcf26d4e7ecc2a2c9a701c73f2ebe8841da9bdcf3b2fdf693d75.

Release step (merging this PR is the release)

There is no tag-based release. The workflow triggers on push to main touching Dockerfile or the workflow, on dispatch, and on a weekly schedule. Pushing this PR branch triggered nothing.

  1. Merge this PR. The push-to-main run builds and pushes forge.oddie.app/oddie-apps/synapse-s3:v1.164.1, :v1.164.1-<merge sha7> and :latest.
  2. Check the run is green under Actions, then resolve the digest:
    curl -sI -u jlxq0:$TOKEN -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' https://forge.oddie.app/v2/oddie-apps/synapse-s3/manifests/v1.164.1 | grep -i docker-content-digest
  3. Put v1.164.1@sha256:<digest> into the platform PR (oddie-apps/platform, see its body) and take it out of WIP.

Timing: if nothing is merged first, the scheduled run on Mon 2026-11-02 06:00 UTC builds v1.164.1 anyway, because that is GitHub's releases/latest. Each later Monday re-pushes the same v1.164.1 and -<sha7> tags until 1.165 ships, and a rebuild can move the tag to a new digest. That is why the platform side pins by digest.

Rollback

Revert this PR. Images that have already been pushed stay in the registry, and the platform manifest decides what actually runs.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E2xQRd617pi9DE4U2rbsKS

Bumps the base image to **Synapse v1.164.1** (latest stable, 2026-10-28; v1.164.0 + msgpack GHSA-j586-36cw-2gc2 fix) and makes a merge build the version the Dockerfile pins. ## Changes - `ARG SYNAPSE_VERSION` and the `workflow_dispatch` default: `v1.157.0` → `v1.164.1`. - `build.yaml`: a **push to main** now builds the `ARG SYNAPSE_VERSION` from the Dockerfile. Before this, a push built whatever `api.github.com/.../releases/latest` returned at that moment, so the ARG had no effect. Dispatch (explicit input) and the weekly schedule (`releases/latest`) are unchanged. - Every path refuses a version that is not `vX.Y.Z`. That covers an rc tag and `null` from an unauthenticated, rate-limited GitHub API answer. - The element-hq/synapse#19702 assert is still present in v1.164.1 (`synapse/handlers/profile.py:952`), so the sed workaround and its grep guard stay. ## Verified locally `docker build --platform linux/amd64` of this branch succeeded: the patch applied, the guard passed, `synapse.__version__ == 1.164.1`, Python 3.13.18, and `s3_storage_provider` imports. Upstream base: `ghcr.io/element-hq/synapse:v1.164.1` = index `sha256:fa4aa980f279bcf26d4e7ecc2a2c9a701c73f2ebe8841da9bdcf3b2fdf693d75`. ## Release step (merging this PR is the release) There is no tag-based release. The workflow triggers on push to `main` touching `Dockerfile` or the workflow, on dispatch, and on a weekly schedule. Pushing this PR branch triggered nothing. 1. Merge this PR. The push-to-main run builds and pushes `forge.oddie.app/oddie-apps/synapse-s3:v1.164.1`, `:v1.164.1-<merge sha7>` and `:latest`. 2. Check the run is green under Actions, then resolve the digest: `curl -sI -u jlxq0:$TOKEN -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' https://forge.oddie.app/v2/oddie-apps/synapse-s3/manifests/v1.164.1 | grep -i docker-content-digest` 3. Put `v1.164.1@sha256:<digest>` into the platform PR (`oddie-apps/platform`, see its body) and take it out of WIP. Timing: if nothing is merged first, the **scheduled run on Mon 2026-11-02 06:00 UTC** builds `v1.164.1` anyway, because that is GitHub's `releases/latest`. Each later Monday re-pushes the same `v1.164.1` and `-<sha7>` tags until 1.165 ships, and a rebuild can move the tag to a new digest. That is why the platform side pins by digest. ## Rollback Revert this PR. Images that have already been pushed stay in the registry, and the platform manifest decides what actually runs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E2xQRd617pi9DE4U2rbsKS
Bump ARG SYNAPSE_VERSION and the workflow_dispatch default from v1.157.0
to v1.164.1, the newest stable upstream release (2026-10-28).

A push to main previously built whatever GitHub's releases/latest named at
that moment, so the ARG was decorative and a merge could not say which
version it shipped. Push builds now read the ARG from the Dockerfile; the
weekly schedule keeps polling releases/latest. Every path refuses a
version that is not vX.Y.Z, which also stops a rate-limited API answer
("null") from reaching buildctl.

The element-hq/synapse#19702 assert is still present in v1.164.1, so the
sed workaround and its grep guard stay. Verified with a local
linux/amd64 build: patch applied, synapse 1.164.1, Python 3.13.18,
s3_storage_provider importable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E2xQRd617pi9DE4U2rbsKS
jlxq0 merged commit 8e6170a697 into main 2026-11-02 04:59:46 +00:00
jlxq0 deleted branch chore/synapse-v1.164.1 2026-11-02 04:59:46 +00:00
Sign in to join this conversation.
No description provided.