@particle-academy/fancy-conformance 0.22.0 → 0.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.22.
|
|
1
|
+
0.22.1
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@particle-academy/fancy-conformance",
|
|
3
|
-
"version": "0.22.
|
|
4
|
-
"description": "Shared cross-language conformance fixtures for the Fancy suite. One contract, N implementations, and a single table that every implementation asserts in its own CI
|
|
3
|
+
"version": "0.22.1",
|
|
4
|
+
"description": "Shared cross-language conformance fixtures for the Fancy suite. One contract, N implementations, and a single table that every implementation asserts in its own CI — so 'parity' is a test result rather than a claim. Ships the fixture data itself, so a Rust, Go or Python runner can consume it without a JavaScript toolchain.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/Particle-Academy/fancy-conformance.git"
|
package/runners/README.md
CHANGED
|
@@ -85,6 +85,15 @@ that reported green while covering nothing.
|
|
|
85
85
|
`Conformance::version()`. "We're on an old fixture set" should be visible in
|
|
86
86
|
the log rather than inferred months later.
|
|
87
87
|
|
|
88
|
+
**Reading the fixtures from git? Check out the tag you pin.** A consumer that
|
|
89
|
+
checks this repository out (an `actions/checkout` step, a git dependency) must
|
|
90
|
+
pin that checkout to `v<pinned version>`, never `main`, and keep a test that
|
|
91
|
+
fails when the ref and the pin disagree. Unpinned, every fixture release turns
|
|
92
|
+
every such consumer red at once for a reason none of its commits caused, and
|
|
93
|
+
nobody reads it: four Python ports sat red for weeks that way in 2026-09. The
|
|
94
|
+
pin is the contract, and moving it is a deliberate commit in the consumer. A
|
|
95
|
+
registry install gets this from a committed lockfile, and only from one.
|
|
96
|
+
|
|
88
97
|
## Adding a case
|
|
89
98
|
|
|
90
99
|
A new case lands **here first, red**, then in each implementation. Where an
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"gridWidthsEmu": "gridWidthsEmu(element, totalEmu) -> the <a:gridCol w> values, in order, as strings."
|
|
13
13
|
},
|
|
14
14
|
"runShape": {
|
|
15
|
-
"everyValueIsAString": "No golden in this file is a number. Fractional quantities are converted to the INTEGER unit the writer emits — font size and letter spacing in hundredths of a point, padding and border width in EMU — and then stringified. That removes float comparison from the suite entirely
|
|
15
|
+
"everyValueIsAString": "No golden in this file is a number. Fractional quantities are converted to the INTEGER unit the writer emits — font size and letter spacing in hundredths of a point, padding and border width in EMU — and then stringified. That removes float comparison from the suite entirely: a value in EMU or hundredths of a point is exactly what the writer emits, so no golden carries a tolerance question. (This note first said the loaders disagree on float comparison. That was already false when it was written: all four have compared exactly since 0.10.0.)",
|
|
16
16
|
"resolvedCell": "{ text, bold, italic, underline, color, fill, align, anchor, fontSizeHundredths, letterSpacingHundredths, caps, padding: {left,right,top,bottom}, borders: {left,right,top,bottom}, colSpan, rowSpan, merged }. Booleans are \"1\" / \"0\". `fill` is null when the cell has none. Each border is null when the cell has none on that side, otherwise { widthEmu, color, style }.",
|
|
17
17
|
"gridWidthsEmu": "An ordered array of strings."
|
|
18
18
|
},
|