Skip to content

Misc version bumps#122

Merged
ejfine merged 20 commits intomainfrom
misc-versions
Jan 5, 2026
Merged

Misc version bumps#122
ejfine merged 20 commits intomainfrom
misc-versions

Conversation

@ejfine
Copy link
Contributor

@ejfine ejfine commented Jan 5, 2026

Various devcontainer, library, and pre-commit hook version bumps. tested in downstream repos of nuxt-python-intranet app

Summary by CodeRabbit

  • Chores
    • Bumped many development tool and extension versions, refreshed pre-commit and CI tooling.
    • Switched Node.js defaults in templates to use a dynamic default value.
  • New Features
    • Added new top-level configuration flags for early access and in-progress UI behavior.
    • Enabled draft auto-review mode and added tailored review guidance for Python files.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 5, 2026

Warning

Rate limit exceeded

@ejfine has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 7 minutes and 43 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between a6b5c07 and 29ddd57.

📒 Files selected for processing (1)
  • template/.devcontainer/devcontainer.json.jinja-base

Note

Other AI code review bot(s) detected

CodeRabbit 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.

📝 Walkthrough

Walkthrough

Renames the template/context key node_versiondefault_node_version, updates many dependency and VS Code extension version pins across devcontainer, templates, and tooling scripts, adds new CodeRabbit config flags and Python review instructions, and bumps a small project dependency constraint.

Changes

Cohort / File(s) Summary
CodeRabbit configuration
\.coderabbit.yaml
Adds top-level flags early_access: true and in_progress_fortune: false; adds reviews.path_instructions entry for **/*.py; enables auto_review.drafts.
Devcontainer & tooling
\.devcontainer/devcontainer.json, \.devcontainer/install-ci-tooling.py
Bumps multiple VS Code extension versions and updates the devcontainer context hash; updates UV_VERSION from 0.9.180.9.21.
Pre-commit hooks
\.pre-commit-config.yaml
Advances frozen revisions for several pre-commit hooks (typos, jsonschema, json5, ruff, etc.).
Context / dependency versions
extensions/context.py, pyproject.toml
Mass-updates numerous context version strings and keys (renames node_versiondefault_node_version, adds pytest_reserial_version, removes some deprecated keys); bumps dependency ty constraint >=0.0.2>=0.0.9.
Template files
Template cohort
template/.devcontainer/devcontainer.json.jinja-base, template/.github/workflows/ci.yaml.jinja-base, template/copier.yml.jinja-base, template/extensions/context.py.jinja-base, template/tests/copier_data/data1.yaml.jinja-base, template/tests/copier_data/data2.yaml.jinja-base
Propagates node_versiondefault_node_version in templates and copier defaults; updates template devcontainer extension versions; replaces hardcoded Node versions with {{ default_node_version }}; adds pytest_reserial_version to template context.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–25 minutes

Possibly related PRs

Pre-merge checks

❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The description lacks most required sections from the template, including 'Link to Issue', 'Why is this change necessary', 'How does this change address the issue', 'What side effects', and 'How is this change tested'. Only the 'Other' section has minimal content. Complete the PR description by adding all required template sections with specific details about dependencies updated, rationale for updates, testing approach, and any potential side effects.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'Misc version bumps' is vague and generic, using the non-descriptive term 'Misc' which doesn't clearly convey the specific changes made across multiple configuration and dependency files. Consider a more descriptive title such as 'Update devcontainer, dependencies, and pre-commit hook versions' or 'Bump tooling and library versions across configuration files'.

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Fix all issues with AI Agents 🤖
In @pyproject.toml:
- Line 12: The dependency line adding "ty>=0.0.9" can pull in a release that
introduced a lint-rule rename in 0.0.8 (non-subscriptable -> not-subscriptable);
either pin or constrain the package and update any rule references: change
dependency to a pinned or bounded spec (e.g., lock to 0.0.9 or a narrow range)
in pyproject.toml and search for any usages of the old rule name
"non-subscriptable" (configs, linters, or CI) and rename them to
"not-subscriptable" so the codebase matches the ty release.

In @template/extensions/context.py.jinja-base:
- Line 50: The context variable context["pytest_reserial_version"] is defined in
template/extensions/context.py.jinja-base but never used; either add the
dependency pytest-reserial{{ pytest_reserial_version }} to the dependencies in
template/pyproject.toml.jinja-base (inside the pytest-related deps list) or
remove the context assignment to eliminate dead data; update the
pyproject.jinja-base dependencies to include the interpolated package string if
you want the package included, or delete the context["pytest_reserial_version"]
line from template/extensions/context.py.jinja-base if the package is not
needed.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
extensions/context.py (1)

14-86: Update Pulumi version to 3.214.0.

Pulumi 3.214.4 does not exist—the latest available version is 3.214.0. Change context["pulumi_version"] = ">=3.214.4" to context["pulumi_version"] = ">=3.214.0". The other version bumps (uv 0.9.21, FastAPI 0.128.0, Vue.js 3.5.26, pnpm 10.27.0) are valid recent releases. Note that FastAPI 0.128.0 drops pydantic v1 support, but your project already requires pydantic >=2.12.5, so the constraint is compatible.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d23ed13 and 90f4ab9.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (12)
  • .coderabbit.yaml
  • .devcontainer/devcontainer.json
  • .devcontainer/install-ci-tooling.py
  • .pre-commit-config.yaml
  • extensions/context.py
  • pyproject.toml
  • template/.devcontainer/devcontainer.json.jinja-base
  • template/.github/workflows/ci.yaml.jinja-base
  • template/copier.yml.jinja-base
  • template/extensions/context.py.jinja-base
  • template/tests/copier_data/data1.yaml.jinja-base
  • template/tests/copier_data/data2.yaml.jinja-base
🧰 Additional context used
📓 Path-based instructions (1)
**/*.py

