From 6dba894764ab2e3410b7078f4b991062f3297c9b Mon Sep 17 00:00:00 2001 From: Andrew Halberstadt Date: Fri, 17 Oct 2025 13:50:00 -0400 Subject: [PATCH 1/3] ci: bump uv version to 0.9.3 --- taskcluster/kinds/docker-image/kind.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskcluster/kinds/docker-image/kind.yml b/taskcluster/kinds/docker-image/kind.yml index 9e090780a..79a1a5350 100644 --- a/taskcluster/kinds/docker-image/kind.yml +++ b/taskcluster/kinds/docker-image/kind.yml @@ -3,7 +3,7 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. --- meta: - - &uv_version 0.6.1 + - &uv_version 0.9.3 loader: taskgraph.loader.transform:loader From ea6733bb42ba7536253aaf7d4227eebed648aece Mon Sep 17 00:00:00 2001 From: Andrew Halberstadt Date: Thu, 16 Oct 2025 11:35:56 -0400 Subject: [PATCH 2/3] ci: run tests against Python 3.14 --- pyproject.toml | 1 + taskcluster/kinds/docker-image/kind.yml | 2 +- taskcluster/kinds/test/kind.yml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 67bebcc01..ac58eb09c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Software Development", ] requires-python = ">=3.9" diff --git a/taskcluster/kinds/docker-image/kind.yml b/taskcluster/kinds/docker-image/kind.yml index 79a1a5350..2de827bc2 100644 --- a/taskcluster/kinds/docker-image/kind.yml +++ b/taskcluster/kinds/docker-image/kind.yml @@ -29,7 +29,7 @@ tasks: python: symbol: I(py) args: - PYTHON_VERSIONS: "3.13 3.12 3.11 3.10 3.9" + PYTHON_VERSIONS: "3.14 3.13 3.12 3.11 3.10 3.9" UV_VERSION: *uv_version run-task: symbol: I(rt) diff --git a/taskcluster/kinds/test/kind.yml b/taskcluster/kinds/test/kind.yml index c7520dafd..443df1050 100644 --- a/taskcluster/kinds/test/kind.yml +++ b/taskcluster/kinds/test/kind.yml @@ -42,7 +42,7 @@ tasks: matrix: set-name: "unit-py{matrix[python]}" substitution-fields: [description, run.command, treeherder, worker] - python: ["313", "312", "311", "310", "39"] + python: ["314", "313", "312", "311", "310", "39"] worker: artifacts: - type: file From 85d59539ee823738f4d7b39e97bc3e1df183b1ba Mon Sep 17 00:00:00 2001 From: Andrew Halberstadt Date: Fri, 17 Oct 2025 14:30:09 -0400 Subject: [PATCH 3/3] test: fix test_main under Python 3.14 Python 3.14 switched multiprocessing to use the "forkserver" start method. This means the forked subprocess don't inherit the parent process' memory and the monkeypatched functions (via the `run_taskgraph` fixture) were no longer applied. This works around the issue by actually creating bad parameter files to avoid monkeypatching. --- test/test_main.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/test/test_main.py b/test/test_main.py index 3e175fa07..8579da12f 100644 --- a/test/test_main.py +++ b/test/test_main.py @@ -65,14 +65,23 @@ def test_show_taskgraph_attr(run_taskgraph, capsys, attr, expected): def test_show_taskgraph_parallel(run_taskgraph): + # Test that parallel execution works correctly with valid parameters res = run_taskgraph(["full", "-p", "taskcluster/test/params"]) assert res == 0 - # Craft params to cause an exception - res = run_taskgraph( - ["full", "-p", "taskcluster/test/params"], params={"_kinds": None} - ) - assert res == 1 + +def test_show_taskgraph_parallel_bad_params(tmp_path): + # Create parameter files that will cause processing errors + bad_params_dir = tmp_path / "bad_params" + bad_params_dir.mkdir() + (bad_params_dir / "invalid-yaml.yml").write_text("invalid: yaml: [syntax error") + + try: + result = taskgraph_main(["full", "-p", str(bad_params_dir)]) + except SystemExit as e: + result = e.code + + assert result == 1 def test_show_taskgraph_force_local_files_changed(mocker, run_taskgraph):