Skip to content

Add python development workspace support - #20

Merged
csandanov merged 3 commits into
masterfrom
feature/workspace-runtime-contract
Sep 23, 2026
Merged

csandanov merged 3 commits into
masterfrom
feature/workspace-runtime-contract

Conversation

@csandanov

@csandanov csandanov commented Sep 23, 2026

Copy link
Copy Markdown
Member

Development workspaces need runtime tools and dependency preparation without normal startup overwriting developer configuration. This adds workspace contract version 1, configuration-only startup, explicit development commands, and login-shell tool paths that survive a mounted home.

Python uses locked uv synchronization or requirements in shared virtualenv storage. uv is installed outside the developer home so home mounts do not hide it. Gunicorn uses polling; Uvicorn commands receive watchfiles polling defaults.

Shared dependency/build files use a reserved checkout directory excluded through local Git metadata. Tracked paths and symlinks at that directory are refused. Ordinary startup keeps its existing behavior.

Validation

  • Local helper tests with package-manager stubs passed; shell syntax checked; common contract, configuration/state preservation, and runtime tests added to image CI.

  • Local candidate container checks passed for configuration-only startup, developer-state preservation, reserved storage, and workspace startup. Full image matrix CI and live-cluster acceptance remain pending.

  • Real locked uv preparation preserved the lockfile; Gunicorn observed a second-container edit over a shared volume. This smoke test is included in CI. uv and Git remained available with an empty home mount.

Release

Publish a new revision after CI passes, then advance consuming ordinary/development tag pairs. Existing releases are not relabeled.

Separate runtime configuration from developer identity and application initialization. Add explicit preparation/startup, shared dependency storage, contract labeling and CI coverage.
Run a real uv and Gunicorn smoke test during development-image CI. Verify that an edit from another container appears in HTTP responses and preparation preserves the lockfile.
Resolve fixture ownership through the wodby account so the same reload test works for development images using UID 1000 and macOS variants using UID 501. Verified the real reload test with both IDs.
@csandanov
csandanov marked this pull request as ready for review September 23, 2026 16:26
@csandanov
csandanov merged commit 61a6bb4 into master Sep 23, 2026
33 checks passed
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