⚙️ CodeRabbit configuration file

Do not express concerns about assert statements being removed by using the -O python flag; we never use that flag. Do not express concerns about ruff rules; a pre-commit hook already runs a ruff check. Do not warn about unnecessary super().init() calls; pyright prefers those to be present.

Files:

  • extensions/context.py
🔇 Additional comments (18)
.pre-commit-config.yaml (1)

45-45: All pre-commit hook version bumps are valid and verified.

The commit hashes have been verified against their respective repositories and all frozen version tags match correctly:

  • typos: commit b31d3aa matches tag v1 ✓
  • check-jsonschema: commit b035497 matches tag 0.36.0 ✓
  • check-json5: commit bd47374 matches tag v1.0.1 ✓
  • ruff-pre-commit: commit 5ba58ac matches tag v0.14.10 ✓

All versions are published releases. The changes follow GitHub security best practices by pinning to exact commit SHAs rather than moving refs. No issues identified.

.coderabbit.yaml (4)

2-2: Early access features enabled.

The early_access: true setting has been added, which enables early-access features in CodeRabbit. This is valid according to the schema.


8-9: Helpful Python-specific review instructions added.

The new path instructions for Python files provide clear guidance to avoid false positives around assert statements, ruff rules, and super().init() calls. This aligns well with the disabled ruff and pylint tools configuration below.


20-20: In-progress fortune messages disabled.

Setting in_progress_fortune: false disables the fortune messages while reviews are in progress. This is a valid configuration change.


25-25: Draft PR reviews enabled.

The drafts: true setting under auto_review enables CodeRabbit to review draft PRs, which aligns with the comment on line 24 about getting early feedback. This configuration is valid and useful.

template/tests/copier_data/data1.yaml.jinja-base (2)

21-21: Trailing comment added for clarity.

The comment helps document the purpose of this section in the data file.


13-13: The template variable default_node_version is properly defined in the template context.

The variable is defined in extensions/context.py with the value "24.11.1" and is correctly passed to the Copier template context. No rendering errors will occur.

template/.github/workflows/ci.yaml.jinja-base (1)

68-68: Node version variable renamed consistently.

The change from {{ node_version }} to {{ default_node_version }} is consistently applied across all template files. No old references remain, and the new variable is properly defined in context.py.

.devcontainer/install-ci-tooling.py (1)

