Skip to content

feat(configs): add devcontainer config for reproducible dev and cross-platform code track#3656

Open
jiengup wants to merge 4 commits into
apache:masterfrom
jiengup:devcontainer
Open

feat(configs): add devcontainer config for reproducible dev and cross-platform code track#3656
jiengup wants to merge 4 commits into
apache:masterfrom
jiengup:devcontainer

Conversation

@jiengup

@jiengup jiengup commented Jul 12, 2026

Copy link
Copy Markdown

Which issue does this PR address?

Relates to NONE

Rationale

The repository lacked a devcontainer configuration, making onboarding inconsistent — each developer needs to manually install the correct Rust toolchain, Node.js, and system dependencies.
Moreover, for local development on other platforms (e.g, macOS), the compio-driver will fallback to poll instead of io-uring, which will make source code tracing difficult and different from iggy design.
On GitHub Codespaces, the default 8GB machine ran out of memory during rust-analyzer indexing, causing repeated SIGTERM crashes.

What changed?

Added .devcontainer/Dockerfile and .devcontainer/devcontainer.json that:

  • Mirror the production Dockerfile dependencies (Rust 1.96 via rustup, libssl-dev, libhwloc-dev, libudev-dev, nodejs) so the dev environment matches CI.
  • Configure hostRequirements (4-core / 16GB) to prevent rust-analyzer OOM kills on Codespaces.
  • Cap build parallelism (CARGO_BUILD_JOBS=4) and enable proc-macros/build-scripts for usable IDE features while staying within memory limits.
  • Forward ports for transports (HTTP 3000, TCP 8090, WebSocket 8092) plus the web UI dev server (3050).
    • Note that QUIC(8080) won't actually be reachable from the host through the forward cause port forwarding in vs code / codespaces supports TCP only. It's just for container-internal use.
  • Run npm --prefix web ci on container creation so the web frontend is ready immediately.

Local Execution

  • Passed — container builds, cargo check succeeds, rust-analyzer code navigation (Go to Definition / autocomplete) works.
  • Verified on both local Docker Desktop (macOS arm64) and GitHub Codespaces (4-core/16GB). Both enviroment can navigate to the io-uring driver code in compio.

Screenshot (Github Codespace)

image

AI Usage

LLM is used to generate the devcontainer configuration files and all the changes are checked by the human.

@github-actions

Copy link
Copy Markdown

Thanks for the PR. It is labeled S-waiting-on-review and queued for review.

Slash commands (own line, regular comment) move it around the queue:

  • /ready - back to S-waiting-on-review after addressing feedback
  • /author - flip to S-waiting-on-author while you finish changes
  • /request-review @user-or-team - request a reviewer

See CONTRIBUTING.md for details.

@github-actions github-actions Bot added the S-waiting-on-review PR is waiting on a reviewer label Jul 12, 2026
@jiengup jiengup closed this Jul 12, 2026
@github-actions github-actions Bot removed the S-waiting-on-review PR is waiting on a reviewer label Jul 12, 2026
@jiengup jiengup reopened this Jul 12, 2026
@jiengup

jiengup commented Jul 12, 2026

Copy link
Copy Markdown
Author

/ready

@github-actions github-actions Bot added the S-waiting-on-review PR is waiting on a reviewer label Jul 12, 2026
Comment thread .devcontainer/devcontainer.json
Comment thread .devcontainer/Dockerfile Outdated
@slbotbm

slbotbm commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

/author

@github-actions github-actions Bot added S-waiting-on-author PR is waiting on author response and removed S-waiting-on-review PR is waiting on a reviewer labels Jul 12, 2026
@jiengup

jiengup commented Jul 12, 2026

Copy link
Copy Markdown
Author

/ready

@github-actions github-actions Bot added S-waiting-on-review PR is waiting on a reviewer and removed S-waiting-on-author PR is waiting on author response labels Jul 12, 2026
@jiengup jiengup requested a review from slbotbm July 12, 2026 13:36
Comment thread .devcontainer/devcontainer.json Outdated
Comment thread .devcontainer/devcontainer.json Outdated
Comment thread .devcontainer/devcontainer.json
Comment thread .devcontainer/devcontainer.json Outdated
Comment thread .devcontainer/Dockerfile
@github-actions github-actions Bot added S-waiting-on-author PR is waiting on author response and removed S-waiting-on-review PR is waiting on a reviewer labels Jul 13, 2026
@jiengup jiengup changed the title feat(devcontainer): add devcontainer config for reproducible dev and cross-platform code track. feat(configs): add devcontainer config for reproducible dev and cross-platform code track. Jul 13, 2026
@jiengup jiengup force-pushed the devcontainer branch 2 times, most recently from d94216d to a53a2bb Compare July 13, 2026 15:33
@jiengup

jiengup commented Jul 13, 2026

Copy link
Copy Markdown
Author

/ready

@github-actions github-actions Bot added S-waiting-on-review PR is waiting on a reviewer and removed S-waiting-on-author PR is waiting on author response labels Jul 13, 2026
@hubcio hubcio changed the title feat(configs): add devcontainer config for reproducible dev and cross-platform code track. feat(configs): add devcontainer config for reproducible dev and cross-platform code track Jul 14, 2026
@hubcio

hubcio commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

/author

@github-actions github-actions Bot added S-waiting-on-author PR is waiting on author response and removed S-waiting-on-review PR is waiting on a reviewer labels Jul 14, 2026
cross-platform code track.

Provide a consistent development environment with the pinned
Rust toolchain, build dependencies, and VS Code extensions to
reduce contributor setup overhead and ensure reproducibility.
@jiengup jiengup force-pushed the devcontainer branch 2 times, most recently from 3e27329 to f5c85ce Compare July 15, 2026 06:17
@jiengup

jiengup commented Jul 15, 2026

Copy link
Copy Markdown
Author

/ready

@github-actions github-actions Bot added S-waiting-on-review PR is waiting on a reviewer and removed S-waiting-on-author PR is waiting on author response labels Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review PR is waiting on a reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants