Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@
"coderabbit.coderabbit-vscode@0.15.2",
"ms-vscode.live-server@0.5.2025051301",
"MS-vsliveshare.vsliveshare@1.0.5905",
"github.copilot@1.380.1802",
"github.copilot-chat@0.33.2025101401",
"github.copilot@1.388.0",
"github.copilot-chat@0.33.2025102701",
// Python
"ms-python.python@2025.13.2025090201",
"ms-python.vscode-pylance@2025.7.102",
"ms-vscode-remote.remote-containers@0.414.0",
"charliermarsh.ruff@2025.24.0",
"charliermarsh.ruff@2025.28.0",
// Misc file formats
"bierner.markdown-mermaid@1.28.0",
"samuelcolvin.jinjahtml@0.20.0",
Expand Down Expand Up @@ -61,5 +61,5 @@
"initializeCommand": "sh .devcontainer/initialize-command.sh",
"onCreateCommand": "sh .devcontainer/on-create-command.sh",
"postStartCommand": "sh .devcontainer/post-start-command.sh"
// Devcontainer context hash (do not manually edit this, it's managed by a pre-commit hook): 183fe443 # spellchecker:disable-line
// Devcontainer context hash (do not manually edit this, it's managed by a pre-commit hook): bd40f6bf # spellchecker:disable-line
}
4 changes: 2 additions & 2 deletions .devcontainer/install-ci-tooling.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import subprocess
import sys

UV_VERSION = "0.9.2"
COPIER_VERSION = "9.10.2"
UV_VERSION = "0.9.5"
COPIER_VERSION = "9.10.3"
COPIER_TEMPLATE_EXTENSIONS_VERSION = "0.3.3"
PRE_COMMIT_VERSION = "4.3.0"
GITHUB_WINDOWS_RUNNER_BIN_PATH = r"C:\Users\runneradmin\.local\bin"
Expand Down
24 changes: 12 additions & 12 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ repos:
(?x)^(
.*/vendor_files/.*|
.*tests/.*/__snapshots__/.*|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
Copy link

Copilot AI Oct 27, 2025

Choose a reason for hiding this comment

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

[nitpick] The regex pattern .*/generated/open[-_]api/.* allows both hyphen and underscore variants (open-api and open_api). This flexibility could lead to inconsistent directory naming across projects. Consider documenting which variant should be used as the standard, or enforce a single pattern to maintain consistency.

Copilot uses AI. Check for mistakes.
)$
- id: end-of-file-fixer
# the XML formatter hook doesn't leave a blank line at the end, so excluding XML files from this hook to avoid conflicts
Expand All @@ -71,7 +71,7 @@ repos:
template/template/.copier-answers.yml.jinja|
template/.copier-answers.yml.jinja|
.*generated/graphql.ts|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
.*tests/.*/__snapshots__/.*|
.devcontainer/devcontainer-lock.json|
.copier-answers.yml|
Expand All @@ -88,7 +88,7 @@ repos:
.*pyrightconfig.json|
.*tsconfig.json|
.*biome.jsonc|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
.*tests/.*/__snapshots__/.*|
.*/vendor_files/.*|
)$
Expand All @@ -102,7 +102,7 @@ repos:
exclude: |
(?x)^(
.*generated/graphql.ts|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
.*/schema.graphql|
.*pyrightconfig\.json|
)$
Expand All @@ -129,7 +129,7 @@ repos:
.*.jsonc|
.*/vendor_files/.*|
.*/schema.graphql|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
.*generated/graphql.ts|
template/.*|
)$
Expand Down Expand Up @@ -243,7 +243,7 @@ repos:
description: Runs hadolint to lint Dockerfiles

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: f9351c924055bf6c7b4a4670237d3ce141e9f57c # frozen: v0.14.0
rev: 3db93a2be6f214ed722bf7bce095ec1b1715422a # frozen: v0.14.2
hooks:
- id: ruff
name: ruff-src
Expand All @@ -252,7 +252,7 @@ repos:
exclude: |
(?x)^(
.*/graphql_codegen/.*|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
template/.*|
)$
- id: ruff
Expand All @@ -262,26 +262,26 @@ repos:
exclude: |
(?x)^(
.*/graphql_codegen/.*|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
template/.*|
)$
- id: ruff-format
exclude: |
(?x)^(
.*/graphql_codegen/.*|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
)$

