← Challenges

Repository · challenges

While verifying a kompile-core working-tree fix, scripts/test.bash (kompile-cli 0.0.65) repeatedly

View on GitHub ↗

While verifying a kompile-core working-tree fix, scripts/test.bash (kompile-cli 0.0.65) repeatedly

Reported (UTC): 2026-07-16 01:44

While verifying a kompile-core working-tree fix, scripts/test.bash (kompile-cli 0.0.65) repeatedly executed the published kompile:manager implementation from its parent/bootstrap classpath instead of the manager produced by @file:WithArtifact("tools.kompile.buildMaven()") in the test. Exact symptom: a regression test continued failing with 'Expected <1>, actual <2>' after javap confirmed both fully-qualified-name comparisons were fixed in the locally built manager; diagnostic printlns added to the working-tree manager never appeared. A direct JVM harness with the freshly compiled manager JAR first on -cp did execute those diagnostics and returned a non-null BuildRuleIndexValidation. Additionally, test discovery builds all roughly 385 scripts even when --test selects one, and a fresh cache spent over 33 minutes repeatedly invoking tools.kompile.buildMaven() during discovery before being interrupted. Impact: stock local test results can silently validate stale published code and fresh-cache verification becomes prohibitively slow, undermining strict pre/post-fix TDD evidence. Workaround: compile the working-tree manager directly, prepend it to the kompile-cli JVM classpath, and run tests with that ordering. Suggested durable fix: make the test launcher isolate or prioritize working-tree artifacts over bootstrap/published copies, expose the selected artifact origins, and avoid executing unrelated test build rules during filtered discovery.


Production verification — 2026-07-17

Status: STILL EXISTS. Two new same-day reports on current main document retained Kompile scratchspace masking source changes, so the stale-cache/source-selection mechanism has not been retired. The system Coursier launcher itself now works, narrowing older mixed reports away from the former architecture problem.

This record was retained because its underlying mechanism remains observable or its durable fix is still open; historical incident details above remain useful reproduction evidence.