switch from "id" to "nonce"

mainly this addresses the following use case:

1. Someone creates a template with build.zig.zon, id field included
   (note that zig init does not create this problem since it generates
   fresh id every time it runs).
2. User A uses the template, changing package name to "example" but not
   id field.
3. User B uses the same template, changing package name also to
   "example", also not changing the id field.

Here, both packages have unintentional conflicting logical ids.

By making the field a combination of name checksum + random id, this
accident is avoided. "nonce" is an OK name for this.

Also relaxes errors on remote packages when using `zig fetch`.
This commit is contained in:
Andrew Kelley
2025-02-25 17:26:19 -08:00
parent a70307e7ff
commit 0fc7c9f57c
7 changed files with 100 additions and 59 deletions

View File

@@ -12,5 +12,5 @@
},
},
.paths = .{""},
.id = 0x1cb6,
.nonce = 0xc1ce10810000f013,
}