- repo: https://github.com/pylint-dev/pylint
rev: 9a3035053154ba0c3ca3b300d6bc9fa72b95d552 # frozen: v4.0.1
rev: 0eb92d25fd38ba5bad2f8d2ea7df63ad23e18ae3 # frozen: v4.0.2
hooks:
- id: pylint
name: pylint
# exclude the template files---duplication within them will be discovered during CI of that template instantiation
exclude: |
(?x)^(
.*/graphql_codegen/.*|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
template/.*|
)$
args:
Expand All @@ -297,7 +297,7 @@ repos:
exclude: |
(?x)^(
.*/graphql_codegen/.*|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
)$
# don't pass filenames else the command line sees them twice
pass_filenames: false
Expand Down
36 changes: 18 additions & 18 deletions extensions/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,35 +11,35 @@ class ContextUpdater(ContextHook):
@override
def hook(self, context: dict[Any, Any]) -> dict[Any, Any]:
# These are duplicated in the install-ci-tooling.py script in this repository
context["uv_version"] = "0.9.2"
context["uv_version"] = "0.9.5"
context["pre_commit_version"] = "4.3.0"
# These also in pyproject.toml
context["copier_version"] = "9.10.2"
context["copier_version"] = "9.10.3"
context["copier_template_extensions_version"] = "0.3.3"
#######
context["pnpm_version"] = "10.18.3"
context["pnpm_version"] = "10.19.0"
# These are duplicated in the pyproject.toml of this repository
context["pyright_version"] = "1.1.406"
context["pyright_version"] = "1.1.407"
context["pytest_version"] = "8.4.2"
context["pytest_randomly_version"] = "4.0.1"
context["pytest_cov_version"] = "7.0.0"
#######
context["sphinx_version"] = "8.1.3"
context["pulumi_version"] = "3.203.0"
context["pulumi_aws_version"] = "7.8.0"
context["pulumi_version"] = "3.204.0"
context["pulumi_aws_version"] = "7.10.0"
context["pulumi_aws_native_version"] = "1.37.0"
context["pulumi_command_version"] = "1.1.3"
context["pulumi_github_version"] = "6.7.4"
context["pulumi_okta_version"] = "6.0.0"
context["boto3_version"] = "1.40.51"
context["boto3_version"] = "1.40.60"
context["ephemeral_pulumi_deploy_version"] = "0.0.5"
context["pydantic_version"] = "2.12.2"
context["pydantic_version"] = "2.12.3"
context["pyinstaller_version"] = "6.16.0"
context["setuptools_version"] = "80.7.1"
context["strawberry_graphql_version"] = "0.283.3"
context["fastapi_version"] = "0.119.0"
context["strawberry_graphql_version"] = "0.284.1"
context["fastapi_version"] = "0.120.1"
context["fastapi_offline_version"] = "1.7.4"
context["uvicorn_version"] = "0.37.0"
context["uvicorn_version"] = "0.38.0"
context["lab_auto_pulumi_version"] = "0.1.17"
context["ariadne_codegen_version"] = "0.15.2"
context["pytest_mock_version"] = "3.15.1"
Expand All @@ -49,28 +49,28 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]:
context["node_version"] = "24.7.0"
context["nuxt_ui_version"] = "^4.0.1"
context["nuxt_version"] = "^4.1.0"
context["nuxt_icon_version"] = "^2.0.0"
context["nuxt_icon_version"] = "^2.1.0"
context["typescript_version"] = "^5.9.3"
context["playwright_version"] = "^1.56.0"
context["vue_version"] = "^3.5.21"
context["vue_tsc_version"] = "^3.1.1"
context["vue_version"] = "^3.5.22"
context["vue_tsc_version"] = "^3.1.2"
context["vue_devtools_api_version"] = "^8.0.0"
context["vue_router_version"] = "^4.6.0"
context["dotenv_cli_version"] = "^10.0.0"
context["faker_version"] = "^10.1.0"
context["vitest_version"] = "^3.2.4"
context["eslint_version"] = "^9.37.0"
context["eslint_version"] = "^9.38.0"
context["nuxt_eslint_version"] = "^1.9.0"
context["zod_version"] = "^4.1.5"
context["zod_from_json_schema_version"] = "^0.5.0"
context["types_node_version"] = "^24.7.2"
context["types_node_version"] = "^24.9.1"
context["nuxt_apollo_version"] = "5.0.0-alpha.15"
context["graphql_codegen_cli_version"] = "^6.0.0"
context["graphql_codegen_typescript_version"] = "^5.0.0"
context["graphql_codegen_typescript_operations_version"] = "^5.0.0"
context["tailwindcss_version"] = "^4.1.11"
context["iconify_vue_version"] = "^5.0.0"
context["iconify_json_lucide_version"] = "^1.2.68"
context["iconify_json_lucide_version"] = "^1.2.71"
context["nuxt_fonts_version"] = "^0.11.4"
context["nuxtjs_color_mode_version"] = "^3.5.2"
context["vue_test_utils_version"] = "^2.4.6"
Expand All @@ -93,7 +93,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]:
context["gha_docker_build_push"] = "v6.16.0"
context["gha_configure_aws_credentials"] = "v5.0.0"
context["gha_amazon_ecr_login"] = "v2.0.1"
context["gha_setup_node"] = "v5.0.0"
context["gha_setup_node"] = "v6.0.0"
context["gha_action_gh_release"] = "v2.2.1"
context["gha_mutex"] = "1ebad517141198e08d47cf72f3c0975316620a65 # v1.0.0-alpha.10"
context["gha_pypi_publish"] = "v1.13.0"
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ dependencies = [
"pytest>=8.4.2",
"pytest-cov>=7.0.0",
"pytest-randomly>=4.0.1",
"pyright[nodejs]>=1.1.406",
"pyright[nodejs]>=1.1.407",
"copier>=9.10.2",
"copier-template-extensions>=0.3.3"
]
3 changes: 1 addition & 2 deletions pyrightconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"**/__pycache__",
"**/vendor_files",
"**/graphql_codegen",
"**/openapi_codegen",
"**/generated/open_api",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify path pattern consistency across configuration files.