8-8: The version 0.9.21 is confirmed to be available. GitHub shows this as the latest release, and the installer URLs are accessible (HTTP 301 redirects indicate valid endpoints). No action required.

template/tests/copier_data/data2.yaml.jinja-base (1)

13-13: LGTM! Consistent with the refactoring pattern.

The change from a hardcoded value to {{ default_node_version }} aligns with the broader PR objective of centralizing the Node.js version under a single context key.

template/copier.yml.jinja-base (1)

35-38: LGTM! Centralized default value.

The default value for the node_version question now references {{ default_node_version }}, ensuring consistency across the template. This allows the default to be managed centrally in the context.

.devcontainer/devcontainer.json (2)

25-40: LGTM! Extension versions updated.

Multiple VS Code extension versions have been bumped. Per the PR description, these changes were tested in downstream repositories.


65-65: LGTM! Context hash updated.

The devcontainer context hash has been updated appropriately, reflecting the changes in this file.

template/.devcontainer/devcontainer.json.jinja-base (2)

17-20: LGTM! Conditional logic maintains backward compatibility.

The conditional logic preserves node_version (the user-provided answer to the copier question) when not a child template, while using default_node_version (the centralized default) for child templates. This maintains flexibility for template inheritance.


31-56: LGTM! Extension versions updated consistently.

The extension version bumps mirror those in .devcontainer/devcontainer.json, maintaining consistency between the template and non-template configurations. The conditional inclusion of claude-code based on install_claude_cli is appropriate.

template/extensions/context.py.jinja-base (2)

52-83: Removed context keys have no remaining usages. The types_node_version and graphql_codegen_typescript_operations_version keys were successfully removed from the context with no dangling references in the codebase.


52-52: Context key rename is complete and correct.

The refactoring from node_version to default_node_version has been applied consistently across all template files. No remaining references to the old context key were found.

extensions/context.py (1)

57-57: The node_versiondefault_node_version rename is complete and correct.

The context key has been successfully renamed in both extensions/context.py (line 57: context["default_node_version"] = "24.11.1") and the template version (template/extensions/context.py.jinja-base line 52). No orphaned references to the old context["node_version"] key exist in the codebase. The form field node_version: in copier.yml.jinja-base is the user input variable (separate from the context key) and correctly defaults to the new context key via {{ default_node_version }}.

"pytest-randomly>=4.0.1",
"pyright[nodejs]>=1.1.407",
"ty>=0.0.2",
"ty>=0.0.9",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check PyPI for the ty package version and recent releases

# Get ty package information from PyPI
echo "=== Checking ty package versions on PyPI ==="
curl -s https://pypi.org/pypi/ty/json | jq -r '.releases | keys[]' | sort -V | tail -10

# Get latest version
echo -e "\n=== Latest version ==="
curl -s https://pypi.org/pypi/ty/json | jq -r '.info.version'

# Check if version 0.0.9 exists
echo -e "\n=== Checking if version 0.0.9 exists ==="
curl -s https://pypi.org/pypi/ty/0.0.9/json | jq -r '.info.version // "Version not found"'

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 278


🌐 Web query:

ty package Python PyPI changelog breaking changes

💡 Result:

Short answer — the ty changelog and breaking changes are published in the project's GitHub Releases (release notes) and on the project documentation/PyPI pages. See the Releases page for per-release "Breaking changes" sections (example: rename of the unknown-rule lint to ignore-comment-unknown-rule in 0.0.1‑alpha.24). [1][2]

Where to look:

  • GitHub Releases (release notes + breaking changes). Example entry showing a breaking change. [1]
  • PyPI project page / project docs for release history and docs. [2]

Sources:
[1] GitHub — astral-sh/ty Releases (release notes & breaking changes).
[2] PyPI — ty project page (description & release history).


🏁 Script executed:

#!/bin/bash
# Get detailed ty package information from PyPI including project URLs
echo "=== Detailed ty package info ==="
curl -s https://pypi.org/pypi/ty/json | jq -r '.info | {version, home_page, project_urls}' 

# Also check for release notes in recent versions
echo -e "\n=== Recent releases (0.0.2 to 0.0.9) ==="
curl -s https://pypi.org/pypi/ty/json | jq -r '.releases | to_entries[] | select(.key >= "0.0.2" and .key <= "0.0.9") | .key' | sort -V

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 599


