Repository navigation
build: default TZ to UTC instead of Europe/Dublin (#970) - #1001
Open
ismisepaul wants to merge 1 commit into
Open
ismisepaul wants to merge 1 commit into
ismisepaul wants to merge 1 commit into
Conversation
.env set TZ=Europe/Dublin for the database, Tomcat and MongoDB containers. Dublin moves an hour twice a year, so timestamps stored in the repeated hour can't be told apart, and nothing told operators the setting existed. UTC has no gaps or repeats and matches CI and a plain mariadb container. Operators can still set any IANA zone. Document the setting, what it affects (stored timestamps and the CTF schedule), and what changes for an existing install that didn't change TZ. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The upgrade guidance incorrectly assures operators that expired suspensions are unaffected, although recently expired suspensions can temporarily block login again.
1 open issue
What changed in this PR
Changes the Docker stack’s default timezone to UTC to avoid daylight-saving gaps and repeated hours, while preserving operator-configurable timezones. The underlying timezone-dependent code paths remain out of scope.
Changes:
- Defaults
TZto UTC and documents supported timezone values. - Explains timezone effects on stored timestamps, CTF schedules, and upgrades.
| File | Description |
|---|---|
| README.md | Adds timezone configuration and upgrade guidance. |
| .env | Defaults container timezones to UTC with explanatory comments. |
Review effort: Balanced
|
|
||
| Upgrading from a release that shipped `TZ=Europe/Dublin`: unless you changed `TZ`, your environment moves to UTC on the next `docker-compose up`. To keep the old behaviour, set `TZ=Europe/Dublin` in `.env`. Otherwise: | ||
| * Times stored during Irish summer time read an hour later than they happened. Winter times are unchanged. | ||
| * An active suspension can last up to an hour longer. Expired ones are unaffected. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Fixes #970.
What
.envshippedTZ=Europe/Dublin, and docker compose passes it to the MariaDB, Tomcat and MongoDB containers. Dublin moves an hour twice a year. On the last Sunday of October, 01:00–02:00 happens twice, so suspension times and results written in that hour can't be told apart. Nothing told operators the setting existed either..env:TZ=UTC, with a comment saying what it sets and that it takes any IANA zone.README.md: a new Timezone section under the Docker setup. It covers:TZ: what moves to UTC, and how to keepEurope/Dublin.This doesn't fix the timezone-dependent code paths themselves (#841, #843). Operators can still set any
TZ, so the code has to keep working when it isn't UTC. Showing the server timezone next to the CTF schedule fields, the optional item in the issue, is not included.Checked
docker compose configgivesTZ: UTCfor all three services.mariadb:12.3,tomcat:11.0-jre17-temurinandmongoall reportUTCwithTZ=UTC, andISTwithTZ=Europe/Dublin, so the variable takes effect in each image.test.ymlpassed locally (lint, build, PGP check, compose build, Tomcat config check, unit tests, integration tests).🤖 Generated with Claude Code