From dc303be76e75ecadbb749cbc3bc7eabbd627a3ba Mon Sep 17 00:00:00 2001 From: doctorperceptron Date: Thu, 20 Nov 2025 09:49:34 -0500 Subject: [PATCH 1/8] Update --- .github/workflows/v2-build-demos.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/v2-build-demos.yml b/.github/workflows/v2-build-demos.yml index b2bd86c2c7..ec925a2024 100644 --- a/.github/workflows/v2-build-demos.yml +++ b/.github/workflows/v2-build-demos.yml @@ -169,6 +169,7 @@ jobs: - name: Install pandoc, opencl, and graphviz run: | + sudo apt-get update sudo apt-get install -y \ ocl-icd-opencl-dev \ pandoc \ From 759a2ddb4cd9683f242bace49daa11c0c16c9995 Mon Sep 17 00:00:00 2001 From: doctorperceptron Date: Thu, 20 Nov 2025 11:39:46 -0500 Subject: [PATCH 2/8] Clean up app imports --- lib/qml/app/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/qml/app/app.py b/lib/qml/app/app.py index d8e474086a..7773575ab6 100644 --- a/lib/qml/app/app.py +++ b/lib/qml/app/app.py @@ -1,6 +1,6 @@ import typer from qml.context import Context -from qml.lib import demo, repo, cli, fs, template +from qml.lib import demo, cli, template import shutil import logging from typing import Annotated, Optional From 296e5d4a1d8090cc89a200005093fec1528098f2 Mon Sep 17 00:00:00 2001 From: doctorperceptron Date: Thu, 20 Nov 2025 15:26:14 -0500 Subject: [PATCH 3/8] Use dedicated PLC dev constraints file --- dependencies/constraints-plc-dev.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 dependencies/constraints-plc-dev.txt diff --git a/dependencies/constraints-plc-dev.txt b/dependencies/constraints-plc-dev.txt new file mode 100644 index 0000000000..241614eb3b --- /dev/null +++ b/dependencies/constraints-plc-dev.txt @@ -0,0 +1,8 @@ +# Specifies constraints for PennyLane, Lightning, and Catalyst dev builds +# These need to be installed in a specific order, and as such are not controlled +# by the constraints-dev.txt file. Please do not change the order of these constraints. +# Use upper bounds targeting the next to next stable release so we continue to build RC branches during feature freeze. + +pennylane-catalyst<0.15.0 +pennylane-lightning<0.45.0 +pennylane<0.45.0 From e12935fbc473f9d9a757225a47266c532313f38e Mon Sep 17 00:00:00 2001 From: doctorperceptron Date: Fri, 21 Nov 2025 09:01:14 -0500 Subject: [PATCH 4/8] Update description --- dependencies/constraints-plc-dev.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dependencies/constraints-plc-dev.txt b/dependencies/constraints-plc-dev.txt index 241614eb3b..745f5c2048 100644 --- a/dependencies/constraints-plc-dev.txt +++ b/dependencies/constraints-plc-dev.txt @@ -1,7 +1,7 @@ -# Specifies constraints for PennyLane, Lightning, and Catalyst dev builds -# These need to be installed in a specific order, and as such are not controlled +# Specifies constraints for PennyLane, Lightning, and Catalyst dev builds. +# These need to be installed separately, and in a specific order, and as such are not controlled # by the constraints-dev.txt file. Please do not change the order of these constraints. -# Use upper bounds targeting the next to next stable release so we continue to build RC branches during feature freeze. +# Use upper bounds targeting the next-to-next stable release so we continue to build RC branches during feature freeze. pennylane-catalyst<0.15.0 pennylane-lightning<0.45.0 From 6cb5102e0816666f5b2d963f25a8cd9c5c7202ee Mon Sep 17 00:00:00 2001 From: doctorperceptron Date: Fri, 21 Nov 2025 09:02:21 -0500 Subject: [PATCH 5/8] Add to context --- lib/qml/context.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/qml/context.py b/lib/qml/context.py index 0c903100b6..b6f419f8bf 100644 --- a/lib/qml/context.py +++ b/lib/qml/context.py @@ -49,6 +49,10 @@ def stable_constraints_file(self) -> Path: def dev_constraints_file(self) -> Path: return self.repo_root / "dependencies" / "constraints-dev.txt" + @property + def plc_dev_constraints_file(self) -> Path: + return self.repo_root / "dependencies" / "constraints-plc-dev.txt" + @property def build_requirements_file(self) -> Path: return self.repo_root / "dependencies" / "requirements-build.txt" From 018e015437d08c833b573f5fabaa90a9a11118b4 Mon Sep 17 00:00:00 2001 From: doctorperceptron Date: Fri, 21 Nov 2025 09:33:22 -0500 Subject: [PATCH 6/8] Install from constraints file --- lib/qml/lib/demo.py | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/lib/qml/lib/demo.py b/lib/qml/lib/demo.py index d27b82909f..243b46c6af 100644 --- a/lib/qml/lib/demo.py +++ b/lib/qml/lib/demo.py @@ -290,30 +290,24 @@ def _build_demo( # If dev, we need to re-install the latest Catalyst, then Lightning, then PennyLane # in that order, regardless of conflicts/warnings. if dev: - # Catalyst - cmds.pip_install( - build_venv.python, - "--upgrade", - "--extra-index-url", - "https://test.pypi.org/simple/", - "PennyLane-Catalyst", - use_uv=False, - quiet=False, - pre=True, - ) - # Lightning - cmds.pip_install( - build_venv.python, - "--upgrade", - "--extra-index-url", - "https://test.pypi.org/simple/", - "PennyLane-Lightning", - use_uv=False, - quiet=False, - pre=True, - ) - if dev: - # Need dev version of PennyLane to build, whether or not we're executing + with open(ctx.plc_dev_constraints_file, "r") as f: + packages = f.readlines() + for package in packages: + package = package.strip() + if package and not package.startswith("#"): + cmds.pip_install( + build_venv.python, + "--upgrade", + "--extra-index-url", + "https://test.pypi.org/simple/", + package, + use_uv=False, + quiet=False, + pre=True, + ) + + elif dev: + # Need latest version of PennyLane to build, whether or not we're executing cmds.pip_install( build_venv.python, "--upgrade", From 2fefa4fcc8ba746a6edaffffb2e70ba8cb77b518 Mon Sep 17 00:00:00 2001 From: doctorperceptron Date: Fri, 21 Nov 2025 09:44:28 -0500 Subject: [PATCH 7/8] Only use test-pypi --- lib/qml/lib/demo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/qml/lib/demo.py b/lib/qml/lib/demo.py index 243b46c6af..b7b37ede0b 100644 --- a/lib/qml/lib/demo.py +++ b/lib/qml/lib/demo.py @@ -298,7 +298,7 @@ def _build_demo( cmds.pip_install( build_venv.python, "--upgrade", - "--extra-index-url", + "--index-url", "https://test.pypi.org/simple/", package, use_uv=False, From fbeebd3b7a1c40f3a0f0a3dfb3508503880379a0 Mon Sep 17 00:00:00 2001 From: doctorperceptron Date: Fri, 21 Nov 2025 09:56:41 -0500 Subject: [PATCH 8/8] Update crons --- .github/workflows/v2-build-branch-dev.yml | 3 ++- .github/workflows/v2-build-branch-master.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/v2-build-branch-dev.yml b/.github/workflows/v2-build-branch-dev.yml index 53481c64ba..eae2de3ade 100644 --- a/.github/workflows/v2-build-branch-dev.yml +++ b/.github/workflows/v2-build-branch-dev.yml @@ -2,7 +2,8 @@ name: V2 Build QML Branch - Dev on: workflow_dispatch: schedule: - - cron: '0 0 * * 1,3,5' # At 00:00 on Sunday (Monday am), Tuesday (Wednesday am), Thursday (Friday am). + - cron: '0 5 * * 1,3,5' # At 05:00 (12am EST) on Sunday (Monday am), Tuesday (Wednesday am), Thursday (Friday am). + #- cron: '0 10 * * *' # At 10:00 (5am EST) on every day-of-week. Use this during feature freeze. concurrency: group: v2-build-qml-demo-branch-dev diff --git a/.github/workflows/v2-build-branch-master.yml b/.github/workflows/v2-build-branch-master.yml index 29b23a8a3a..f473853e30 100644 --- a/.github/workflows/v2-build-branch-master.yml +++ b/.github/workflows/v2-build-branch-master.yml @@ -2,7 +2,7 @@ name: V2 Build QML Branch - Master on: workflow_dispatch: schedule: - - cron: '0 0 * * 1,3,5' # At 00:00 on Sunday (Monday am), Tuesday (Wednesday am), Thursday (Friday am). + - cron: '0 5 * * 1,3,5' # At 05:00 (12am EST) on Sunday (Monday am), Tuesday (Wednesday am), Thursday (Friday am). concurrency: group: v2-build-qml-demo-branch-master