element-hq / element-hq/synapse

Enforce Complement test Docker build times in CI

Open
#14,316 0 comments 0 reactions 0 assignees View on GitHub
A-Testing T-Task Z-Dev-Wishlist
Dominant language
Python
Stars
4.6k
Forks
600
Avg merge
5d 22h
Merged PRs (30d)
51

Description

This issue has been migrated from [#14316](https://github.com/matrix-org/synapse/issues/14316).

---

*As mentioned in the [weekly backend team call](https://docs.google.com/document/d/1atxgL1gLKH2n1sTBIKVLut2GPMwuGgatilAuvmhy-pg/edit#bookmark=id.t1wp1syy4ahx) and in the [internal backend room](https://matrix.to/#/!SGNQGPGUwtcPBUotTL:matrix.org/$aDjHM9Y7VODY7iypF2Ceo1pai1-lw7WYh7smaOnqCyI?via=jki.re&via=matrix.org&via=element.io)*

---

Testing with Complement has gotten so slow, https://github.com/matrix-org/synapse/issues/13204

Before people put effort into making it faster again, it would be nice to add some CI to enforce that we don't regress the timing. We've fixed and regressed the timing many times so I think it's worth actually enforcing. And as @clokep describes it, "slow tooling really impacts velocity." :feelsgood:

What we want to test is that a rebuild after a Synapse source change is fast. Not concerned with initial build times here since that's not the primary dev experience when iterating on a feature/bug.

### Potential solutions

Add a Complement Docker image rebuild job and fail the CI if it goes over a threshold duration.

It would be nice to do this as part of the existing Complement job since it has to do the initial Docker build there anyway.

Contributor guide

Open the contributing guide

Research direction

The existing Complement job and its initial Docker build are the stated entry points; locate them in the CI configuration first. Measure a rebuild after a Synapse source change, then add the timing check and verify that the job fails when the rebuild exceeds the chosen threshold.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
ci-cd, devops, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.