🏁 Script executed:

#!/bin/bash
# Fetch the changelog from the ty GitHub repository
echo "=== Fetching ty CHANGELOG.md ==="
curl -s https://raw.githubusercontent.com/astral-sh/ty/main/CHANGELOG.md | head -200

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 10795


🏁 Script executed:

#!/bin/bash
# Fetch more of the changelog to see breaking changes in earlier versions
echo "=== Fetching more of ty CHANGELOG.md ==="
curl -s https://raw.githubusercontent.com/astral-sh/ty/main/CHANGELOG.md | head -400 | tail -200

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 12558


Version 0.0.9 exists as the latest release, but includes a breaking change in 0.0.8.

The ty package version 0.0.9 is confirmed to exist on PyPI as the latest stable release (released 2026-01-05). Between versions 0.0.2 and 0.0.9, there is one breaking change in version 0.0.8: the linting rule non-subscriptable was renamed to not-subscriptable. If the codebase depends on this rule or references it in any configuration, update accordingly. Most other changes between these versions are enhancements to type checking, LSP server improvements, and bug fixes.

🤖 Prompt for AI Agents
In @pyproject.toml around line 12, The dependency line adding "ty>=0.0.9" can
pull in a release that introduced a lint-rule rename in 0.0.8 (non-subscriptable
-> not-subscriptable); either pin or constrain the package and update any rule
references: change dependency to a pinned or bounded spec (e.g., lock to 0.0.9
or a narrow range) in pyproject.toml and search for any usages of the old rule
name "non-subscriptable" (configs, linters, or CI) and rename them to
"not-subscriptable" so the codebase matches the ty release.

context["vcrpy_version"] = "{{ vcrpy_version }}"
context["pytest_recording_version"] = "{{ pytest_recording_version }}"
context["pytest_asyncio_version"] = "{{ pytest_asyncio_version }}"
context["pytest_reserial_version"] = "{{ pytest_reserial_version }}"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for usage of pytest_reserial_version in template files
rg -n "pytest_reserial_version" --type=yaml --type=toml --type=jinja -g '!context.py.jinja-base'

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 72


🏁 Script executed:

#!/bin/bash
# Broader search for pytest_reserial_version across all files
rg -n "pytest_reserial_version" -g '!context.py.jinja-base'

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 169


🏁 Script executed:

#!/bin/bash
# Check the Python extension file for context
cat -n extensions/context.py | head -70

# Also check if there are other template files we may have missed
echo "=== Looking for all template files ==="
find . -type f \( -name "*.jinja*" -o -name "*.j2" -o -name "*.html" \) | head -20

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 5004


🏁 Script executed:

#!/bin/bash
# Search for pytest_reserial_version specifically in jinja-base template files
echo "=== Searching in .jinja-base files ==="
grep -r "pytest_reserial_version" template/

# Also check some similar variables to see the pattern
echo -e "\n=== Checking if other pytest_* variables are used in templates ==="
grep -r "pytest_mock_version\|pytest_version\|pytest_asyncio_version" template/ | head -10

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 734


🏁 Script executed:

#!/bin/bash
# Check pyproject.toml.jinja-base for pytest dependencies and reserial
echo "=== Searching for 'reserial' in pyproject.toml.jinja-base ==="
grep -n "reserial" template/pyproject.toml.jinja-base

echo -e "\n=== Searching for 'pytest' in pyproject.toml.jinja-base to see the pattern ==="
grep -n "pytest" template/pyproject.toml.jinja-base | head -20

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 431


Add pytest-reserial to pyproject.toml.jinja-base or remove the unused context variable.

The pytest_reserial_version context variable is defined but not consumed in any template. Other pytest packages follow the pattern of being defined in the context hook and then referenced in the pyproject.toml.jinja-base dependencies (e.g., pytest, pytest-cov, pytest-randomly). Either add pytest-reserial{{ pytest_reserial_version }} to the dependencies list in template/pyproject.toml.jinja-base or remove the unused variable from the context.

🤖 Prompt for AI Agents
In @template/extensions/context.py.jinja-base around line 50, The context
variable context["pytest_reserial_version"] is defined in
template/extensions/context.py.jinja-base but never used; either add the
dependency pytest-reserial{{ pytest_reserial_version }} to the dependencies in
template/pyproject.toml.jinja-base (inside the pytest-related deps list) or
remove the context assignment to eliminate dead data; update the
pyproject.jinja-base dependencies to include the interpolated package string if
you want the package included, or delete the context["pytest_reserial_version"]
line from template/extensions/context.py.jinja-base if the package is not
needed.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates various development tool versions, including Python packages, VS Code extensions, Node.js dependencies, and pre-commit hooks. The changes also include a refactoring to use a more generic default_node_version variable.

Key Changes

  • Updated Python package ty from 0.0.2 to 0.0.9
  • Bumped VS Code extension versions (Copilot Chat, Pylance, Ruff, and others)
  • Updated JavaScript dependencies and libraries (Nuxt, Vue, etc.)
  • Refreshed pre-commit hook versions and UV version to 0.9.21
  • Refactored node_version to default_node_version for better template inheritance

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
uv.lock Updated lock file for ty package from 0.0.2 to 0.0.9
pyproject.toml Bumped ty dependency version specifier
extensions/context.py Updated multiple library versions and added pytest_reserial_version; refactored node_version to default_node_version
template/extensions/context.py.jinja-base Template version of context.py with same updates
template/copier.yml.jinja-base Updated node_version default to use default_node_version variable
template/.devcontainer/devcontainer.json.jinja-base Updated VS Code extension versions and node version reference
template/.github/workflows/ci.yaml.jinja-base Updated node-version reference to default_node_version
template/tests/copier_data/data1.yaml.jinja-base Changed node_version to use default_node_version variable
template/tests/copier_data/data2.yaml.jinja-base Changed node_version to use default_node_version variable
.pre-commit-config.yaml Updated pre-commit hook versions (typos, check-jsonschema, check-json5, ruff)
.devcontainer/install-ci-tooling.py Bumped UV_VERSION to 0.9.21
.devcontainer/devcontainer.json Updated VS Code extension versions and hash
.coderabbit.yaml Added new configuration options (early_access, path instructions, in_progress_fortune)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"ghcr.io/devcontainers/features/node:1.6.3": {
// https://github.com/devcontainers/features/tree/main/src/node
"version": "{% endraw %}{{ node_version }}{% raw %}",
"version": "{% endraw %}{% if is_child_of_copier_base_template is not defined %}{{ node_version }}{% else %}{{ default_node_version }}{% endif %}{% raw %}",
Copy link

Copilot AI Jan 5, 2026

Choose a reason for hiding this comment

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

This conditional logic appears incorrect. The outer condition on line 16 already checks that is_child_of_copier_base_template is not defined. Inside this block, the same condition on line 19 will always be true, meaning {{ node_version }} will always be used and {{ default_node_version }} will never be reached.

Consider whether this should check for a different condition, or if the logic should be restructured to properly distinguish between when to use node_version vs default_node_version.

Suggested change
"version": "{% endraw %}{% if is_child_of_copier_base_template is not defined %}{{ node_version }}{% else %}{{ default_node_version }}{% endif %}{% raw %}",
"version": "{% endraw %}{{ node_version }}{% raw %}",

Copilot uses AI. Check for mistakes.
Copy link

@coderabbitai coderabbitai bot left a 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

Fix all issues with AI Agents 🤖
In @extensions/context.py:
- Line 38: The pyinstaller version was changed from an exact pin to a loose
range, reducing build reproducibility; revert or tighten this constraint by
updating context["pyinstaller_version"] to either the exact version "6.17.0" for
deterministic builds or a constrained range like ">=6.17.0,<7.0.0" to allow
patch updates but prevent major upgrades.
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 90f4ab9 and a6b5c07.

📒 Files selected for processing (1)
  • extensions/context.py
🧰 Additional context used
📓 Path-based instructions (1)
**/*.py

⚙️ CodeRabbit configuration file

Do not express concerns about assert statements being removed by using the -O python flag; we never use that flag. Do not express concerns about ruff rules; a pre-commit hook already runs a ruff check. Do not warn about unnecessary super().init() calls; pyright prefers those to be present.

Files:

  • extensions/context.py
⏰ 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). (1)
  • GitHub Check: lint-matrix (ubuntu-24.04, 3.12.7, --data-file tests/copier_data/data1.yaml)
🔇 Additional comments (7)
extensions/context.py (7)

51-52: Test and API dependency bumps are appropriate.

The patch-level updates to python_kiota_bundle_version and vcrpy_version look good.


58-58: Node.js and frontend dependency updates are standard version bumps.

All the Nuxt, Vue, TypeScript tooling, and related dependency updates are minor or patch-level changes appropriate for the caret (^) version ranges used in npm/pnpm.

Also applies to: 60-60, 63-64, 66-66, 68-68, 71-72, 75-76, 86-86


26-26: Python dependency version bumps are confirmed valid.

All specified package versions (ty>=0.0.9, pulumi>=3.214.1, pulumi-aws>=7.15.0, pulumi-github>=6.10.0, fastapi>=0.128.0, uvicorn>=0.40.0) exist on PyPI. The version updates are reasonable minor/patch bumps.


57-57: The node_version to default_node_version rename is consistently applied across the codebase.

Verification confirms the breaking change is complete:

  • extensions/context.py line 57 defines default_node_version correctly
  • template/copier.yml.jinja-base line 38 references it correctly as the default value
  • No remaining references to the old node_version context variable exist
  • All templates and scripts have been updated

55-55: New context key added for pytest-reserial.

The addition of pytest_reserial_version to the template context is confirmed. Note that this key is not directly referenced in template files; it follows the same pattern as other version variables (such as pytest_recording_version and pytest_asyncio_version) which are also stored in context for potential use in other parts of the template pipeline (e.g., install-ci-tooling.py or pyproject.toml configurations).


14-14: Core tooling version bumps are reasonable and versions exist.

The uv (0.9.21) and pnpm (10.27.0) updates are standard minor/patch version bumps set in the context hook for the copier template.


31-31: Verify the large Pulumi AWS Native version jump before merging.

The pulumi_aws_native_version jumps from 1.40.x to 1.47.0 (7 minor versions) over approximately 25 days. Review the pulumi-aws-native GitHub releases and Pulumi Registry for breaking changes, schema modifications, or migration requirements that could affect your stack resources.

context["ephemeral_pulumi_deploy_version"] = ">=0.0.6"
context["pydantic_version"] = ">=2.12.5"
context["pyinstaller_version"] = "6.17.0"
context["pyinstaller_version"] = ">=6.17.0"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Pyinstaller version constraint loosened from exact to range.

Changing from an exact version "6.17.0" to a range ">=6.17.0" reduces build reproducibility. Future builds may pick up newer versions of PyInstaller, which could introduce subtle differences in bundled executables.

If deterministic builds are required, consider either:

  • Keeping the exact version pin, or
  • Using a more constrained range like ">=6.17.0,<7.0.0"
🔎 Suggested fix for tighter constraint
-        context["pyinstaller_version"] = ">=6.17.0"
+        context["pyinstaller_version"] = ">=6.17.0,<7.0.0"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
context["pyinstaller_version"] = ">=6.17.0"
context["pyinstaller_version"] = ">=6.17.0,<7.0.0"
🤖 Prompt for AI Agents
In @extensions/context.py around line 38, The pyinstaller version was changed
from an exact pin to a loose range, reducing build reproducibility; revert or
tighten this constraint by updating context["pyinstaller_version"] to either the
exact version "6.17.0" for deterministic builds or a constrained range like
">=6.17.0,<7.0.0" to allow patch updates but prevent major upgrades.

@ejfine ejfine merged commit 87c5885 into main Jan 5, 2026
6 checks passed
@ejfine ejfine deleted the misc-versions branch January 5, 2026 21:16
@coderabbitai coderabbitai bot mentioned this pull request Jan 23, 2026
This was referenced Mar 2, 2026
@coderabbitai coderabbitai bot mentioned this pull request Mar 23, 2026
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.

2 participants