Release process
By Lukas Brandt · created 1 Feb 2021, 09:30 UTC · last updated 7 Oct 2026, 13:15 UTC · version 17
releasesdeploysportalidentity-servicenotifier
How code gets from a merge request to customers. Short version: identity-service and notifier deploy from main several times a week, region by region; the portal ships from a release branch every two weeks; features are switched on per client with a flag.
Before anything merges
- A merge request names its Jira issue (ENG-…) or its Emargen task in the title.
- CI on GitHub Actions passes: tests, static analysis, the formatter, a dependency scan.
- One approving review; two for
src/Saml,src/Approvalsand anything that touches regions (CODEOWNERS asks Marek and Mira). - A merge request written by Codex or Claude Code is reviewed like anyone's. The person whose token ran the agent is its author and answers for it.
identity-service and notifier
- Merging to
maindeploys to staging. - Deploy to production by region, smallest first: US, then UK, then EU. The pipeline waits for the smoke tests (a password sign-in, a phone code to our test number, a SAML sign-in against the test IdP, a request and an approval) to pass in one region before the next.
- Deploy Monday to Thursday, before 16:00. Friday: fixes only, and only with Oskar or the on-call engineer watching.
- Database migrations run before the new code and must work with the old code too. Nothing destructive in the same release that stops using a column.
- If the smoke tests fail, the pipeline stops and rolls that region back. Tell #eng.
portal
- Every second Tuesday we cut
release/4.Nfrommain. - Hanna runs the release checks on staging that week: the regression list, accessibility spot checks, and any test plan from the release's initiatives.
- It ships on the Thursday after the checks pass. Fixes go to the release branch and back to
main. release/4.12was cut on Tue 29 Sep and shipped on Thu 1 Oct with ACM-247's screens. The next cut is Tue 13 Oct.
Flags per client
New behaviour ships switched off and is turned on per client (client_features) on the date product agrees with the customer. That is why "shipped" dates fall on any weekday. A flag is removed once every client has it, within two releases.
Release notes
Leo writes release notes for customers. The "Release notes draft" agent task in Emargen runs every other Friday at 15:00 from the ENG issues closed and the initiatives done since the last run; Leo edits it and publishes Release notes. If your change is visible to customers, put one plain sentence in the issue or task saying what changes for them.
Freezes
The change calendar lists freezes. Planned now: Kelderby's switch weekends and its go-live. During a freeze only fixes go out, agreed with Oskar.
Change history
| Version | Date | Who | What |
|---|---|---|---|
| 14 | 29 Jun 2026 | Hanna | Release checks on the portal branch |
| 15 | 20 Jul 2026 | Leo | Release notes |
| 16 | 30 Sep 2026 | Lukas | Merge requests from agents; Emargen tasks in titles |
| 17 | 7 Oct 2026 | Lukas | Release 4.12; freezes for Kelderby |