From 3db104a5d2879eccc203c2b1d19beef926031d5a Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:04:48 +0000 Subject: [PATCH 01/10] copier --- .copier-answers.yml | 3 ++- .devcontainer/devcontainer.json | 2 +- .devcontainer/install-ci-tooling.py | 14 +++++++++++--- .gitignore | 2 -- .pre-commit-config.yaml | 2 ++ CONTRIBUTING.md | 2 +- README.md | 2 +- _typos.toml | 2 +- copier.yml | 5 +++++ extensions/context.py | 15 ++++++++------- pyproject.toml | 2 +- ruff-test.toml | 2 +- template/.devcontainer/devcontainer.json.jinja | 6 ++++-- template/.devcontainer/docker-compose.yml.jinja | 3 ++- .../.devcontainer/install-ci-tooling.py.jinja | 10 +++++++++- template/.gitignore | 2 -- template/CONTRIBUTING.md | 2 +- template/_typos.toml | 2 +- template/ruff-test.toml | 2 +- tests/copier_data/data1.yaml | 1 + tests/copier_data/data2.yaml | 1 + uv.lock | 8 ++++---- 22 files changed, 58 insertions(+), 32 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index 8694bd309..0def7d2b6 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,8 +1,9 @@ # Changes here will be overwritten by Copier -_commit: v0.0.74 +_commit: v0.0.74-9-gfd25af9 _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 +install_claude_cli: false python_ci_versions: - 3.12.7 - 3.13.2 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 8eba8ee4b..b820a21eb 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -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): 895677d3 # spellchecker:disable-line + // Devcontainer context hash (do not manually edit this, it's managed by a pre-commit hook): 11ffead0 # spellchecker:disable-line } diff --git a/.devcontainer/install-ci-tooling.py b/.devcontainer/install-ci-tooling.py index e02392784..0f9777eea 100644 --- a/.devcontainer/install-ci-tooling.py +++ b/.devcontainer/install-ci-tooling.py @@ -7,8 +7,8 @@ import tempfile from pathlib import Path -UV_VERSION = "0.8.22" -PNPM_VERSION = "10.17.1" +UV_VERSION = "0.9.0" +PNPM_VERSION = "10.18.1" COPIER_VERSION = "9.10.2" COPIER_TEMPLATE_EXTENSIONS_VERSION = "0.3.3" PRE_COMMIT_VERSION = "4.3.0" @@ -36,13 +36,21 @@ default=False, help="Skip installing the SSM plugin for AWS CLI", ) +_ = parser.add_argument( + "--allow-uv-to-install-python", + action="store_true", + default=False, + help="Allow uv to install new versions of Python on the fly. This is typically only needed when instantiating the copier template.", +) def main(): args = parser.parse_args(sys.argv[1:]) is_windows = platform.system() == "Windows" uv_env = dict(os.environ) - uv_env.update({"UV_PYTHON_PREFERENCE": "only-system", "UV_PYTHON": args.python_version}) + uv_env.update({"UV_PYTHON": args.python_version}) + if not args.allow_uv_to_install_python: + uv_env.update({"UV_PYTHON_PREFERENCE": "only-system"}) uv_path = ((GITHUB_WINDOWS_RUNNER_BIN_PATH + "\\") if is_windows else "") + "uv" if is_windows: pwsh = shutil.which("pwsh") or shutil.which("powershell") diff --git a/.gitignore b/.gitignore index aa3596443..fa36212de 100644 --- a/.gitignore +++ b/.gitignore @@ -44,8 +44,6 @@ pytest.log tests/__coverage__ test/__coverage__ coverage-report-pytest -.pytest_cache/ -.mypy_cache/ .coverage .coverage.* coverage.xml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0cd1fc19d..15b094cc5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -74,6 +74,7 @@ repos: .devcontainer/devcontainer-lock.json| .copier-answers.yml| .*\.xml| + .*\.svg| .*/vendor_files/.*| )$ - id: pretty-format-json @@ -148,6 +149,7 @@ repos: (?x)^( .*/__snapshots__/.*| .*/vendor_files/.*| + .*\.svg| )$ # Invalid File Checks diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cd88f1f57..8272cfaba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,7 +27,7 @@ By participating in this project, you agree to abide by our [Code of Conduct](./ 1. **Fork the repository** on GitHub. 2. **Set up the Dev Container (Recommended Method)** - - Create a Github Codespace (`Code`->`Codespaces` in the Github web console of your cloned repository) OR click on the "Open in Devcontainer" link in the [Readme](./README.md) + - Create a GitHub Codespace (`Code`->`Codespaces` in the GitHub web console of your cloned repository) OR click on the "Open in Devcontainer" link in the [Readme](./README.md) 3. **Make Your Changes** - Create a branch for your feature or bug fix: diff --git a/README.md b/README.md index 0c7d23023..edd6f8136 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ To create a new repository using this template: 1. Inside that devcontainer, run `python .devcontainer/install-ci-tooling.py` to install necessary tooling to instantiate the template (you can copy/paste the script from this repo...and you can paste it in the root of the repo if you want) 1. Delete all files currently in the repository. Optional...but makes it easiest to avoid git conflicts. 1. Run copier to instantiate the template: `copier copy --trust gh:LabAutomationAndScreening/copier-nuxt-python-intranet-app.git .` -1. Run `python .devcontainer/manual-setup-deps.py --only-create-lock` to generate the lock file(s) +1. Run `python .devcontainer/manual-setup-deps.py --only-create-lock --allow-uv-to-install-python` to generate the lock file(s) 1. Stage all files to prepare for commit (`git add .`) 1. Run `python3 .github/workflows/hash_git_files.py . --for-devcontainer-config-update` to update the hash for your devcontainer file 1. Commit the changes (optional) diff --git a/_typos.toml b/_typos.toml index f03881f4d..3400bde62 100644 --- a/_typos.toml +++ b/_typos.toml @@ -21,5 +21,5 @@ extend-exclude = [ ".copier-answers.yml", # this is an autogenerated file, and sometimes the commit sha gets confused as being a word "**/__snapshots__/**", # Snapshots need to remain static "**/tests/**/cassettes/**/*.yaml", # URLs and other responses in VCR.py generated files should not be altered - "**/vendor_files/**" # if vendors mispell things, there may be other implications in other parts of their code, just leave vendor files alone + "**/vendor_files/**" # if vendors misspell things, there may be other implications in other parts of their code, just leave vendor files alone ] diff --git a/copier.yml b/copier.yml index 8640d9865..7bcc4e455 100644 --- a/copier.yml +++ b/copier.yml @@ -11,6 +11,11 @@ description: type: str help: What is the description of this repository? +install_claude_cli: + type: bool + help: Should the Claude CLI be installed in the devcontainer? + default: no + is_open_source: type: bool help: Is this library open source? diff --git a/extensions/context.py b/extensions/context.py index fdd697a64..0b4583d9d 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -10,10 +10,10 @@ class ContextUpdater(ContextHook): @override def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: - context["uv_version"] = "0.8.22" - context["pnpm_version"] = "10.17.1" + context["uv_version"] = "0.9.0" + context["pnpm_version"] = "10.18.1" context["pre_commit_version"] = "4.3.0" - context["pyright_version"] = "1.1.405" + context["pyright_version"] = "1.1.406" context["pytest_version"] = "8.4.2" context["pytest_randomly_version"] = "4.0.1" context["pytest_cov_version"] = "7.0.0" @@ -28,7 +28,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: context["pulumi_okta_version"] = "5.2.0" context["boto3_version"] = "1.40.41" context["ephemeral_pulumi_deploy_version"] = "0.0.5" - context["pydantic_version"] = "2.11.7" + context["pydantic_version"] = "2.12.0" context["pyinstaller_version"] = "6.16.0" context["setuptools_version"] = "80.7.1" context["strawberry_graphql_version"] = "0.282.0" @@ -44,10 +44,10 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: context["nuxt_ui_version"] = "^4.0.0" context["nuxt_version"] = "^4.1.0" context["nuxt_icon_version"] = "^2.0.0" - context["typescript_version"] = "^5.8.2" + context["typescript_version"] = "^5.9.3" context["playwright_version"] = "^1.55.0" context["vue_version"] = "^3.5.21" - context["vue_tsc_version"] = "^3.1.0" + context["vue_tsc_version"] = "^3.1.1" context["vue_devtools_api_version"] = "^8.0.0" context["vue_router_version"] = "^4.5.1" context["dotenv_cli_version"] = "^10.0.0" @@ -68,7 +68,8 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: context["nuxt_fonts_version"] = "^0.11.4" context["nuxtjs_color_mode_version"] = "^3.5.2" context["vue_test_utils_version"] = "^2.4.6" - context["nuxt_test_utils_version"] = "^3.17.2" + context["nuxt_test_utils_version"] = "3.18.0" + context["vue_eslint_parser_version"] = "^10.1.3" context["gha_checkout"] = "v5.0.0" context["gha_setup_python"] = "v6.0.0" diff --git a/pyproject.toml b/pyproject.toml index 04c8295a7..e3fddcb02 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ dependencies = [ "pytest>=8.4.2", "pytest-cov>=7.0.0", "pytest-randomly>=4.0.1", - "pyright[nodejs]>=1.1.405", + "pyright[nodejs]>=1.1.406", "copier>=9.10.2", "copier-template-extensions>=0.3.3" diff --git a/ruff-test.toml b/ruff-test.toml index 9994e410b..407ecf898 100644 --- a/ruff-test.toml +++ b/ruff-test.toml @@ -12,7 +12,7 @@ ignore = [ "S101", # assert is definitely needed in test cases "S311", # pseudo-randomness is fine for test cases "TID252", # sometimes you can't use absolute imports in test cases for importing things within the tests, because they're not a true package or have conflicting namespaces - "TRY003", # tests dont need to create a custom exception classes, generally you want to throw an AssertionError with a message anyway + "TRY003", # tests don't need to create custom exception classes, generally you want to throw an AssertionError with a message anyway ] unfixable = [ diff --git a/template/.devcontainer/devcontainer.json.jinja b/template/.devcontainer/devcontainer.json.jinja index 7a42aa67d..4501329ba 100644 --- a/template/.devcontainer/devcontainer.json.jinja +++ b/template/.devcontainer/devcontainer.json.jinja @@ -19,7 +19,8 @@ // https://github.com/devcontainers/features/tree/main/src/node "version": "{% endraw %}{{ node_version }}{% raw %}", "pnpmVersion": "{% endraw %}{{ pnpm_version }}{% raw %}" - }{% endraw %}{% endif %}{% raw %} + }{% endraw %}{% endif %}{% raw %}{% endraw %}{% if install_claude_cli %}{% raw %}, + "ghcr.io/anthropics/devcontainer-features/claude-code:1.0.5": {}{% endraw %}{% endif %}{% raw %} }, "customizations": { "vscode": { @@ -50,7 +51,8 @@ "samuelcolvin.jinjahtml@0.20.0", "tamasfe.even-better-toml@0.19.2", "emilast.LogFileHighlighter@3.3.3", - "esbenp.prettier-vscode@11.0.0" + "esbenp.prettier-vscode@11.0.0"{% endraw %}{% if install_claude_cli %}{% raw %}, + "anthropic.claude-code@2.0.10"{% endraw %}{% endif %}{% raw %} ], "settings": { "editor.accessibilitySupport": "off", // turn off sounds diff --git a/template/.devcontainer/docker-compose.yml.jinja b/template/.devcontainer/docker-compose.yml.jinja index 10d7ad7b0..3a7dc4ace 100644 --- a/template/.devcontainer/docker-compose.yml.jinja +++ b/template/.devcontainer/docker-compose.yml.jinja @@ -19,7 +19,8 @@ - "{% endraw %}{{ ssh_port_number }}{% raw %}:2222" environment: - AWS_PROFILE=localstack - - AWS_DEFAULT_REGION={% endraw %}{{ aws_region_for_stack if (aws_region_for_stack is defined and aws_region_for_stack != "") else "us-east-1" }}{% raw %} + - AWS_DEFAULT_REGION={% endraw %}{{ aws_region_for_stack if (aws_region_for_stack is defined and aws_region_for_stack != "") else "us-east-1" }}{% raw %}{% endraw %}{% if install_claude_cli %}{% raw %}, + - ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}{% endraw %}{% endif %}{% raw %} volumes: diff --git a/template/.devcontainer/install-ci-tooling.py.jinja b/template/.devcontainer/install-ci-tooling.py.jinja index 194d15808..0623c0c94 100644 --- a/template/.devcontainer/install-ci-tooling.py.jinja +++ b/template/.devcontainer/install-ci-tooling.py.jinja @@ -36,13 +36,21 @@ _ = parser.add_argument( default=False, help="Skip installing the SSM plugin for AWS CLI", ) +_ = parser.add_argument( + "--allow-uv-to-install-python", + action="store_true", + default=False, + help="Allow uv to install new versions of Python on the fly. This is typically only needed when instantiating the copier template.", +) def main(): args = parser.parse_args(sys.argv[1:]) is_windows = platform.system() == "Windows" uv_env = dict(os.environ) - uv_env.update({"UV_PYTHON_PREFERENCE": "only-system", "UV_PYTHON": args.python_version}) + uv_env.update({"UV_PYTHON": args.python_version}) + if not args.allow_uv_to_install_python: + uv_env.update({"UV_PYTHON_PREFERENCE": "only-system"}) uv_path = ((GITHUB_WINDOWS_RUNNER_BIN_PATH + "\\") if is_windows else "") + "uv" if is_windows: pwsh = shutil.which("pwsh") or shutil.which("powershell") diff --git a/template/.gitignore b/template/.gitignore index aa3596443..fa36212de 100644 --- a/template/.gitignore +++ b/template/.gitignore @@ -44,8 +44,6 @@ pytest.log tests/__coverage__ test/__coverage__ coverage-report-pytest -.pytest_cache/ -.mypy_cache/ .coverage .coverage.* coverage.xml diff --git a/template/CONTRIBUTING.md b/template/CONTRIBUTING.md index cd88f1f57..8272cfaba 100644 --- a/template/CONTRIBUTING.md +++ b/template/CONTRIBUTING.md @@ -27,7 +27,7 @@ By participating in this project, you agree to abide by our [Code of Conduct](./ 1. **Fork the repository** on GitHub. 2. **Set up the Dev Container (Recommended Method)** - - Create a Github Codespace (`Code`->`Codespaces` in the Github web console of your cloned repository) OR click on the "Open in Devcontainer" link in the [Readme](./README.md) + - Create a GitHub Codespace (`Code`->`Codespaces` in the GitHub web console of your cloned repository) OR click on the "Open in Devcontainer" link in the [Readme](./README.md) 3. **Make Your Changes** - Create a branch for your feature or bug fix: diff --git a/template/_typos.toml b/template/_typos.toml index 7a9c065fb..a467ba6fb 100644 --- a/template/_typos.toml +++ b/template/_typos.toml @@ -23,5 +23,5 @@ extend-exclude = [ ".copier-answers.yml", # this is an autogenerated file, and sometimes the commit sha gets confused as being a word "**/__snapshots__/**", # Snapshots need to remain static "**/tests/**/cassettes/**/*.yaml", # URLs and other responses in VCR.py generated files should not be altered - "**/vendor_files/**" # if vendors mispell things, there may be other implications in other parts of their code, just leave vendor files alone + "**/vendor_files/**" # if vendors misspell things, there may be other implications in other parts of their code, just leave vendor files alone ] diff --git a/template/ruff-test.toml b/template/ruff-test.toml index 9994e410b..407ecf898 100644 --- a/template/ruff-test.toml +++ b/template/ruff-test.toml @@ -12,7 +12,7 @@ ignore = [ "S101", # assert is definitely needed in test cases "S311", # pseudo-randomness is fine for test cases "TID252", # sometimes you can't use absolute imports in test cases for importing things within the tests, because they're not a true package or have conflicting namespaces - "TRY003", # tests dont need to create a custom exception classes, generally you want to throw an AssertionError with a message anyway + "TRY003", # tests don't need to create custom exception classes, generally you want to throw an AssertionError with a message anyway ] unfixable = [ diff --git a/tests/copier_data/data1.yaml b/tests/copier_data/data1.yaml index dd96c7978..8c1220cd6 100644 --- a/tests/copier_data/data1.yaml +++ b/tests/copier_data/data1.yaml @@ -3,6 +3,7 @@ repo_name: the_best_repo repo_org_name: great-company is_open_source: true description: Doing amazing things +install_claude_cli: false ssh_port_number: 12345 use_windows_in_ci: false install_aws_ssm_port_forwarding_plugin: true diff --git a/tests/copier_data/data2.yaml b/tests/copier_data/data2.yaml index 0b64c959b..c35299cd6 100644 --- a/tests/copier_data/data2.yaml +++ b/tests/copier_data/data2.yaml @@ -3,6 +3,7 @@ repo_name: another_repo repo_org_name: initech is_open_source: false description: Doing crazy things! So many things! +install_claude_cli: true ssh_port_number: 54321 use_windows_in_ci: true install_aws_ssm_port_forwarding_plugin: false diff --git a/uv.lock b/uv.lock index 85f23216a..40b9e7442 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.405" }, + { name = "pyright", extras = ["nodejs"], specifier = ">=1.1.406" }, { name = "pytest", specifier = ">=8.4.2" }, { name = "pytest-cov", specifier = ">=7.0.0" }, { name = "pytest-randomly", specifier = ">=4.0.1" }, @@ -385,15 +385,15 @@ wheels = [ [[package]] name = "pyright" -version = "1.1.405" +version = "1.1.406" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nodeenv" }, { name = "typing-extensions" }, ] -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" } +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" } wheels = [ - { 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" }, + { 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" }, ] [package.optional-dependencies] From 59e53afad8b8d6e25a30f216b16d9b7ae6342ac2 Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:05:21 +0000 Subject: [PATCH 02/10] tests --- tests/copier_data/data3.yaml | 1 + tests/copier_data/data4.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/copier_data/data3.yaml b/tests/copier_data/data3.yaml index 6c5f8d8be..57a99de38 100644 --- a/tests/copier_data/data3.yaml +++ b/tests/copier_data/data3.yaml @@ -3,6 +3,7 @@ repo_name: ooga-chaka repo_org_name: bj-thomas is_open_source: false description: Hooked on a feeling +install_claude_cli: false ssh_port_number: 54322 use_windows_in_ci: false install_aws_ssm_port_forwarding_plugin: true diff --git a/tests/copier_data/data4.yaml b/tests/copier_data/data4.yaml index 8f03844b0..5129ca37e 100644 --- a/tests/copier_data/data4.yaml +++ b/tests/copier_data/data4.yaml @@ -3,6 +3,7 @@ repo_name: baz repo_org_name: foo is_open_source: true description: Testing deploy as executable +install_claude_cli: true ssh_port_number: 54322 use_windows_in_ci: true install_aws_ssm_port_forwarding_plugin: false From bb3762bb5388a628c67ebe2de53198583cbe7224 Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:13:23 +0000 Subject: [PATCH 03/10] ignore svg --- template/.pre-commit-config.yaml.jinja | 2 ++ 1 file changed, 2 insertions(+) diff --git a/template/.pre-commit-config.yaml.jinja b/template/.pre-commit-config.yaml.jinja index 2837bd28b..df22017ad 100644 --- a/template/.pre-commit-config.yaml.jinja +++ b/template/.pre-commit-config.yaml.jinja @@ -74,6 +74,7 @@ repos: .devcontainer/devcontainer-lock.json| .copier-answers.yml| .*\.xml| + .*\.svg| .*/vendor_files/.*| )$ - id: pretty-format-json @@ -147,6 +148,7 @@ repos: (?x)^( .*/__snapshots__/.*| .*/vendor_files/.*| + .*\.svg| )$ # Invalid File Checks From 034cc6c802de0fe33c3cc84917e27fa027dbf76c Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:14:33 +0000 Subject: [PATCH 04/10] context --- template/frontend/package.json.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/frontend/package.json.jinja b/template/frontend/package.json.jinja index d1bc83a47..aa3b790f4 100644 --- a/template/frontend/package.json.jinja +++ b/template/frontend/package.json.jinja @@ -63,7 +63,7 @@ "tailwindcss": "{% endraw %}{{ tailwindcss_version }}{% raw %}", "typescript": "{% endraw %}{{ typescript_version }}{% raw %}", "vitest": "{% endraw %}{{ vitest_version }}{% raw %}", - "vue-eslint-parser": "^10.1.1", + "vue-eslint-parser": "{% endraw %}{{ vue_eslint_parser_version }}{% raw %}", "vue-tsc": "{% endraw %}{{ vue_tsc_version }}{% raw %}" } }{% endraw %} From 977705b91935ffe6935cacea0ae9f36fa7a24e1c Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:26:26 +0000 Subject: [PATCH 05/10] nutx test --- .copier-answers.yml | 2 +- extensions/context.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index 0def7d2b6..8a49b0f03 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.74-9-gfd25af9 +_commit: v0.0.74-10-gbed3286 _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/extensions/context.py b/extensions/context.py index 0b4583d9d..915270aa4 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -68,7 +68,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: context["nuxt_fonts_version"] = "^0.11.4" context["nuxtjs_color_mode_version"] = "^3.5.2" context["vue_test_utils_version"] = "^2.4.6" - context["nuxt_test_utils_version"] = "3.18.0" + context["nuxt_test_utils_version"] = "3.19.1" context["vue_eslint_parser_version"] = "^10.1.3" context["gha_checkout"] = "v5.0.0" From f51b760be96fdc76f439e816ddad48eeabe810f7 Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:32:53 +0000 Subject: [PATCH 06/10] extensions --- .copier-answers.yml | 2 +- .devcontainer/devcontainer.json | 14 +++++++------- template/.devcontainer/devcontainer.json.jinja | 16 ++++++++-------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index 8a49b0f03..34f0fa523 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.74-10-gbed3286 +_commit: v0.0.74-13-gf3dc6b9 _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 b820a21eb..580bb6054 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,10 +3,10 @@ "service": "devcontainer", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "features": { - "ghcr.io/devcontainers/features/aws-cli:1.1.1": { + "ghcr.io/devcontainers/features/aws-cli:1.1.2": { // https://github.com/devcontainers/features/blob/main/src/aws-cli/devcontainer-feature.json // view latest version https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst - "version": "2.27.14" + "version": "2.31.11" }, "ghcr.io/devcontainers/features/python:1.7.1": { // https://github.com/devcontainers/features/blob/main/src/python/devcontainer-feature.json @@ -23,14 +23,14 @@ "eamodio.gitlens@15.5.1", "ms-vscode.live-server@0.5.2025051301", "MS-vsliveshare.vsliveshare@1.0.5905", - "github.copilot@1.366.1775", - "github.copilot-chat@0.31.2025090401", + "github.copilot@1.378.1798", + "github.copilot-chat@0.32.2025100703", // Python - "ms-python.python@2025.13.2025090201", - "ms-python.vscode-pylance@2025.7.102", + "ms-python.python@2025.17.2025100201", + "ms-python.vscode-pylance@2025.8.3", "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", diff --git a/template/.devcontainer/devcontainer.json.jinja b/template/.devcontainer/devcontainer.json.jinja index 4501329ba..5e0b58ee5 100644 --- a/template/.devcontainer/devcontainer.json.jinja +++ b/template/.devcontainer/devcontainer.json.jinja @@ -3,10 +3,10 @@ "service": "devcontainer", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "features": { - "ghcr.io/devcontainers/features/aws-cli:1.1.1": { + "ghcr.io/devcontainers/features/aws-cli:1.1.2": { // https://github.com/devcontainers/features/blob/main/src/aws-cli/devcontainer-feature.json // view latest version https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst - "version": "2.27.14" + "version": "2.31.11" }, "ghcr.io/devcontainers/features/python:1.7.1": { // https://github.com/devcontainers/features/blob/main/src/python/devcontainer-feature.json @@ -15,7 +15,7 @@ "installTools": false, "optimize": true }{% 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 %}, - "ghcr.io/devcontainers/features/node:1.6.1": { + "ghcr.io/devcontainers/features/node:1.6.3": { // https://github.com/devcontainers/features/tree/main/src/node "version": "{% endraw %}{{ node_version }}{% raw %}", "pnpmVersion": "{% endraw %}{{ pnpm_version }}{% raw %}" @@ -30,14 +30,14 @@ "eamodio.gitlens@15.5.1", "ms-vscode.live-server@0.5.2025051301", "MS-vsliveshare.vsliveshare@1.0.5905", - "github.copilot@1.366.1775", - "github.copilot-chat@0.31.2025090401", + "github.copilot@1.378.1798", + "github.copilot-chat@0.32.2025100703", // Python - "ms-python.python@2025.13.2025090201", - "ms-python.vscode-pylance@2025.7.102", + "ms-python.python@2025.17.2025100201", + "ms-python.vscode-pylance@2025.8.3", "ms-vscode-remote.remote-containers@0.414.0", - "charliermarsh.ruff@2025.24.0", + "charliermarsh.ruff@2025.28.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@3.0.6", From 26c54be42e813254ff74414ddf1fcb79daf0ec30 Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:36:12 +0000 Subject: [PATCH 07/10] more versions --- .copier-answers.yml | 2 +- extensions/context.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index 34f0fa523..dd084ff8c 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.74-13-gf3dc6b9 +_commit: v0.0.74-14-ge1d17cb _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/extensions/context.py b/extensions/context.py index 915270aa4..6838a31a1 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -41,7 +41,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: context["uuid_utils_version"] = "0.11.0" context["node_version"] = "24.7.0" - context["nuxt_ui_version"] = "^4.0.0" + context["nuxt_ui_version"] = "^4.0.1" context["nuxt_version"] = "^4.1.0" context["nuxt_icon_version"] = "^2.0.0" context["typescript_version"] = "^5.9.3" From 7eef0d5ab268431207e7a89cc1ce6695e40321aa Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:38:26 +0000 Subject: [PATCH 08/10] copier --- .copier-answers.yml | 2 +- template/.devcontainer/docker-compose.yml.jinja | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index dd084ff8c..2ed799ce0 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.74-14-ge1d17cb +_commit: v0.0.74-15-g97f5a35 _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/template/.devcontainer/docker-compose.yml.jinja b/template/.devcontainer/docker-compose.yml.jinja index 3a7dc4ace..6a7baf207 100644 --- a/template/.devcontainer/docker-compose.yml.jinja +++ b/template/.devcontainer/docker-compose.yml.jinja @@ -19,7 +19,7 @@ - "{% endraw %}{{ ssh_port_number }}{% raw %}:2222" environment: - AWS_PROFILE=localstack - - AWS_DEFAULT_REGION={% endraw %}{{ aws_region_for_stack if (aws_region_for_stack is defined and aws_region_for_stack != "") else "us-east-1" }}{% raw %}{% endraw %}{% if install_claude_cli %}{% raw %}, + - AWS_DEFAULT_REGION={% endraw %}{{ aws_region_for_stack if (aws_region_for_stack is defined and aws_region_for_stack != "") else "us-east-1" }}{% raw %}{% endraw %}{% if install_claude_cli %}{% raw %} - ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}{% endraw %}{% endif %}{% raw %} From eb5a8b75738248ac61ff3409e0be0da3ecf5560d Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:45:23 +0000 Subject: [PATCH 09/10] fix --- .copier-answers.yml | 2 +- extensions/context.py | 2 +- template/.devcontainer/docker-compose.yml.jinja | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index 2ed799ce0..dc82704dd 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.74-15-g97f5a35 +_commit: v0.0.74-17-g2628502 _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/extensions/context.py b/extensions/context.py index 6838a31a1..c93360e5a 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -21,7 +21,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: context["copier_template_extensions_version"] = "0.3.3" context["sphinx_version"] = "8.1.3" context["pulumi_version"] = "3.197.0" - context["pulumi_aws_version"] = "7.7.0" + context["pulumi_aws_version"] = "7.8.0" context["pulumi_aws_native_version"] = "1.33.0" context["pulumi_command_version"] = "1.1.0" context["pulumi_github_version"] = "6.7.3" diff --git a/template/.devcontainer/docker-compose.yml.jinja b/template/.devcontainer/docker-compose.yml.jinja index 6a7baf207..ea48a9044 100644 --- a/template/.devcontainer/docker-compose.yml.jinja +++ b/template/.devcontainer/docker-compose.yml.jinja @@ -20,7 +20,7 @@ environment: - AWS_PROFILE=localstack - AWS_DEFAULT_REGION={% endraw %}{{ aws_region_for_stack if (aws_region_for_stack is defined and aws_region_for_stack != "") else "us-east-1" }}{% raw %}{% endraw %}{% if install_claude_cli %}{% raw %} - - ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}{% endraw %}{% endif %}{% raw %} + - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}{% endraw %}{% endif %}{% raw %} volumes: From 60cb91c7079149c861bc3a4e137ad8fc9880ac8c Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Thu, 9 Oct 2025 13:51:41 +0000 Subject: [PATCH 10/10] tag --- .copier-answers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index dc82704dd..413293d32 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.74-17-g2628502 +_commit: v0.0.75 _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