From 89acb5fa4af94db3bae0435e7a0466ddbb4c729c Mon Sep 17 00:00:00 2001 From: hhimanshu <6589036+hhimanshu@users.noreply.github.com> Date: Tue, 28 Jul 2026 15:44:57 +1200 Subject: [PATCH] test(conformance): enforce SPARKLINE's fixture coverage again SPARKLINE was added to the pending-fixture-verification set to break a tie between two CI rules that deadlock for any new function: the coverage guard wants rows before the function, and the fixture/code separation job forbids landing both in one PR. Its 115 pipeline-verified rows have now landed, so the exemption has done its job. Removing it matters more than it looks. An entry left in this set is not a note-to-self; it is a permanent hole in the guard, and the function it names is the one nobody will notice losing coverage. QUERY is a genuine long-term entry -- its rows do not exist yet. SPARKLINE's did, and were three PRs away. The comment now describes the three-PR sequence as the general procedure so the next new function follows it deliberately rather than rediscovering the deadlock. Refs #766 --- crates/core/tests/conformance.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/crates/core/tests/conformance.rs b/crates/core/tests/conformance.rs index c62065cec..7c80b0454 100644 --- a/crates/core/tests/conformance.rs +++ b/crates/core/tests/conformance.rs @@ -766,16 +766,16 @@ fn every_registered_function_has_conformance_coverage() { // fixture values are forbidden. Remove from this set once QUERY has // pipeline-verified fixture rows. // - // SPARKLINE (issue #766) is here for a different, purely mechanical reason: - // its 103 pipeline-verified rows exist and land in the immediately - // following fixtures-only PR. The "Check fixture / code separation" CI job - // rejects any PR touching both `fixtures/google_sheets/*.tsv` and code, and - // the two orderings deadlock — code first leaves a registered function with - // no rows (this test), fixtures first leaves rows for a function the engine - // does not have. This entry breaks that tie for exactly one merge, and is - // removed in the follow-up that lands the rows. - let pending_fixture_verification: std::collections::HashSet<&str> = - ["QUERY", "SPARKLINE"].iter().copied().collect(); + // A new function whose rows DO exist still cannot land in one PR: the + // "Check fixture / code separation" job rejects a PR touching both the + // canonical TSVs and code, so code-first leaves a registered function with + // no rows (this test) and fixtures-first leaves rows for a function the + // engine does not have. Add the name here for exactly that one merge, then + // remove it in a third PR once the rows have landed — otherwise the + // function stays permanently exempt from the very guard this test is. + // SPARKLINE (issue #766) went through that sequence and is enforced again + // as of this commit. + let pending_fixture_verification: std::collections::HashSet<&str> = ["QUERY"].iter().copied().collect(); let gdir = fixture_dir(); let vars: HashMap = HashMap::new();