The glob pattern here uses **/generated/open_api (underscore only), but .pre-commit-config.yaml uses the regex pattern .*/generated/open[-_]api/.* (underscore OR hyphen). This inconsistency could result in files being excluded in pre-commit hooks but still analyzed by pyright, or vice versa.

Ensure the naming convention is consistent, or if both open_api and open-api are valid generated paths, update this glob pattern to match both.

Run the following script to check if both naming conventions exist in the codebase:


🏁 Script executed:

#!/bin/bash
# Description: Check for both generated/open_api and generated/open-api paths

# Search for directories matching either pattern
fd -t d -g "**/generated/open_api"
fd -t d -g "**/generated/open-api"

Length of output: 0


🏁 Script executed:

#!/bin/bash
# Description: Inspect actual config files and check for generated directories

echo "=== pyrightconfig.json ==="
cat pyrightconfig.json

echo -e "\n=== .pre-commit-config.yaml (search for generated pattern) ==="
grep -n "generated" .pre-commit-config.yaml || echo "No matches"

echo -e "\n=== Search for any generated directories ==="
fd -t d "generated" || echo "No generated directories found"

echo -e "\n=== Search for open_api or open-api anywhere ==="
rg -i "open.?api" --type-list | head -5
rg -i "open.?api" -l || echo "No matches"

Length of output: 5243


🌐 Web query:

pyrightconfig.json exclude glob pattern syntax documentation

💡 Result:

Summary: pyrightconfig.json exclude entries use filesystem glob patterns (wildcards) similar to gitignore-style/glob syntax: * matches any characters except '/', ** matches zero-or-more path components (recursive), ? matches one character, character classes ([a-z]) work, and patterns are anchored to the config-file/project root unless you prefix with **/. Exclude entries override include; Pyright auto-excludes common folders (node_modules, pycache, venv, .git) by default. See Pyright docs/examples and config discussion for details. [1][2][3]

Quick examples

  • "**/pycache" — exclude any pycache directory anywhere. [1]
  • ".venv" or "/.venv/" — exclude virtualenv. [1][2]
  • "src/experimental" — exclude that path relative to project root (not every directory named experimental). Use "**/experimental" to match any nested directory named experimental. [1][2]
  • Exclude overrides include (an excluded file in an included dir is not type-checked). [3]

Sources

  1. Pyright sample config & patterns in docs (pyrightconfig.json examples). [1]
  2. Pyright configuration reference (pyrightconfig.json behavior and defaults). [2]
  3. Pyright GitHub discussion / docs clarifying exclude overrides and LSP behavior. [3]

Update glob pattern to match both open_api and open-api naming conventions.

The pattern **/generated/open_api only excludes paths with underscore, but .pre-commit-config.yaml uses regex patterns that match both underscore and hyphen (open[-_]api). Update line 14 to **/generated/open[_-]api using glob character class syntax to ensure consistent exclusion behavior across both configuration files.

🤖 Prompt for AI Agents
In pyrightconfig.json around line 14, the exclude glob "**/generated/open_api"
only matches underscore and misses "open-api"; update the pattern to use a
character class matching both separators (open[_-]api) so it excludes both
generated/open_api and generated/open-api paths consistently with other configs;
replace the existing glob entry with the new pattern and save the file.

"**/.venv",
"**/venv"
],
Expand Down Expand Up @@ -99,7 +99,6 @@
"reportUnnecessaryTypeIgnoreComment": true,
"reportMatchNotExhaustive": true,
"reportImplicitOverride": true,
"reportShadowedImports": true,
"pythonPlatform": "Linux",
"executionEnvironments": [
{
Expand Down
6 changes: 3 additions & 3 deletions template/.devcontainer/devcontainer.json.jinja-base
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@
"coderabbit.coderabbit-vscode@0.15.2",
"ms-vscode.live-server@0.5.2025051301",
"MS-vsliveshare.vsliveshare@1.0.5905",
"github.copilot@1.380.1802",
"github.copilot-chat@0.33.2025101401",{% endraw %}{% if install_claude_cli %}{% raw %}
"anthropic.claude-code@2.0.10",{% endraw %}{% endif %}{% raw %}
"github.copilot@1.388.0",
"github.copilot-chat@0.33.2025102701",{% endraw %}{% if install_claude_cli %}{% raw %}
"anthropic.claude-code@2.0.27",{% endraw %}{% endif %}{% raw %}

// Python
"ms-python.python@2025.17.2025100201",
Expand Down
8 changes: 4 additions & 4 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.