frostney / frostney/GocciaScript

Select changed and related tests from the module graph

Open
#1,037 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

internal new feature runtime
Dominant language
Pascal
Stars
20
Forks
3
Avg merge
3d 4h
Merged PRs (30d)
45

Description

Summary

Let GocciaTestRunner select test files related to explicit source files or to files changed from a version-control reference.

Why

Large suites need a deterministic one-shot way to run the tests affected by a change without executing every test file. The project already has module resolution and graph-aware work planned for 0.13.0, making this the appropriate seam for dependency-based selection.

Current behavior

The runner expands supplied files and directories and executes all discovered script files. It does not construct a test-to-module dependency map or consult version-control changes.

Expected behavior

  • Select tests related to one or more explicitly supplied source modules.
  • Select tests related to files changed from a supplied Git reference, with a documented default reference.
  • Use GocciaScript's actual module resolution rules, including aliases, import maps, and supported virtual-module identities.
  • Handle added, modified, renamed, and deleted paths predictably.
  • Keep selection deterministic across interpreter/bytecode modes and local --jobs values.
  • Report the selected test-file set in human-readable and structured output.

Scope notes

  • Base selection on the static module graph; runtime tracing of dynamic dependencies is not required.
  • Watch mode is a separate persistent-runner issue that can reuse this selector.
  • Do not introduce Node/npm resolution, a Vite dependency graph, or a distributed test service.
  • Test-name and source-line filtering remain a registration-level concern.

Contributor guide

Open the contributing guide

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.

Research direction

Start at GocciaTestRunner and the project's existing module-resolution implementation. Define the static dependency-based selector around those seams, then verify that explicit sources and Git changes select deterministic test sets and that human-readable and structured reports cover the stated path cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
git
Domain
testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.