Skip to content

Production blocker: prove complete cache input closure before ungating #46

Description

@godofecht

Problem

The shared cache can restore zig-out and skip compilation, so a false cache hit is a correctness failure. The current key is useful as a prototype but does not yet prove that every artifact-affecting input participates in the key.

PR #43 therefore gates cache_build.sh behind AZAZEL_EXPERIMENTAL_CACHE=1 and removes the stale-hit impossibility claim.

Required coverage

The production cache key needs an explicit declared-input closure covering at least local Zig/C/C++ sources and headers, object files, generated tool inputs/outputs, local path dependencies, package identities and relevant package build arguments, target/cpu/ABI, optimization/build options, Azazel executor/generator version, toolchain identity, and external/system dependencies or a deliberate policy that makes them ineligible for shared caching.

Arbitrary pre/post commands and environment-dependent generators need either declared inputs/environment or a hard refusal from the production cache path.

Acceptance criteria

  • Mutation tests show that changing every modeled artifact input changes the key.
  • Target and build-option changes produce different keys.
  • Local path dependency content changes produce different keys.
  • Native source/header changes produce different keys.
  • Builds with undeclared side effects/inputs are rejected or explicitly marked non-cacheable.
  • Cache-hit artifacts are compared against clean-build artifacts across representative real-project parity slices.
  • Only after those tests pass is the AZAZEL_EXPERIMENTAL_CACHE=1 gate removed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions