-
Notifications
You must be signed in to change notification settings - Fork 84
chore: update devcontainer to python 3.13, ubuntu 24, and add fish shell #538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughDevcontainer config switched base image from jammy to noble, upgraded the Python feature to version 3.13, and added a new local Fish shell feature (manifest + installer). The post-create script shebang and strict flags were fixed and pip install was changed to Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant DevHost as Developer Host
participant DevContainer as Dev Container engine
participant Features as Features (python, github-cli, fish)
participant PostCreate as Post-create script
rect rgb(235,245,255)
DevHost->>DevContainer: Start container using `devcontainer.json`
DevContainer->>Features: Pull & apply features\n(`github-cli`, `python:3.13`, `./features/fish`)
note right of Features `#eef8ff`: Fish feature runs `install.sh` which invokes apt-get
Features-->>DevContainer: Feature layers applied
end
rect rgb(245,255,235)
DevContainer->>PostCreate: Run `.devcontainer/postCreateCommands.sh`
PostCreate->>DevContainer: `python3 -m pip install -r requirements.txt` \nthen `make html`
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Pre-merge checks✅ Passed checks (3 passed)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🔇 Additional comments (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
.devcontainer/devcontainer.json(1 hunks).devcontainer/features/fish/devcontainer-feature.json(1 hunks).devcontainer/features/fish/install.sh(1 hunks).devcontainer/postCreateCommands.sh(1 hunks)
🔇 Additional comments (6)
.devcontainer/postCreateCommands.sh (1)
1-3: ✓ Shebang and safety flags are correct.The shebang fix to
#!/bin/shand the addition ofset -eualign with the PR objectives. The POSIX-compliant safety flags are appropriate for a post-create script:set -eexits on error andset -uerrors on unset variables..devcontainer/features/fish/install.sh (1)
1-13: ✓ Fish shell installation script is well-structured.The script uses proper bash-specific safety flags (
set -euo pipefail), includes robust apt-get detection, and applies installation best practices (noninteractive mode, minimal package footprint, cleanup). Error handling is clear with appropriate exit codes..devcontainer/features/fish/devcontainer-feature.json (1)
1-10: ✓ Feature manifest is correctly structured.The Fish shell feature manifest conforms to the devcontainer specification. The
installsAfterdependency oncommon-utilsis appropriate, and the minimal configuration (empty options) is suitable for a straightforward package installation..devcontainer/devcontainer.json (3)
10-12: ✓ Python 3.13 feature configuration aligns with postCreateCommands.sh.The Python feature is explicitly pinned to version 3.13, which matches the
python3.13 -m pipinvocation in postCreateCommands.sh. This ensures consistency between the feature provisioning and the post-create script.
13-13: ✓ Fish shell feature correctly integrated.The new Fish shell feature is properly referenced as a local feature path (
./features/fish) with an empty options object, which is appropriate. It will be installed after common-utils per the feature manifest dependency.
6-6: Confirmed: Base image upgrade from jammy to noble involves significant version changes that require verification.The upgrade introduces substantial changes across multiple components:
- Kernel (5.15 → 6.8) with frame-pointers enabled and cgroups v2 behavior changes
- glibc 2.35 → 2.39 affecting binary compatibility and system toolchains (Python 3.10 → 3.12, updated Rust, Go, OpenJDK)
- Container runtime updates (containerd 1.7+) changing image/build API behavior
- Service restart behavior changes in non-interactive apt operations
Before merging, verify:
- Project dependencies (native binaries, prebuilt libs, glibc-dependent code) work with noble's toolchain versions
- CI/build pipelines and any scripts relying on system Python or container runtimes still function
- Docker/container image builds succeed with newer containerd versions in the devcontainer environment
Summary
Testing
Codex Task
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.