rpm-ostree/rust
Jonathan Lebon b381e0294f compose: Hash all treefile externals and flattened manifest
Move hashing to the Rust side so that we can easily hash over the final
set of inputs after parsing. This means that we now hash over all the
externals, like `add-files` references, any `postprocess-script` script,
and `passwd` and `group` files.

The original motivation for this was that hashing over a reserialized
version of the treefile was not deterministic now that treefiles include
hash tables (i.e. `add-commit-metadata`). So I initially included each
individual treefile as part of the hash.

I realized afterwards that just switching to `BTreeMap` fixes this, so
we can keep hashing only the final flattened reserialized treefile so we
ignore comments and whitespace too. But since I already wrote the patch,
and it fixes a real issue today... here we are.

One notable change though is that we now hash the treefile in non-pretty
mode to increase the chances that the serialized form remains stable.
Ironically, this change is likely to cause a no-op commit once it gets
to pipelines which iterate quickly. All for the greater good though.

Closes: #1865
Approved by: cgwalters
2019-07-09 20:28:18 +00:00
..
src compose: Hash all treefile externals and flattened manifest 2019-07-09 20:28:18 +00:00
cargo-vendor-config Add support for YAML treefiles 2018-06-05 13:08:33 +00:00
Cargo.lock treefile: allow ${releasever} in more keys 2019-06-18 18:19:42 +00:00
Cargo.toml treefile: allow ${releasever} in more keys 2019-06-18 18:19:42 +00:00
cbindgen.toml Move varsubst code into Rust, use it in treefile parsing 2018-11-02 20:36:28 +00:00