Skip to content

fix(docker-compose): Accept any Compose at or above v2.29.7 - #333

Merged
joshuarli merged 1 commit into
mainfrom
fix/docker-compose-minimum-version
Oct 14, 2026
Merged

joshuarli merged 1 commit into
mainfrom
fix/docker-compose-minimum-version

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

The Compose version check required an exact match with MINIMUM_DOCKER_COMPOSE_VERSION. After #332 bumped that to v5.6.0, every developer whose Compose wasn't exactly 5.6.0 (including Docker Desktop's bundled one) would get it replaced on their next devservices run.

Changes

  • MINIMUM_DOCKER_COMPOSE_VERSION is now a real minimum: v2.29.7, the version devservices pinned (and everyone ran) until fix(docker-compose): Download v5.6.0 from GitHub with a stall timeout #332.
  • New DOCKER_COMPOSE_INSTALL_VERSION (v5.6.0) is what gets downloaded, only when Compose is missing, its version can't be parsed, or it's older than the minimum.
  • Any installed Compose >= 2.29.7 is used as is, including -desktop.N builds.
  • Tests: added cases for at/above minimum (2.29.7, 2.38.2, desktop suffixes, 5.6.0, 6.0.0) and below minimum (2.29.6). Also fixed test_check_docker_compose_version_unsupported, which asserted with mock.is_called() (always truthy) instead of assert_called_once().

Side effect for CI

GitHub's ubuntu-24.04 runner ships Compose 2.38.2, so sentry/getsentry CI will use it and skip the Compose download entirely once this is released and the lockfiles are bumped.

Checked

All 401 tests, ruff, ruff format, mypy and pre-commit pass.

via @joshuarli.

--

View Junior Session [Sentry]

The version check required an exact match, so after the bump to v5.6.0
every developer with a different Compose (including Docker Desktop's
bundled one) would have it replaced on their next devservices run.

Treat MINIMUM_DOCKER_COMPOSE_VERSION as a real minimum (v2.29.7, the
version devservices pinned until #332) and only install
DOCKER_COMPOSE_INSTALL_VERSION (v5.6.0) when Compose is missing,
unparseable or older than the minimum.

Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
@joshuarli
joshuarli merged commit 6aa01ab into main Oct 14, 2026
17 checks passed
@joshuarli
joshuarli deleted the fix/docker-compose-minimum-version branch October 14, 2026 20:26
joshuarli added a commit to getsentry/sentry that referenced this pull request Oct 14, 2026
Bumps `devservices` from 1.5.1 to 1.5.4 (`pyproject.toml` floor +
`uv.lock`).

### What it brings in (devservices 1.5.1..1.5.4)
- [devservices#332](getsentry/devservices#332):
docker-compose is downloaded from docker/compose GitHub releases instead
of the `storage.googleapis.com` mirror, with a 15s stall timeout and 3
attempts. A stalled download now fails in ~48s instead of burning the
full 10m `devservices up` timeout (seen in [run
38623855049](https://github.com/getsentry/sentry/actions/runs/38623855049)).
- [devservices#333](getsentry/devservices#333):
any installed Compose >= 2.29.7 is accepted rather than forcing an exact
version. The `ubuntu-24.04` runner ships Compose 2.38.2, so CI should
skip the Compose download entirely.
- #330: retries transient GitHub errors when downloading remote
dependencies.
- #329: resolves compose services concurrently.
- #328: disables auto-enabled Sentry SDK integrations in devservices.

### Notes
- The CI early-devservices path reads this version from `uv.lock`, so it
picks up 1.5.4 automatically.
- getsentry needs no separate PR: `bin/bump_sentry.py` copies this
`uv.lock` into getsentry's `sentry-uv-lock` on the next sentry bump.
- The `uv.lock` diff is only the devservices entry; the lock `revision`
is left at 3.

<!-- junior-request-attribution:start -->
via @joshuarli.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:slack%3AC8V02RHC7%3A1791911755.006269 -->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/slack%3AC8V02RHC7%3A1791911755.006269)
[[Sentry]](https://sentry.sentry.io/explore/conversations/slack%3AC8V02RHC7%3A1791911755.006269/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: Joshua Li <14209781+joshuarli@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant