Some checks are pending
build-gate / build (push) Waiting to run
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.
19 lines
1.2 KiB
Text
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
|