From 2adeb80e8b4575af0e5f9f28bdae32a2bf20f3ff Mon Sep 17 00:00:00 2001 From: abacus_fixer Date: Sat, 29 Aug 2026 17:25:35 +0800 Subject: [PATCH 1/3] Fix undefined basis variable in interface workflow (#7571) The "Create mock data & patch script" step referenced `basis` inside the Python heredoc without defining it: the matrix key `basis` was never exported to the step environment, so the step failed with "NameError: name 'basis' is not defined" before any mock data was generated. Pass matrix.basis through the BASIS environment variable and read it in the heredoc, matching the existing SCRIPT/PREFIX pattern. --- .github/workflows/interface.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/interface.yml b/.github/workflows/interface.yml index 5e1b59d0269..d89f2aa3a05 100644 --- a/.github/workflows/interface.yml +++ b/.github/workflows/interface.yml @@ -58,12 +58,14 @@ jobs: env: SCRIPT: ${{ matrix.script }} PREFIX: ${{ matrix.prefix }} + BASIS: ${{ matrix.basis }} run: | python3 << 'PYEOF' import os, re, textwrap script = os.environ["SCRIPT"] prefix = os.environ["PREFIX"] + basis = os.environ["BASIS"] # ── 1. Patch the example script ──────────────────────── with open(script) as f: From 658a4e1efa5af264c1c1edaf45dd8ac65edd7502 Mon Sep 17 00:00:00 2001 From: abacus_fixer Date: Sat, 29 Aug 2026 17:43:21 +0800 Subject: [PATCH 2/3] Add Upstream Repository section to AGENTS.md Document the upstream repo/issues/PR links and two workflow facts: upstream PRs are opened from personal fork branches, and workflow_dispatch-only workflows cannot be verified by PR CI. --- AGENTS.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 5da0070bb4e..43a46de7d39 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -112,6 +112,17 @@ The repository text files have been normalized to LF once. Day-to-day line ending enforcement should rely on staged/changed-file hooks and CI; rerun the full mixed-line-ending hook only for intentional repository-wide normalization. +## Upstream Repository + +- Repository: https://github.com/deepmodeling/abacus-develop +- Issues: https://github.com/deepmodeling/abacus-develop/issues +- Pull requests: https://github.com/deepmodeling/abacus-develop/pulls +- Upstream PRs are opened from personal fork branches + (`:` into `develop`). +- `workflow_dispatch`-only workflows (e.g. `.github/workflows/interface.yml`) + are not triggered by push/PR events; PR CI cannot verify such fixes, so + state "manual dispatch run required" in the PR verification notes. + ## PR Self-Check - Confirm the PR body states exact commands run, whether they passed or failed, From a8feaa00bbd3d3ad771b65d56c45b88e50d14c37 Mon Sep 17 00:00:00 2001 From: abacus_fixer Date: Wed, 9 Sep 2026 09:11:08 +0800 Subject: [PATCH 3/3] Fix remaining blockers in interface workflow dryrun jobs The previous fix for the undefined basis variable was only the first blocker; the workflow still failed on all three matrix jobs. Correct the advance matrix entry to point at example_advanced.py, and emit the mock wannier90.nnkp k-point list inside begin/end kpoints markers so parse_nnkp can read it. Verified locally by simulating all three matrix jobs (basic/pw/ advanced): each prints the DRY RUN COMPLETE banner and passes the generated-file validation checks. This workflow is workflow_dispatch only, so a manual dispatch run is still required for CI verification. --- .github/workflows/interface.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/interface.yml b/.github/workflows/interface.yml index d89f2aa3a05..69a5a7ac23c 100644 --- a/.github/workflows/interface.yml +++ b/.github/workflows/interface.yml @@ -24,7 +24,7 @@ jobs: prefix: Bi2Se3_pw basis: pw - name: advance (LCAO) - script: example_advance.py + script: example_advanced.py prefix: Bi2Se3_advanced basis: lcao @@ -148,10 +148,12 @@ jobs: f" {nk}", "! num_kpts", " 4 4 4", "! mp_grid", ] + lines.append("begin kpoints") for ix in range(4): for iy in range(4): for iz in range(4): lines.append(f" {ix/4:.15f} {iy/4:.15f} {iz/4:.15f}") + lines.append("end kpoints") lines.append(f" {nntot}") lines.append("! nntot")