Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

CI planner runs the full suite for requirements-only Python pin changes

Open
#12,739 0 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@atomantic is already working on this.

Since Oct 21, 2026.

  • #12755 by @atomantic — open

Assessment

This issue has not been assessed yet.

Description

code-quality effort:low in-progress model:medium plan

Problem

scripts/ci-test-plan.js treats any non-executable, non-doc path with no FIXTURE_OWNERS entry as an "unclassified changed file" and returns fullPlan(...) (around line 1133). The Python runtime pins in scripts/requirements-*.txt (for example requirements-ltx25-cuda.txt, requirements-wan22-cuda.txt, requirements-minimax-h3-cuda.txt, requirements-minimax-h3-mlx.lock.txt) have no mapping, so a requirements-only change runs the entire CI matrix: server, client, browser, DB, Windows, and the build. Dependabot opens such pip PRs routinely; PR #12735, a four-line Pillow pin bump, produced 📋 4 changed file(s) — unclassified changed file: scripts/requirements-ltx25-cuda.txt and a full-suite run.

No Vitest suite reads these files. They are consumed only by scripts/setup-image-video.sh during an explicit Install/Repair action, so the full matrix proves nothing about them.

Decision

Add an explicit classification for ^scripts/requirements-[^/]+\.txt$ that selects the suites covering the installer contract: the tests that exercise scripts/setup-image-video.sh and server/lib/pythonSetup.js (find them with rg -l "setup-image-video|pythonSetup" --glob '*.test.js'). Do not treat every .txt as inert. Keep the existing comment's rule that an unmapped text artifact still widens CI, and add only this one pattern.

Using the FIXTURE_OWNERS shape (with dir: 'scripts' plus a filename filter, or a sibling table if dir cannot express a filename glob) keeps the test memo in scripts/lib/testMemo.js hashing the right inputs.

Acceptance criteria

  • A diff touching only scripts/requirements-*.txt plans a scoped run (not full: true) that includes the installer-contract suites; a test in scripts/ci-test-plan.test.js pins this.
  • An unrelated unmapped .txt still produces a full plan (existing behavior preserved, also pinned).
  • The test memo includes the requirements files in the hash for the selected owner tests.

Effort note: one planner table entry plus two plan tests, but testMemo.js's dir hashing has to be read carefully for a filename-pattern owner.

Dominant language
JavaScript
Stars
38
Forks
32
Avg merge
34m
Merged PRs (30d)
993

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from atomantic/PortOS

All issues in atomantic/PortOS

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.