Skip to content

feat(dev): add isolated worktree devcontainers - #21480

Merged
nijel merged 13 commits into
WeblateOrg:mainfrom
nijel:devcontainer
Sep 6, 2026
Merged

nijel merged 13 commits into
WeblateOrg:mainfrom
nijel:devcontainer

Conversation

@nijel

@nijel nijel commented Sep 5, 2026

Copy link
Copy Markdown
Member

Provide reproducible test and lint environments with per-checkout PostgreSQL, Valkey, storage, and Git worktree mounts. Add bootstrap, diagnostics, lifecycle commands, and CI smoke coverage to make local verification repeatable.

Reject dotenv project-name overrides to keep startup and cleanup isolated. Switch the existing development stack to Valkey with a fresh data volume.

Fixes #13488

@nijel nijel added this to the 2026.9.1 milestone Sep 5, 2026
@nijel nijel self-assigned this Sep 5, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-06T07:16:14.583994Z 53c841a New commits
🔒 Security Review ✅ Completed 2026-09-05T05:25:30.840571Z 637b7ee PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Comment thread docs/contributing/start.rst Outdated
Provide reproducible test and lint environments with per-checkout PostgreSQL, Valkey, storage, and Git worktree mounts. Add bootstrap, diagnostics, lifecycle commands, and CI smoke coverage to make local verification repeatable.

Reject dotenv project-name overrides to keep startup and cleanup isolated. Switch the existing development stack to Valkey with a fresh data volume.

Fixes WeblateOrg#13488
@nijel
nijel enabled auto-merge (rebase) September 5, 2026 08:36
Run rundev tests through the isolated devcontainer environment using Compose, without requiring the Dev Container CLI. Share Valkey configuration and consolidate development container checks into one ARM workflow.

Extend Renovate file matching so split Compose definitions retain image tag and digest updates.
Share application and test lifecycle handling between rundev and devcontainer. Give application QA separate storage and networks with dynamically allocated loopback URLs, allowing concurrent worktrees without port conflicts.

Consolidate shared Compose definitions and use Renovate's default file matching. Add profile-scoped cleanup, domain activation, and concurrent ARM smoke coverage. Keep IDE shutdown project-wide while launcher stop commands affect only their selected profile.
Compose up --wait fails because the developer container disables the application's HTTP healthcheck. Rely on the existing healthy service dependencies and bootstrap checks instead, and cover the startup command in host tests.
@nijel
nijel disabled auto-merge September 5, 2026 09:07
The base image installs Python through uv in a version- and architecture-specific directory. Expose that interpreter on PATH before virtualenv bootstrap and activate the application with /usr/bin/env python3 instead of a nonexistent fixed path.

Exercise domain-file creation and replacement in the regression test.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 59f2dd0f7e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread dev-docker/docker-compose.yml Outdated
nijel and others added 7 commits September 5, 2026 12:56
Discover the managed Python interpreter without populating the runtime uv cache as root, preventing permission failures during container bootstrap.

Define application build and environment-file paths in the base Compose file and verify their resolved locations with a Compose configuration test.
Install native Chromium and its matching driver without APT version pins. Share Selenium setup with browser diagnostics and expose mandatory browser tests through both development launchers, with ARM and amd64 CI coverage.
Check values loaded from the application environment file instead of env_file metadata, which is omitted by the Compose version used in CI.
Exercise real Celery delivery, transaction retries, repository commits, exports, rendered statistics, translation memory, and Maildev notifications. Share the application-test command between launchers and run the journeys in CI with bounded waits and worker diagnostics.
Application startup prunes the uv cache, removing the smoke test marker. Verify persistence in application data, virtual environment, and home volumes instead.
@nijel
nijel enabled auto-merge (rebase) September 6, 2026 06:40

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 52a9552cb2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread dev-docker/docker-compose.yml
Comment thread .devcontainer/environment.py Outdated
Recreate persisted virtual environments when the image Python changes or the interpreter is broken. Preserve profile filters for option-only log requests and require successful HTTP health checks before application QA starts.
auto-merge was automatically disabled September 6, 2026 09:23

Rebase failed

@nijel
nijel merged commit 19aa695 into WeblateOrg:main Sep 6, 2026
35 of 36 checks passed
@nijel
nijel deleted the devcontainer branch September 6, 2026 17:08
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.

Include devcontainer.json

1 participant