diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 896c3e42..0be5c075 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -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", @@ -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 } diff --git a/.devcontainer/install-ci-tooling.py b/.devcontainer/install-ci-tooling.py index 2b6dc3d1..ea3d2bf9 100644 --- a/.devcontainer/install-ci-tooling.py +++ b/.devcontainer/install-ci-tooling.py @@ -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" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 66531bc6..22ab55ae 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -59,7 +59,7 @@ repos: (?x)^( .*/vendor_files/.*| .*tests/.*/__snapshots__/.*| - .*/openapi_codegen/.*| + .*/generated/open[-_]api/.*| )$ - 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 @@ -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| @@ -88,7 +88,7 @@ repos: .*pyrightconfig.json| .*tsconfig.json| .*biome.jsonc| - .*/openapi_codegen/.*| + .*/generated/open[-_]api/.*| .*tests/.*/__snapshots__/.*| .*/vendor_files/.*| )$ @@ -102,7 +102,7 @@ repos: exclude: | (?x)^( .*generated/graphql.ts| - .*/openapi_codegen/.*| + .*/generated/open[-_]api/.*| .*/schema.graphql| .*pyrightconfig\.json| )$ @@ -129,7 +129,7 @@ repos: .*.jsonc| .*/vendor_files/.*| .*/schema.graphql| - .*/openapi_codegen/.*| + .*/generated/open[-_]api/.*| .*generated/graphql.ts| template/.*| )$ @@ -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 @@ -252,7 +252,7 @@ repos: exclude: | (?x)^( .*/graphql_codegen/.*| - .*/openapi_codegen/.*| + .*/generated/open[-_]api/.*| template/.*| )$ - id: ruff @@ -262,18 +262,18 @@ 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 @@ -281,7 +281,7 @@ repos: exclude: | (?x)^( .*/graphql_codegen/.*| - .*/openapi_codegen/.*| + .*/generated/open[-_]api/.*| template/.*| )$ args: @@ -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 diff --git a/extensions/context.py b/extensions/context.py index 664cfb72..46bbad3d 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -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" @@ -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" @@ -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" diff --git a/pyproject.toml b/pyproject.toml index 9de0d8fd..f9a375e9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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" ] diff --git a/pyrightconfig.json b/pyrightconfig.json index b817e638..1e26d9d5 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -11,7 +11,7 @@ "**/__pycache__", "**/vendor_files", "**/graphql_codegen", - "**/openapi_codegen", + "**/generated/open_api", "**/.venv", "**/venv" ], @@ -99,7 +99,6 @@ "reportUnnecessaryTypeIgnoreComment": true, "reportMatchNotExhaustive": true, "reportImplicitOverride": true, - "reportShadowedImports": true, "pythonPlatform": "Linux", "executionEnvironments": [ { diff --git a/template/.devcontainer/devcontainer.json.jinja-base b/template/.devcontainer/devcontainer.json.jinja-base index e8e318e5..2e9fd5f6 100644 --- a/template/.devcontainer/devcontainer.json.jinja-base +++ b/template/.devcontainer/devcontainer.json.jinja-base @@ -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", diff --git a/uv.lock b/uv.lock index f842dea2..a7b70355 100644 --- a/uv.lock +++ b/uv.lock @@ -61,7 +61,7 @@ dependencies = [ requires-dist = [ { name = "copier", specifier = ">=9.10.2" }, { name = "copier-template-extensions", specifier = ">=0.3.3" }, - { name = "pyright", extras = ["nodejs"], specifier = ">=1.1.406" }, + { name = "pyright", extras = ["nodejs"], specifier = ">=1.1.407" }, { name = "pytest", specifier = ">=8.4.2" }, { name = "pytest-cov", specifier = ">=7.0.0" }, { name = "pytest-randomly", specifier = ">=4.0.1" }, @@ -384,15 +384,15 @@ wheels = [ [[package]] name = "pyright" -version = "1.1.406" +version = "1.1.407" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nodeenv" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f7/16/6b4fbdd1fef59a0292cbb99f790b44983e390321eccbc5921b4d161da5d1/pyright-1.1.406.tar.gz", hash = "sha256:c4872bc58c9643dac09e8a2e74d472c62036910b3bd37a32813989ef7576ea2c", size = 4113151, upload-time = "2025-10-02T01:04:45.488Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/1b/0aa08ee42948b61745ac5b5b5ccaec4669e8884b53d31c8ec20b2fcd6b6f/pyright-1.1.407.tar.gz", hash = "sha256:099674dba5c10489832d4a4b2d302636152a9a42d317986c38474c76fe562262", size = 4122872, upload-time = "2025-10-24T23:17:15.145Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/a2/e309afbb459f50507103793aaef85ca4348b66814c86bc73908bdeb66d12/pyright-1.1.406-py3-none-any.whl", hash = "sha256:1d81fb43c2407bf566e97e57abb01c811973fdb21b2df8df59f870f688bdca71", size = 5980982, upload-time = "2025-10-02T01:04:43.137Z" }, + { url = "https://files.pythonhosted.org/packages/dc/93/b69052907d032b00c40cb656d21438ec00b3a471733de137a3f65a49a0a0/pyright-1.1.407-py3-none-any.whl", hash = "sha256:6dd419f54fcc13f03b52285796d65e639786373f433e243f8b94cf93a7444d21", size = 5997008, upload-time = "2025-10-24T23:17:13.159Z" }, ] [package.optional-dependencies]