You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enforce a zero-unowned-production-dependency policy: zig-js may depend only on Zig's standard library/toolchain and owner-maintained sibling repositories resolved locally under ~/Code/**.
The engine dependencies already use local ../zig-regex and ../zig-gc. Documentation deliberately uses the owner-maintained BunPress ecosystem from ../../Tools/bunpress; defects and missing capabilities belong in those source repositories rather than in replacement code inside zig-js.
Required policy
Classify every external edge as exactly one of: Zig/compiler toolchain; standard platform SDK/runtime interface; owner-maintained local build/runtime dependency; explicit checksum-pinned test/conformance/benchmark oracle; generated-data acquisition input; or prohibited/unclassified. The classification states whether it can affect shipped semantics.
Production Zig package dependencies are an explicit allowlist of owner-maintained local paths; initially ../zig-regex and ../zig-gc.
Owner-maintained tools and libraries under ~/Code/Tools and ~/Code/Libraries remain dependencies and are improved at their source. Do not replace them merely to reduce dependency count.
No unowned network dependency resolution, vendored third-party runtime/library, C/C++ engine, opaque binary, or system JavaScript engine may enter the library or its normal build.
Platform SDK/runtime APIs required to expose a platform feature (for example Foundation/Objective-C on macOS) are declared separately from portable engine dependencies and must not provide JavaScript semantics.
System JavaScriptCore and external standards corpora remain differential/conformance/benchmark oracles only, behind explicitly named non-library targets.
Generators must consume checked-in, checksum-pinned inputs or explicit one-shot acquisition commands; ordinary builds and tests do not fetch the network.
CI sibling checkouts use exact owner-maintained revisions and the same local-path graph as development.
Repository Python and semantic shell implementation tools migrate under Tooling: consolidate durable repository tools in TypeScript on Home #497. JavaScript/TypeScript tools that are part of an owner-maintained package remain in that package and are improved there; unowned registry/runtime/bootstrap edges still require an explicit pin and classification.
WABT, wasm-tools, upstream engines, and standards corpora may remain explicit pinned test/benchmark oracles, but never enter the normal package graph, shipped library, ordinary offline build, or source of runtime semantics.
Audit
Scan build.zig.zon, Zig imports, link directives, C/Objective-C includes, package manifests, scripts, subprocesses, dynamic loading, and generated-file provenance.
Fail on an unclassified dependency edge or network access from a normal build/test/docs command.
Produce a machine-readable inventory with owner, purpose, scope, local path, pin, license, and whether it can affect runtime semantics.
Acceptance
A CI gate rejects any unapproved dependency/link/fetch edge.
The normal library build succeeds with network disabled and only owner-maintained sibling checkouts present.
README, build.zig.zon, and developer docs state the exact policy without claiming that test-only standards inputs are production dependencies.
No compatibility shim or fallback weakens a feature merely to avoid implementing its owned replacement.
Toolchain, owner-maintained dependency, platform SDK, test oracle, acquisition input, and shipped dependency boundaries are machine-readable and fail on ambiguity.
Foundation
The local-path dependency graph is established in build.zig.zon; the engine/JSC separation is documented in README and enforced by the separate comparison executables.
Parent: #459
Goal
Enforce a zero-unowned-production-dependency policy: zig-js may depend only on Zig's standard library/toolchain and owner-maintained sibling repositories resolved locally under
~/Code/**.The engine dependencies already use local
../zig-regexand../zig-gc. Documentation deliberately uses the owner-maintained BunPress ecosystem from../../Tools/bunpress; defects and missing capabilities belong in those source repositories rather than in replacement code inside zig-js.Required policy
../zig-regexand../zig-gc.~/Code/Toolsand~/Code/Librariesremain dependencies and are improved at their source. Do not replace them merely to reduce dependency count.Audit
build.zig.zon, Zig imports, link directives, C/Objective-C includes, package manifests, scripts, subprocesses, dynamic loading, and generated-file provenance.Acceptance
libffiremoval is completed in ObjC: replace libffi with an owned native ABI dispatcher #463.build.zig.zon, and developer docs state the exact policy without claiming that test-only standards inputs are production dependencies.Foundation
The local-path dependency graph is established in
build.zig.zon; the engine/JSC separation is documented in README and enforced by the separate comparison executables.