Skip to content

Conversation

@runora95
Copy link
Contributor

@runora95 runora95 commented Oct 28, 2025

Title:
Daily QML builds with the RC environment when it exists.

Summary:

  • Adds a workflow to run daily QML builds with the RC environment. The workflow checks if an RC branch exists in Pennylane. If an RC branch exists it then gets the latest versions of pennylane, catalyst, and lightning from PyPI, updates the demo.py file with them, and builds the demos.

Relevant references:
Example demo.py configuration for an RC build

Possible Drawbacks:
None

Related GitHub Issues:
1579

@runora95 runora95 requested a review from a team as a code owner October 28, 2025 18:58
@runora95 runora95 requested a review from andrijapau October 28, 2025 20:49
Copy link
Contributor

@andrijapau andrijapau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you tried this out?

@runora95
Copy link
Contributor Author

runora95 commented Nov 6, 2025

Have you tried this out?

yep, I tried it out here

Comment on lines 76 to 81
run: |
sed -i -E "s#git\+https://github.com/PennyLaneAI/pennylane.git\#egg=pennylane\",#pennylane<=${{ steps.setup-rc-versions.outputs.pennylane-version }}\",\\n\\t\\t\\t\"—extra-index-url\",\\n\\t\\t\\t\"https://test.pypi.org/simple/\",\\n\\t\\t\\tpre=True,#" lib/qml/lib/demo.py
sed -i "s/PennyLane-Lightning/pennylane-lightning<=${{ steps.setup-rc-versions.outputs.lightning-version }}/" lib/qml/lib/demo.py
sed -i "s/PennyLane-Catalyst/pennylane-catalyst<=${{ steps.setup-rc-versions.outputs.catalyst-version }}/" lib/qml/lib/demo.py
git commit -am "Set up RC versions for demo builds"
git push --set-upstream origin ${{ steps.setup-rc-versions.outputs.rc-build-branch }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see the logic here, but I don't think manipulating the qml build tool files directly with sed in an Action is the right approach. I would prefer instead to add new command line argument(s) to the tool. We could even make this more general so you can build any version for PLC by passing in the arguments. We can then keep the logic that parses out the RC branches here in the Action.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

makes sense

Comment on lines 90 to 110
needs: build-demos-with-rc-branches
uses: ./.github/workflows/v2-build-demos.yml
with:
ref: sc-101692-dailyrcbuild #'${{ needs.build-demos-with-rc-branches.outputs.rc-build-branch }}'
demo-names: ''
execute: true
dev: true
save-artifact: true
artifact-name: 'demo-build-use-rc'
artifact-retention: 10
keep-going: false
quiet: false
batch_size: 10
pennylane-version: '${{ needs.build-demos-with-rc-branches.outputs.pennylane-version }}'
lightning-version: '${{ needs.build-demos-with-rc-branches.outputs.lightning-version }}'
catalyst-version: '${{ needs.build-demos-with-rc-branches.outputs.catalyst-version }}'
extra-index-url: 'https://test.pypi.org/simple/'
testpypi: true
prerelease-packages: true

cleanup:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}

Copilot Autofix

AI 6 days ago

To fix the problem, add an explicit permissions: block to the workflow file .github/workflows/v2-build-rc-demos-daily.yml. The block can be added at the workflow root to set default least-privilege permissions for all jobs (e.g., contents: read). For jobs that need additional permissions (such as cleanup, which pushes branch deletions), add a more permissive permissions: block to just that job (e.g., contents: write). This ensures all jobs only have the access they require. The changes involve inserting a root-level permissions: block (just after the name: and before on:), and inserting a permissions: block in the cleanup: job with contents: write.


Suggested changeset 1
.github/workflows/v2-build-rc-demos-daily.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/v2-build-rc-demos-daily.yml b/.github/workflows/v2-build-rc-demos-daily.yml
--- a/.github/workflows/v2-build-rc-demos-daily.yml
+++ b/.github/workflows/v2-build-rc-demos-daily.yml
@@ -1,4 +1,6 @@
 name: Build Daily RC Demos
+permissions:
+  contents: read
 on:
   schedule:
     - cron: '0 11 * * 1-5'  # Runs weekdays 6 am ET
@@ -109,6 +111,8 @@
 
   cleanup:
     runs-on: ubuntu-latest
+    permissions:
+      contents: write
     needs: 
       - build-demos
       - build-demos-with-rc-branches
EOF
@@ -1,4 +1,6 @@
name: Build Daily RC Demos
permissions:
contents: read
on:
schedule:
- cron: '0 11 * * 1-5' # Runs weekdays 6 am ET
@@ -109,6 +111,8 @@

cleanup:
runs-on: ubuntu-latest
permissions:
contents: write
needs:
- build-demos
- build-demos-with-rc-branches
Copilot is powered by AI and may make mistakes. Always verify output.
@doctorperceptron
Copy link
Collaborator

Superseded by #1604

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants