From 752a015cdf497f3ebe35f5751f904edcc856bb7e Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 14 Jul 2026 19:24:55 +0000 Subject: [PATCH] fix(onpair): pin OnPair dictionary-training seed for determinism OnPair's default config left `seed: None`, meaning the dictionary trainer seeded its RNG from OS entropy. This made the trained dictionary and, therefore, the compressed file sizes nondeterministic run-to-run, adding noise to file-size benchmark comparisons. Set `seed: Some(42)` on `DEFAULT_DICT12_CONFIG` (spread over `onpair::DEFAULT_CONFIG`) so training is reproducible. This is the only OnPair `Config` constructed in the repo, so it covers production, benches, and tests. No onpair release is needed: published 0.0.4 already exposes the public `seed` field. `42` matches onpair's own determinism test convention. --- encodings/experimental/onpair/src/compress.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/encodings/experimental/onpair/src/compress.rs b/encodings/experimental/onpair/src/compress.rs index adf9e73461c..3616ec7e717 100644 --- a/encodings/experimental/onpair/src/compress.rs +++ b/encodings/experimental/onpair/src/compress.rs @@ -27,7 +27,10 @@ use crate::OnPair; use crate::OnPairArray; /// Default OnPair training configuration: 12-bit codes ("dict-12"). -pub const DEFAULT_DICT12_CONFIG: Config = onpair::DEFAULT_CONFIG; +pub const DEFAULT_DICT12_CONFIG: Config = Config { + seed: Some(42), + ..onpair::DEFAULT_CONFIG +}; fn onpair_compress_varbinview( array: VarBinViewArray,