Bump leanSpec f12000b, strip production JSON derives#105
Conversation
|
PSA some of the 48 passing fork_choice tests are silently green because the runner no-ops attestation steps, downstream of the same leanMultisig pin skew. |
| // All previous helpers were callers of Serialize/Deserialize on production | ||
| // wire types; with those derives stripped the helpers have no remaining | ||
| // consumers. JSON parsing now lives in the `spec_test_fixtures` test-side | ||
| // wrappers, which carry their own hex/data-envelope handling. |
There was a problem hiding this comment.
Perfect! Wanted to do the same long time ago. Can you please remove this file too?
| attestation_pubkey: String, | ||
| #[allow(dead_code)] | ||
| #[serde(default)] | ||
| #[serde(default, alias = "proposalPubkey")] |
There was a problem hiding this comment.
I think you can just put #[serde(rename_all = "camelCase")] on top of struct, this should make all fields automatically renamed
| cd spec && uv run fill --clean --fork=Lstar --scheme prod || echo "run failed" | ||
| @for d in ./spec/fixtures/consensus/*/; do \ | ||
| f=$$(basename $$d); \ | ||
| rm -rf ./test_vectors/$$f/devnet ./test_vectors/$$f/lstar; \ | ||
| mkdir -p ./test_vectors/$$f/lstar; \ | ||
| cp -R $$d/lstar/. ./test_vectors/$$f/lstar/; \ | ||
| done |
There was a problem hiding this comment.
why this directory re-mapping is necessary? I was thinking that we may keep the same directory structure, as lean spec has?
There was a problem hiding this comment.
Only consensus/ emits the JSON fixtures we can actually consume interop/ and node/ are Python pytest suites that test the spec's own reference node, so there's nothing there for us to import.
Pinned leanSpec to f12000b, regenerated 554 test vectors from devnet/→lstar/, stripped Serialize/Deserialize from production wire types Block/Validator/State/etc so JSON-format absorption lives in test-side spec_test_fixtures wrappers, kept GenesisConfig derives for config.yaml startup; cargo test goes from 225/131 → 302/51.
Remaining 51 fails 31 fork_choice negative-signature tests where we intentionally skip block sig verification, 17 deferred to cross-language test-infra coordination 8 from a leanMultisig Rust↔Python pin and 9 http_api/api_endpoint tests needing leanSpec's shared XMSS pubkeys to compute matching genesis roots, and 3 bump-related follow-ups where leanSpec's genesis fixtures now drive post-genesis block evolution our runner doesn't process.