doxa-maps/deployment/src-tauri/.gitignore
doxa-maps 0138044650
Some checks are pending
build-gate / build (push) Waiting to run
Commit Cargo.lock: it was ignored by association with real build output
deployment/src-tauri/.gitignore listed /target, /gen and Cargo.lock together
with reasoning that fits the first two. /target is 2GB of compiled output and
/gen is emitted by tauri-build on every compile -- both genuinely
regenerated. A lockfile is not build output: it is the RESOLUTION RECORD, the
only artifact that makes cargo build reproducible.

Cargo's rule splits on crate type -- commit for a binary, ignore for a
library -- and cargo metadata reports this crate as kinds=['bin']
(src/main.rs, no lib.rs). Checked with cargo rather than inferred from the
file layout.

The stakes are concrete: Cargo.toml pins nothing tighter than
tauri = { version = "2" }, while the lockfile pins 430 packages. Without it
an inheritor building next month resolves a different dependency tree than
the one that produced the shipped 64 MB binary, and method 5 is already
"built, not shot", so its build must at least be repeatable.

Verified before committing 109KB: cargo metadata --locked --offline succeeds,
so the lockfile is consistent with the manifest, and it contains zero local
paths or credentials.

check:tauri gains a fifth assertion -- Cargo.lock present AND TRACKED.
Tracked-ness is the point: the file sat on disk the whole time and was still
absent from every clone. Negative-tested against the real state, not a
simulation: the gate FAILED naming the file while it was untracked, and
passed once staged.
2026-09-22 06:53:27 +00:00

19 lines
1.2 KiB
Text

# Cargo build output — ~2GB of compiled dependencies, regenerated by `cargo check`/`cargo build`.
# Mirrors capacitor/android, where only the generated assets/public/ is ignored: the COMMITTED
# source here is Cargo.toml + build.rs + src/ + tauri.conf.json + icons/.
/target
# ★ Cargo.lock is COMMITTED (corrected 2026-09-22) — it was ignored here by association with
# /target and /gen, which are genuinely regenerated. A lockfile is NOT build output: it is the
# RESOLUTION RECORD, the only artifact that makes `cargo build` reproducible. Cargo's own rule
# splits on crate type — commit it for a BINARY, ignore it for a library — and `cargo metadata`
# reports this crate as kinds=['bin'] (src/main.rs, no lib.rs).
#
# WHY IT MATTERS HERE: Cargo.toml pins nothing tighter than `tauri = { version = "2" }`, while
# the lockfile pins 430 packages. Without it an inheritor building next month resolves a
# different dependency tree than the one that produced the shipped 64 MB binary — and deploy
# method 5 is already 'built, not shot', so its build must at least be repeatable.
# gen/ is emitted by tauri-build on every compile (ACL + capability schemas).
# Generated, not authored — same rule as capacitor's assets/public/.
/gen