diff --git a/.copier-answers.yml b/.copier-answers.yml index 349270b25..657be65a4 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.67 +_commit: v0.0.68 _src_path: gh:LabAutomationAndScreening/copier-base-template.git description: A web app that is hosted within a local intranet. Nuxt frontend, python backend, docker-compose diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 61dd02402..4fe7617f4 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -23,12 +23,12 @@ "eamodio.gitlens@15.5.1", "ms-vscode.live-server@0.5.2025051301", "MS-vsliveshare.vsliveshare@1.0.5905", - "github.copilot@1.320.1564", - "github.copilot-chat@0.28.2025051402", + "github.copilot@1.366.1775", + "github.copilot-chat@0.31.2025090401", // Python - "ms-python.python@2025.7.2025051401", - "ms-python.vscode-pylance@2025.4.104", + "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", @@ -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): 4c82e8ff # spellchecker:disable-line + // Devcontainer context hash (do not manually edit this, it's managed by a pre-commit hook): 8744efeb # spellchecker:disable-line } diff --git a/.devcontainer/install-ci-tooling.py b/.devcontainer/install-ci-tooling.py index 1e4938f6b..4a7c06a31 100644 --- a/.devcontainer/install-ci-tooling.py +++ b/.devcontainer/install-ci-tooling.py @@ -7,10 +7,10 @@ import tempfile from pathlib import Path -UV_VERSION = "0.8.4" -PNPM_VERSION = "10.15.0" -COPIER_VERSION = "9.9.1" -COPIER_TEMPLATE_EXTENSIONS_VERSION = "0.3.2" +UV_VERSION = "0.8.15" +PNPM_VERSION = "10.15.1" +COPIER_VERSION = "9.10.1" +COPIER_TEMPLATE_EXTENSIONS_VERSION = "0.3.3" PRE_COMMIT_VERSION = "4.3.0" GITHUB_WINDOWS_RUNNER_BIN_PATH = r"C:\Users\runneradmin\.local\bin" INSTALL_SSM_PLUGIN_BY_DEFAULT = False diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4e7967bf8..f002dd5e0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -42,7 +42,7 @@ repos: # Reformatting (should generally come before any file format or other checks, because reformatting can change things) - repo: https://github.com/crate-ci/typos - rev: 7fb6e0951ad91e4772a2470012fc1ae621016b80 # frozen: v1 + rev: 65a25783d8705c6a72d9fead19c44d87b4ff03c3 # frozen: v1 hooks: - id: typos exclude: @@ -218,7 +218,7 @@ repos: exclude: docs/.*\.rst$ - repo: https://github.com/hadolint/hadolint - rev: c3dc18df7a501f02a560a2cc7ba3c69a85ca01d3 # frozen: v2.13.1-beta + rev: 87de847754330ad47ae16bdfe2d1a757ccb4b4d4 # frozen: v2.13.1 hooks: - id: hadolint-docker name: Lint Dockerfiles @@ -226,7 +226,7 @@ repos: description: Runs hadolint to lint Dockerfiles - repo: https://github.com/astral-sh/ruff-pre-commit - rev: 54a455f7ce629598b7535ff828fd5fb796f4b83f # frozen: v0.12.9 + rev: db90487f48a9dd992d243ef63c156eaffddeaf28 # frozen: v0.12.11 hooks: - id: ruff name: ruff-src diff --git a/extensions/context.py b/extensions/context.py index 471510097..3744d6d3f 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -10,23 +10,23 @@ class ContextUpdater(ContextHook): @override def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: - context["uv_version"] = "0.8.4" - context["pnpm_version"] = "10.15.0" + context["uv_version"] = "0.8.15" + context["pnpm_version"] = "10.15.1" context["pre_commit_version"] = "4.3.0" - context["pyright_version"] = "1.1.404" + context["pyright_version"] = "1.1.405" context["pytest_version"] = "8.4.1" context["pytest_randomly_version"] = "3.16.0" context["pytest_cov_version"] = "6.2.1" - context["copier_version"] = "9.9.1" - context["copier_template_extensions_version"] = "0.3.2" + context["copier_version"] = "9.10.1" + context["copier_template_extensions_version"] = "0.3.3" context["sphinx_version"] = "8.1.3" - context["pulumi_version"] = "3.191.0" - context["pulumi_aws_version"] = "7.4.0" + context["pulumi_version"] = "3.192.0" + context["pulumi_aws_version"] = "7.6.0" context["pulumi_aws_native_version"] = "1.32.0" context["pulumi_command_version"] = "1.1.0" context["pulumi_github_version"] = "6.7.3" context["pulumi_okta_version"] = "4.20.0" - context["boto3_version"] = "1.40.9" + context["boto3_version"] = "1.40.23" context["ephemeral_pulumi_deploy_version"] = "0.0.5" context["pydantic_version"] = "2.11.7" context["pyinstaller_version"] = "6.13.0" @@ -38,21 +38,23 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: context["lab_auto_pulumi_version"] = "0.1.16" context["nuxt_ui_version"] = "^3.3.2" - context["nuxt_version"] = "^4.0.3" + context["nuxt_version"] = "^4.1.0" context["nuxt_icon_version"] = "^2.0.0" context["typescript_version"] = "^5.8.2" context["dot_env_cli_version"] = "^9.0.0" context["playwright_version"] = "^1.55.0" - context["vue_version"] = "^3.5.18" + context["vue_version"] = "^3.5.21" context["vue_tsc_version"] = "^3.0.6" context["vue_devtools_api_version"] = "^8.0.0" context["vue_router_version"] = "^4.5.1" context["dotenv_cli_version"] = "^9.0.0" - context["faker_version"] = "^9.9.0" + context["faker_version"] = "^10.0.0" context["vitest_version"] = "^3.2.4" - context["eslint_version"] = "^9.33.0" + context["eslint_version"] = "^9.34.0" context["nuxt_eslint_version"] = "^1.9.0" - context["zod_version"] = "^4.0.17" + context["zod_version"] = "^4.1.5" + context["zod_from_json_schema_version"] = "^0.5.0" + context["types_node_version"] = "^24.3.1" context["nuxt_apollo_version"] = "5.0.0-alpha.15" context["graphql_codegen_cli_version"] = "^5.0.5" context["graphql_codegen_typescript_version"] = "^4.1.6" diff --git a/pyproject.toml b/pyproject.toml index 732fe9408..2eac9af01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,9 +9,9 @@ dependencies = [ "pytest>=8.4.1", "pytest-cov>=6.2.1", "pytest-randomly>=3.16.0", - "pyright[nodejs]>=1.1.404", - "copier>=9.9.1", - "copier-template-extensions>=0.3.2" + "pyright[nodejs]>=1.1.405", + "copier>=9.10.1", + "copier-template-extensions>=0.3.3" # Specific to this template diff --git a/template/.devcontainer/devcontainer.json.jinja b/template/.devcontainer/devcontainer.json.jinja index 779199957..7a42aa67d 100644 --- a/template/.devcontainer/devcontainer.json.jinja +++ b/template/.devcontainer/devcontainer.json.jinja @@ -29,21 +29,21 @@ "eamodio.gitlens@15.5.1", "ms-vscode.live-server@0.5.2025051301", "MS-vsliveshare.vsliveshare@1.0.5905", - "github.copilot@1.320.1564", - "github.copilot-chat@0.28.2025051402", + "github.copilot@1.366.1775", + "github.copilot-chat@0.31.2025090401", // Python - "ms-python.python@2025.7.2025051401", - "ms-python.vscode-pylance@2025.4.104", + "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", {% endraw %}{% if is_child_of_copier_base_template is not defined and template_uses_vuejs is defined and template_uses_vuejs is sameas(true) %}{% raw %} // VueJS - "vue.volar@2.2.8", + "vue.volar@3.0.6", "vitest.explorer@1.16.1", {% endraw %}{% endif %}{% raw %}{% endraw %}{% if is_child_of_copier_base_template is not defined and template_uses_javascript is defined and template_uses_javascript is sameas(true) %}{% raw %} // All javascript - "dbaeumer.vscode-eslint@3.0.13", + "dbaeumer.vscode-eslint@3.0.19", {% endraw %}{% endif %}{% raw %} // Misc file formats "bierner.markdown-mermaid@1.28.0", diff --git a/template/.pre-commit-config.yaml.jinja b/template/.pre-commit-config.yaml.jinja index 3204edade..6ea822007 100644 --- a/template/.pre-commit-config.yaml.jinja +++ b/template/.pre-commit-config.yaml.jinja @@ -41,7 +41,7 @@ repos: # Reformatting (should generally come before any file format or other checks, because reformatting can change things) - repo: https://github.com/crate-ci/typos - rev: 7fb6e0951ad91e4772a2470012fc1ae621016b80 # frozen: v1 + rev: 65a25783d8705c6a72d9fead19c44d87b4ff03c3 # frozen: v1 hooks: - id: typos exclude: @@ -213,7 +213,7 @@ repos: hooks: - id: typescript-check name: typescript-check - entry: bash -c "pnpm --dir frontend run type-check" + entry: bash -c "pnpm --dir frontend type-check" files: '.+\.ts$|.+\.vue$' # don't pass filenames else the command line sees them twice pass_filenames: false @@ -227,7 +227,7 @@ repos: hooks: - id: eslint name: eslint - entry: bash -c "pnpm --dir frontend run lint" + entry: bash -c "pnpm --dir frontend lint" files: '.+\.ts$|.+\.vue$|.+\.js$' # don't pass filenames else the command line sees them twice pass_filenames: false @@ -245,7 +245,7 @@ repos: exclude: docs/.*\.rst$ - repo: https://github.com/hadolint/hadolint - rev: c3dc18df7a501f02a560a2cc7ba3c69a85ca01d3 # frozen: v2.13.1-beta + rev: 87de847754330ad47ae16bdfe2d1a757ccb4b4d4 # frozen: v2.13.1 hooks: - id: hadolint-docker name: Lint Dockerfiles @@ -253,7 +253,7 @@ repos: description: Runs hadolint to lint Dockerfiles - repo: https://github.com/astral-sh/ruff-pre-commit - rev: 54a455f7ce629598b7535ff828fd5fb796f4b83f # frozen: v0.12.9 + rev: db90487f48a9dd992d243ef63c156eaffddeaf28 # frozen: v0.12.11 hooks: - id: ruff name: ruff-src diff --git a/template/frontend/package.json.jinja b/template/frontend/package.json.jinja index ad1a758c0..79d4688f5 100644 --- a/template/frontend/package.json.jinja +++ b/template/frontend/package.json.jinja @@ -44,6 +44,7 @@ "@nuxtjs/apollo": "{% endraw %}{{ nuxt_apollo_version }}{% raw %}",{% endraw %}{% endif %}{% raw %} "@nuxtjs/eslint-config-typescript": "^12.1.0", "@playwright/test": "{% endraw %}{{ playwright_version }}{% raw %}", + "@types/node": "{% endraw %}{{ types_node_version }}{% raw %}", "@vitest/coverage-istanbul": "{% endraw %}{{ vitest_version }}{% raw %}",{% endraw %}{% if frontend_uses_graphql %}{% raw %} "@vue/apollo-composable": "^4.2.2",{% endraw %}{% endif %}{% raw %} "@vue/devtools-api": "{% endraw %}{{ vue_devtools_api_version }}{% raw %}", diff --git a/uv.lock b/uv.lock index 616d58983..b45e1f318 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.12.7" [[package]] @@ -22,7 +22,7 @@ wheels = [ [[package]] name = "copier" -version = "9.9.1" +version = "9.10.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama" }, @@ -34,14 +34,15 @@ dependencies = [ { name = "pathspec" }, { name = "platformdirs" }, { name = "plumbum" }, + { name = "prompt-toolkit" }, { name = "pydantic" }, { name = "pygments" }, { name = "pyyaml" }, { name = "questionary" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/09/68/e938aec15c204e3c55db570598409fe6bbd81fb81e26616b4b23d96ea92c/copier-9.9.1.tar.gz", hash = "sha256:244bdf3ec5eb460dbe45ef22b825e9897b0bcc9d94ca96dad3ced3d786cfeab7", size = 586353, upload-time = "2025-08-18T12:14:17.316Z" } +sdist = { url = "https://files.pythonhosted.org/packages/36/a5/0cf693f3fa51cba1d36765939e0d9956c0487426ad581868a2507c208bad/copier-9.10.1.tar.gz", hash = "sha256:ba2d729465508da04a62bc9b76eed13d952aa7634a74a69519252fcf8a54d94e", size = 586680, upload-time = "2025-08-28T13:04:54.307Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/da/d9/f7abe1fe19f58c3ed2f1625dcd46ad76612c0f6b3ac320db77c267223f39/copier-9.9.1-py3-none-any.whl", hash = "sha256:9439280baca00194933b04885f1376b17e3287c2324053666fbe9a7a0aceaa44", size = 56118, upload-time = "2025-08-18T12:14:15.009Z" }, + { url = "https://files.pythonhosted.org/packages/9b/4b/4a12d04124b0158b77958fb12349828bb4023f6530aaa1713ceb784c77a3/copier-9.10.1-py3-none-any.whl", hash = "sha256:8b1b406367c67e5ee389778246cea18cddd55e71bfc6503d5fa13fe73304407a", size = 56017, upload-time = "2025-08-28T13:04:52.444Z" }, ] [[package]] @@ -59,9 +60,9 @@ dependencies = [ [package.metadata] requires-dist = [ - { name = "copier", specifier = ">=9.9.1" }, - { name = "copier-template-extensions", specifier = ">=0.3.2" }, - { name = "pyright", extras = ["nodejs"], specifier = ">=1.1.404" }, + { name = "copier", specifier = ">=9.10.1" }, + { name = "copier-template-extensions", specifier = ">=0.3.3" }, + { name = "pyright", extras = ["nodejs"], specifier = ">=1.1.405" }, { name = "pytest", specifier = ">=8.4.1" }, { name = "pytest-cov", specifier = ">=6.2.1" }, { name = "pytest-randomly", specifier = ">=3.16.0" }, @@ -360,15 +361,15 @@ wheels = [ [[package]] name = "pyright" -version = "1.1.404" +version = "1.1.405" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nodeenv" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e2/6e/026be64c43af681d5632722acd100b06d3d39f383ec382ff50a71a6d5bce/pyright-1.1.404.tar.gz", hash = "sha256:455e881a558ca6be9ecca0b30ce08aa78343ecc031d37a198ffa9a7a1abeb63e", size = 4065679, upload-time = "2025-08-20T18:46:14.029Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fb/6c/ba4bbee22e76af700ea593a1d8701e3225080956753bee9750dcc25e2649/pyright-1.1.405.tar.gz", hash = "sha256:5c2a30e1037af27eb463a1cc0b9f6d65fec48478ccf092c1ac28385a15c55763", size = 4068319, upload-time = "2025-09-04T03:37:06.776Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/30/89aa7f7d7a875bbb9a577d4b1dc5a3e404e3d2ae2657354808e905e358e0/pyright-1.1.404-py3-none-any.whl", hash = "sha256:c7b7ff1fdb7219c643079e4c3e7d4125f0dafcc19d253b47e898d130ea426419", size = 5902951, upload-time = "2025-08-20T18:46:12.096Z" }, + { url = "https://files.pythonhosted.org/packages/d5/1a/524f832e1ff1962a22a1accc775ca7b143ba2e9f5924bb6749dce566784a/pyright-1.1.405-py3-none-any.whl", hash = "sha256:a2cb13700b5508ce8e5d4546034cb7ea4aedb60215c6c33f56cec7f53996035a", size = 5905038, upload-time = "2025-09-04T03:37:04.913Z" }, ] [package.optional-dependencies]