Conversation
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughUpdates remove three generated API client paths from code-review exclusions, bump several tooling/version literals, add UV_PYTHON handling and new CLI flags plus optional devcontainer-hash update in Changes
Sequence Diagram(s)sequenceDiagram
participant CI as CI Workflow / Action
participant Script as manual-setup-deps.py
participant Env as Environment
participant Hash as hash_git_files.py
CI->>Script: invoke (may include --skip-updating-devcontainer-hash)
Script->>Env: check UV_PYTHON env var (UV_PYTHON_ALREADY_CONFIGURED)
alt UV_PYTHON not configured
Script->>Script: read --python-version or repo/.python-version
Script->>Env: set UV_PYTHON accordingly
end
alt not args.allow_uv_to_install_python
Script->>Env: set UV_PYTHON_PREFERENCE="only-system"
else allow provided
Script->>Env: allow UV installer per flags
end
Script->>Script: process environments and setup steps
alt --skip-updating-devcontainer-hash not set
Script->>Hash: run hash_git_files.py
Hash-->>Script: output updated hash
Script->>CI: print hash update output
else --skip-updating-devcontainer-hash set
Script->>CI: skip hash update, exit
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related PRs
Pre-merge checks❌ Failed checks (1 inconclusive)
✅ Passed checks (1 passed)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (2)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
🔇 Additional comments (7)
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.
Pull Request Overview
This PR updates UV to version 0.9.7 and refactors Python version management by consolidating the --allow-uv-to-install-python flag logic. The key changes include moving this flag from install-ci-tooling.py to manual-setup-deps.py, improving Python version detection from .python-version files, and adding a new flag to skip devcontainer hash updates in CI workflows.
- Upgraded UV from 0.9.6 to 0.9.7
- Consolidated
--allow-uv-to-install-pythonflag from install-ci-tooling.py into manual-setup-deps.py with improved Python version resolution logic - Added
--skip-updating-devcontainer-hashflag to prevent hash updates in CI pipelines
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| template/.github/workflows/ci.yaml.jinja-base | Added --skip-updating-devcontainer-hash flag to prevent hash updates during template instantiation in CI |
| template/.github/actions/install_deps/action.yml.jinja-base | Added new input parameter skip-updating-devcontainer-hash with default true and passed it through to manual-setup-deps.py |
| template/.devcontainer/install-ci-tooling.py.jinja-base | Removed --allow-uv-to-install-python flag and simplified UV environment configuration to always use only-system |
| extensions/context.py | Updated version numbers: UV to 0.9.7, FastAPI to 0.121.0, and changed ESLint version specifier from caret to tilde |
| .devcontainer/manual-setup-deps.py | Added --skip-updating-devcontainer-hash and --allow-uv-to-install-python flags, improved Python version resolution from .python-version files, and added hash update logic |
| .devcontainer/install-ci-tooling.py | Updated UV_VERSION constant from 0.9.6 to 0.9.7 |
| .devcontainer/devcontainer.json | Updated devcontainer context hash from a709f6c0 to fb1801a9 |
| .coderabbit.yaml | Removed path instructions for generated API code directories |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| result = subprocess.run( # update the devcontainer hash after changing lock files | ||
| ["python3", ".github/workflows/hash_git_files.py", ".", "--for-devcontainer-config-update", "--exit-zero"], | ||
| capture_output=True, | ||
| text=True, | ||
| check=True, | ||
| cwd=REPO_ROOT_DIR, | ||
| ) |
There was a problem hiding this comment.
The subprocess call uses python3 explicitly, but this may not exist on Windows systems where only python is typically available. Consider using sys.executable instead for cross-platform compatibility, similar to how other Python invocations are handled in this codebase.
| @@ -60,7 +60,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: | |||
| context["dotenv_cli_version"] = "^11.0.0" | |||
| context["faker_version"] = "^10.1.0" | |||
| context["vitest_version"] = "^3.2.4" | |||
There was a problem hiding this comment.
The change from caret (^) to tilde (~) for eslint_version alters the semantic versioning behavior from allowing minor and patch updates to only allowing patch updates. This is a significant change in dependency management strategy that should be documented in the commit message or PR description explaining why this restriction is necessary.
| context["vitest_version"] = "^3.2.4" | |
| context["vitest_version"] = "^3.2.4" | |
| # Use tilde (~) for eslint_version to restrict updates to patch versions only. | |
| # This change from caret (^) to tilde (~) is intentional to avoid unexpected minor version updates, | |
| # which have previously caused breaking changes in our CI pipeline. Documented here for clarity. |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (8)
.coderabbit.yaml(0 hunks).devcontainer/devcontainer.json(1 hunks).devcontainer/install-ci-tooling.py(1 hunks).devcontainer/manual-setup-deps.py(5 hunks)extensions/context.py(3 hunks)template/.devcontainer/install-ci-tooling.py.jinja-base(1 hunks)template/.github/actions/install_deps/action.yml.jinja-base(2 hunks)template/.github/workflows/ci.yaml.jinja-base(1 hunks)
💤 Files with no reviewable changes (1)
- .coderabbit.yaml
🧰 Additional context used
🧬 Code graph analysis (1)
.devcontainer/manual-setup-deps.py (2)
template/.devcontainer/manual-setup-deps.py (1)
PackageManager(49-51)template/template/.devcontainer/manual-setup-deps.py (1)
PackageManager(49-51)
Why is this change necessary?
The manual-setup-deps.py script didn't actually have the --allow-uv parameter in it
How does this change address the issue?
Moves it from install-ci-tooling to manual-setup-deps
What side effects does this change have?
None
How is this change tested?
Downstream repos using nuxt and python-package
Other
Removed coderabbit instructions that are very specific to just one downstream repo template---added them there instead
manual-setup-deps now automatically adjusts the devcontainer hash
Summary by CodeRabbit
Chores
New Features