element-hq / element-hq/synapse
Enforce Complement test Docker build times in CI
- 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
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