mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
fix(ci): route root npm manifest changes into the Python lane
The change classifier treated package.json / package-lock.json as python-irrelevant, so a lockfile-only PR skipped the Python lane entirely. But several Python invariant tests read these files (assistant-ui tap cluster, electron pin, lazy-deps, lockfile churn) — so a lockfile change can break the Python suite. #63970 merged green (Python skipped on the PR) then reddened main (push fails open and runs everything). Drop root npm from the _py_irrelevant denylist so lockfile changes run Python, honoring the classifier's own contract: never skip a lane a change could break. Root npm still triggers the frontend lane as before.
This commit is contained in:
parent
569b912d7d
commit
6212b5e4af
2 changed files with 9 additions and 3 deletions
|
|
@ -56,7 +56,11 @@ def _is_docs(p: str) -> bool:
|
|||
|
||||
|
||||
def _py_irrelevant(p: str) -> bool:
|
||||
return _is_docs(p) or p in _ROOT_NPM or p.startswith(_PY_SKIP) or p.startswith(_DOCKER_META)
|
||||
# Root npm manifests are NOT python-irrelevant: several Python invariant
|
||||
# tests read package.json / package-lock.json (tap-cluster, electron pin,
|
||||
# lazy-deps, lockfile churn), so a lockfile-only change can break the Python
|
||||
# suite. Omitting them here is what let #63970 merge green then redden main.
|
||||
return _is_docs(p) or p.startswith(_PY_SKIP) or p.startswith(_DOCKER_META)
|
||||
|
||||
|
||||
def _is_scan(p: str) -> bool:
|
||||
|
|
|
|||
|
|
@ -50,8 +50,10 @@ CASES = {
|
|||
"uv.lock → python": (["uv.lock"], _lanes(python=True)),
|
||||
"ts package → frontend": (["apps/desktop/src/app.tsx"], _lanes(frontend=True)),
|
||||
"ui-tui → frontend": (["ui-tui/src/entry.ts"], _lanes(frontend=True)),
|
||||
# Lockfile bump shifts every TS package's tree, but not the Python suite.
|
||||
"root lockfile → frontend, not python": (["package-lock.json"], _lanes(frontend=True)),
|
||||
# Lockfile bump shifts every TS package's tree AND feeds Python invariant
|
||||
# tests that read package-lock.json (tap-cluster, electron pin, lazy-deps).
|
||||
"root lockfile → frontend + python": (["package-lock.json"], _lanes(frontend=True, python=True)),
|
||||
"root package.json → frontend + python": (["package.json"], _lanes(frontend=True, python=True)),
|
||||
"website → site": (["website/docs/intro.md"], _lanes(site=True)),
|
||||
# SKILL.md reads like docs, but the skill-doc tests read skills/, so a
|
||||
# skill edit must still run Python.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue