Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/release-boundary.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ When a modeled lockfile change accounts for a root `package.json` edit that only

Berry, pnpm lockfile formats before 9.0, workspaces, alternate install layouts, mixed package managers, unsupported requests or fields, malformed lockfiles and incomplete attribution retain full fallback. The engine does not install packages or fetch registry metadata to fill gaps. Existing static import and file-reference limits still apply; required CI remains authoritative.

Go selection models package sources and `go:embed` inputs reported by `go list`. Every changed path outside that metadata requires full validation, regardless of extension or directory, including deleted paths and rename origins. Older cached profiles without this ownership evidence also require full validation. Modeled embeds retain dependency-based selection; discovery-excluded paths such as `testdata` retain full validation. Arbitrary runtime reads are not inferred from source text. Additional runtime reads of already modeled files by unrelated packages, and external or dynamically supplied inputs, remain outside this model.
Go selection models package sources and `go:embed` inputs reported by `go list`. Every changed path outside that metadata requires full validation, regardless of extension or directory, including deleted paths and rename origins. Older cached profiles without this ownership evidence also require full validation. Modeled embeds retain dependency-based selection; other discovery-excluded paths retain full validation, except a plain `<dir>/testdata/` path of a package reported with `_test.go` files, which selects that package's tests - unless another package's `_test.go` file names the path or its `testdata` directory by reference, a `_`-prefixed or `.`-prefixed directory lies on the way or below `testdata`, or the cached profile predates the package-test evidence. Embedded testdata is a production runtime input and retains full validation. A declared `inputs` entry still adds its tests on top. Arbitrary runtime reads are not inferred from source text. Additional runtime reads of already modeled files by unrelated packages, and external or dynamically supplied inputs, remain outside this model.

Python selection reads file-level imports with Python's own `ast` module, resolved against flat and `src/` layouts, pytest's `pythonpath` and `pyproject` packages, and discovers tests with pytest's `python_files` setting. A changed `conftest.py` selects every test under its directory. Computed imports, unresolved first-party or relative imports, unparseable files, pytest configuration DiffCI cannot read, and changed project files such as `pyproject.toml` or `requirements.txt` retain full validation. Coverage-based and plugin-defined test relationships are not modeled.

Expand Down
4 changes: 3 additions & 1 deletion docs/using-diffci.md
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,9 @@ _The runtime-input check (`Go runtime inputs outside source/embed metadata …`)
| `Go …: runtime plugins require full validation` | `import "plugin"` | No |
| `Go …: generated or linked dependencies require full validation` | A `//go:generate` or `//go:linkname` directive | No |
| `Go runtime inputs outside source/embed metadata require full validation: …` | Edit `config.yaml` beside a Go package that a test opens | No |
| `Changes in Go discovery-excluded paths require full validation, including runtime test data` | Edit `testdata/input.json` or a file under a `_`-prefixed directory | No |
| `Changes in Go discovery-excluded paths require full validation, including runtime test data` | Edit a `testdata` file of a package without `_test.go` files, a file under a `_`-prefixed directory, a `_`/`.`-prefixed directory inside the `testdata` tree, `testdata` that `go:embed` embeds, or `testdata` a sibling package's test file names | No - plain owned `testdata` selects the owning package's tests instead (see below) |

_Package testdata (#83): a plain `testdata/` input whose parent directory is a reported Go package with `_test.go` files selects that package's tests (reason `GO_TESTDATA`) instead of falling back - the go tool runs a package's tests with the package directory as the working directory. It falls back when another package's `_test.go` file names the path or its `testdata` directory, when a `_`-prefixed or `.`-prefixed directory lies on the way or below `testdata`, when the cached profile predates the package-test evidence, or when the file is embedded. A declared `inputs` entry adds its declared tests on top of the package's._

### Maven

Expand Down
1 change: 1 addition & 0 deletions src/repo/impact-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export type ImpactReason =
| "TEST_FIXTURE_OWNER"
| "ALWAYS_RUN_POLICY"
| "DECLARED_INPUT"
| "GO_TESTDATA"
| "ROUTE_VISIT"
| "DELETED_FILE_LEGACY_DEPENDENTS"
| "DELETED_FILE_UNKNOWABLE_GRAPH"
Expand Down
Loading