From 86e7c6f2cf241271a4e74c20099628429765252c Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Mon, 10 Nov 2025 10:31:17 +0000 Subject: [PATCH 1/9] coverage --- .coveragerc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.coveragerc b/.coveragerc index 56e79493..7ee237b3 100644 --- a/.coveragerc +++ b/.coveragerc @@ -3,6 +3,8 @@ branch = True omit = # omit anything supplied by vendors */vendor_files/* + # omit any auto-generated API client code + */generated/open_api/* [report] # Regexes for lines to exclude from consideration From d1e7bf629725847dd0a8b2e09169743e622deaa9 Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Mon, 10 Nov 2025 10:36:57 +0000 Subject: [PATCH 2/9] pytest --- .devcontainer/devcontainer.json | 2 +- README.md | 2 +- extensions/context.py | 2 +- pyproject.toml | 2 +- uv.lock | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 1803d4ef..06e83dc0 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): 53d51a57 # spellchecker:disable-line + // Devcontainer context hash (do not manually edit this, it's managed by a pre-commit hook): 43411b4a # spellchecker:disable-line } diff --git a/README.md b/README.md index 1e285286..b6bc7255 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ 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-base-template.git .` -1. Run `python .devcontainer/manual-setup-deps.py --only-create-lock --allow-uv-to-install-python` to generate the lock file(s) +1. Run `python .devcontainer/manual-setup-deps.py --only-create-lock --allow-uv-to-install-python --skip-updating-devcontainer-hash` 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/extensions/context.py b/extensions/context.py index 527ff14d..1e6a8537 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -20,7 +20,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: context["pnpm_version"] = "10.20.0" # These are duplicated in the pyproject.toml of this repository context["pyright_version"] = "1.1.407" - context["pytest_version"] = "8.4.2" + context["pytest_version"] = "9.0.0" context["pytest_randomly_version"] = "4.0.1" context["pytest_cov_version"] = "7.0.0" ####### diff --git a/pyproject.toml b/pyproject.toml index f9a375e9..86a81258 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ description = "Add your description here" readme = "README.md" requires-python = ">=3.12.7" dependencies = [ - "pytest>=8.4.2", + "pytest>=9.0.0", "pytest-cov>=7.0.0", "pytest-randomly>=4.0.1", "pyright[nodejs]>=1.1.407", diff --git a/uv.lock b/uv.lock index a7b70355..097dfc18 100644 --- a/uv.lock +++ b/uv.lock @@ -62,7 +62,7 @@ requires-dist = [ { name = "copier", specifier = ">=9.10.2" }, { name = "copier-template-extensions", specifier = ">=0.3.3" }, { name = "pyright", extras = ["nodejs"], specifier = ">=1.1.407" }, - { name = "pytest", specifier = ">=8.4.2" }, + { name = "pytest", specifier = ">=9.0.0" }, { name = "pytest-cov", specifier = ">=7.0.0" }, { name = "pytest-randomly", specifier = ">=4.0.1" }, ] @@ -402,7 +402,7 @@ nodejs = [ [[package]] name = "pytest" -version = "8.4.2" +version = "9.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -411,9 +411,9 @@ dependencies = [ { name = "pluggy" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" } +sdist = { url = "https://files.pythonhosted.org/packages/da/1d/eb34f286b164c5e431a810a38697409cca1112cee04b287bb56ac486730b/pytest-9.0.0.tar.gz", hash = "sha256:8f44522eafe4137b0f35c9ce3072931a788a21ee40a2ed279e817d3cc16ed21e", size = 1562764, upload-time = "2025-11-08T17:25:33.34Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750, upload-time = "2025-09-04T14:34:20.226Z" }, + { url = "https://files.pythonhosted.org/packages/72/99/cafef234114a3b6d9f3aaed0723b437c40c57bdb7b3e4c3a575bc4890052/pytest-9.0.0-py3-none-any.whl", hash = "sha256:e5ccdf10b0bac554970ee88fc1a4ad0ee5d221f8ef22321f9b7e4584e19d7f96", size = 373364, upload-time = "2025-11-08T17:25:31.811Z" }, ] [[package]] From 427cf8b86d7f835fb15a64db1234bc384e29c6ed Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Mon, 10 Nov 2025 10:51:39 +0000 Subject: [PATCH 3/9] pnpm --- extensions/context.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/context.py b/extensions/context.py index 1e6a8537..64b57946 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -17,7 +17,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: context["copier_version"] = "9.10.3" context["copier_template_extensions_version"] = "0.3.3" ####### - context["pnpm_version"] = "10.20.0" + context["pnpm_version"] = "10.21.0" # These are duplicated in the pyproject.toml of this repository context["pyright_version"] = "1.1.407" context["pytest_version"] = "9.0.0" From 3504f593ed1345b7c4b03a679ea7635b4f0f12be Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Mon, 10 Nov 2025 10:57:27 +0000 Subject: [PATCH 4/9] more readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b6bc7255..8302a6df 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ 1. Run `python .devcontainer/manual-setup-deps.py --only-create-lock --allow-uv-to-install-python --skip-updating-devcontainer-hash` 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) +1. Commit the changes (optional). Ensure to stage the modified `.devcontainer/devcontainer.json` file: `git add .devcontainer/devcontainer.json` 1. Rebuild your new devcontainer If you are running into issues with the SSH port, confirm the randomly chosen port is not in the excluded ranges on your computer. On Windows you can run this in an elevated command prompt to check `netsh interface ipv4 show excludedportrange protocol=tcp` From bf8e39a3b5c5a79dc428841a4c4c439bc908b7fe Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Mon, 10 Nov 2025 10:59:04 +0000 Subject: [PATCH 5/9] 3.14 --- copier.yaml | 1 + tests/copier_data/data2.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/copier.yaml b/copier.yaml index 68345691..9798ee3d 100644 --- a/copier.yaml +++ b/copier.yaml @@ -33,6 +33,7 @@ python_ci_versions: choices: - "3.12.7" - "3.13.2" + - "3.14.0" ssh_port_number: type: int diff --git a/tests/copier_data/data2.yaml b/tests/copier_data/data2.yaml index ad33f4ec..90f125a9 100644 --- a/tests/copier_data/data2.yaml +++ b/tests/copier_data/data2.yaml @@ -5,6 +5,7 @@ ssh_port_number: 54321 python_ci_versions: - "3.12.7" - "3.13.2" + - "3.14.0" template_uses_python: true template_uses_pulumi: false repo_org_name: Initech From 59646e7ece8c5590eae741f5bcb7221149356c53 Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Mon, 10 Nov 2025 14:53:48 +0000 Subject: [PATCH 6/9] add 314 context --- extensions/context.py | 1 + template/extensions/context.py.jinja-base | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/context.py b/extensions/context.py index 64b57946..24febf5b 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -109,6 +109,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]: # These also in the tests/data.yml files in this repository and in copier.yaml context["py312_version"] = "3.12.7" # ReadTheDocs does not yet support 3.12.8 context["py313_version"] = "3.13.2" + context["py314_version"] = "3.14.0" ####### # Kludge to allow for the same docker-compose file in child and grandchild templates context["aws_region_for_stack"] = "us-east-1" diff --git a/template/extensions/context.py.jinja-base b/template/extensions/context.py.jinja-base index f6b34a39..5951ff97 100644 --- a/template/extensions/context.py.jinja-base +++ b/template/extensions/context.py.jinja-base @@ -96,9 +96,9 @@ class ContextUpdater(ContextHook): context["gha_linux_runner"] = "{{ gha_linux_runner }}" context["gha_windows_runner"] = "{{ gha_windows_runner }}" - context["py311_version"] = "{{ py311_version }}" context["py312_version"] = "{{ py312_version }}" context["py313_version"] = "{{ py313_version }}" + context["py314_version"] = "{{ py314_version }}" context["debian_release_name"] = "{{ debian_release_name }}" context["alpine_image_version"] = "{{ alpine_image_version }}" From a2abcf6ff38d0471e7690f2a4d4da3406dc0ec14 Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Mon, 10 Nov 2025 14:54:30 +0000 Subject: [PATCH 7/9] add to question --- template/copier.yml.jinja-base | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/template/copier.yml.jinja-base b/template/copier.yml.jinja-base index 33e644a2..963d9949 100644 --- a/template/copier.yml.jinja-base +++ b/template/copier.yml.jinja-base @@ -62,7 +62,8 @@ python_ci_versions: multiselect: true choices: - "{{ py312_version }}" - - "{{ py313_version }}"{% endif %}{% raw %} + - "{{ py313_version }}" + - "{{ py314_version }}"{% endif %}{% raw %} {% endraw %}{% if template_uses_python %}{% raw %} aws_identity_center_id: From 6b3b7a828928b8ec2607f8560d5af283e0b11cfe Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Mon, 10 Nov 2025 15:42:31 +0000 Subject: [PATCH 8/9] maintained --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8302a6df..78ee1b02 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ [![Checked with pyright](https://microsoft.github.io/pyright/img/pyright_badge.svg)](https://microsoft.github.io/pyright/) [![Actions status](https://github.com/LabAutomationAndScreening/copier-base-template/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/LabAutomationAndScreening/copier-base-template/actions) [![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/LabAutomationAndScreening/copier-base-template) +[![OpenIssues](http://isitmaintained.com/badge/open/LabAutomationAndScreening/copier-base-template.svg)](http://isitmaintained.com/project/LabAutomationAndScreening/copier-base-template) # Instantiating a new repository using this template 1. Use the file `.devcontainer/devcontainer-to-instantiate-template.json` to create a devcontainer (or just use the default Codespace devcontainer) From ae91caafc9c0e19d44ffd0de71e3660e3e31a250 Mon Sep 17 00:00:00 2001 From: Eli Fine Date: Mon, 10 Nov 2025 15:43:57 +0000 Subject: [PATCH 9/9] template --- template/README.md.jinja-base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/README.md.jinja-base b/template/README.md.jinja-base index c46b976b..ad5f775a 100644 --- a/template/README.md.jinja-base +++ b/template/README.md.jinja-base @@ -2,7 +2,7 @@ [![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-black.json)](https://github.com/copier-org/copier) [![Actions status](https://www.github.com/{% endraw %}{{ repo_org_name }}/{{ repo_name }}{% raw %}/actions/workflows/ci.yaml/badge.svg?branch=main)](https://www.github.com/{% endraw %}{{ repo_org_name }}/{{ repo_name }}{% raw %}/actions) [![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://www.github.com/{% endraw %}{{ repo_org_name }}/{{ repo_name }}{% raw %}) - +[![OpenIssues](http://isitmaintained.com/badge/open/{% endraw %}{{ repo_org_name }}/{{ repo_name }}{% raw %}.svg)](http://isitmaintained.com/project/{% endraw %}{{ repo_org_name }}/{{ repo_name }}{% raw %}) # Usage To create a new repository using this template: