ReviewOS

pantry-pm/pantry

test(git): confine shim fixtures to their managed registry

#276
Open chris opened this 1 hour ago ·
1 hour ago

Pantry 0.11.162 source 9d9a0c2a0c7338d996acd951c198f3a375ef1a99 failed its first normal required source run: CI 41507467566, test job 125490319088. The complete run retained 2010 passing tests, 46 conditional skips and one failure: Git shim resolves aliases through its native binary without calling itself through PATH exceeded its unchanged default 5000 ms. Releaser and Deploy correctly rejected that exact source; native/npm publication steps were skipped and exact public release/npm metadata were 404. No rerun, retag or adoption qualifies 162.

Related delivery blocker: #275. Broader native delivery tracker: #227.

The owning test packages/ts-pantry/test/git-shim.test.ts puts its first fixture at <temporary>/bin/git. The unchanged real shim expects a managed registry/git-scm.org/v*/bin/git location and derives the registry from that structure. The malformed first fixture therefore selects a parent of its temporary directory, potentially / with the normal Linux /tmp layout, and its Linux library discovery examines foreign host directories. The next two fixtures already use the actual managed prefix.

A bounded real POSIX shell trace on macOS with an explicitly authored uname=Linux boundary confirmed the wrong ancestor and foreign library selection, while the managed prefix selected only the owned registry. This is not native Linux qualification or proof of the exact hosted timing cause. The original CI failure remains the release result.

A maintained public-script boundary regression preserves the original three commands and nine assertions, observes the selected library path separately, and fails against the malformed fixture before the layout repair. Its red output expected the authored registry library and received an empty path. No production shim source or command budget changes are needed.

Acceptance:

  • Give the first alias fixture the canonical owned registry/provider/version prefix.
  • Preserve status, saved, config, all original exit/stdout/stderr assertions and the default five-second test limit.
  • Prove library discovery selects the authored registry, and keep a foreign sentinel outside it in the existing Linux loader-path control.
  • Label authored Linux uname boundaries honestly; earn actual hosted Linux acceptance through the normal new-source CI.
  • Keep production shim bytes, host directories, registry contents and runtime limits unchanged. No host-tree pruning, runtime workaround, 162 rerun or retag.
  • Review the small owning test patch, run the full canonical owner gate, then deliver through the next normal immutable patch release and qualify its actual public artifacts before #275 adoption.

Original logs, safe ZIP/CRC readbacks and diagnostic histories are retained under /tmp/pantry-162-qualification; source regression evidence is under /tmp/pantry-git-shim-fixture-fix.

Sign in to comment on this issue.