@bldrs-ai/conway 1.325.1034 → 1.327.1045
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/README.md
CHANGED
|
@@ -177,20 +177,38 @@ Every PR is gated on two checks defined in `.github/workflows/build.yml`:
|
|
|
177
177
|
|
|
178
178
|
| Job | What it does |
|
|
179
179
|
|---|---|
|
|
180
|
-
| `build` | `yarn install`, WASM + TS compile (WASM cached on the `conway-geom` submodule SHA), `yarn test`, `yarn lint
|
|
181
|
-
| `run-ifc-regression` | `needs: build`. Reuses the same WASM cache. Runs the regression batch against the
|
|
180
|
+
| `build` | `yarn install`, WASM + TS compile (WASM cached on the `conway-geom` submodule SHA), `yarn test`, `yarn lint`, and a Tier-A geometry-digest check of the in-repo `data/` models against committed goldens. |
|
|
181
|
+
| `run-ifc-regression` | `needs: build`. Reuses the same WASM cache. Runs the regression batch against the public `test-models` ref (`TEST_MODELS_REF`, default `main`), pinned per-run to the resolved commit SHA; posts a per-PR comment with the resolved SHA + `failed.csv` / `errors.csv` / perf summaries, and uploads the candidate npm tarball + `perf.csv` as workflow artifacts. |
|
|
182
182
|
|
|
183
183
|
A merge to `main` re-runs those two jobs and then chains into `auto-publish` (see [Releases](#releases) below).
|
|
184
184
|
|
|
185
185
|
## Regression batch
|
|
186
186
|
|
|
187
|
-
The same batch the regression CI job runs can be invoked locally — see [regression/README.md](regression/README.md) for digest / verbose / batch modes and the catalog of model fixtures.
|
|
187
|
+
The same batch the regression CI job runs can be invoked locally — see [regression/README.md](regression/README.md) for digest / verbose / batch modes and the catalog of model fixtures. CI tracks `TEST_MODELS_REF` near the top of `build.yml` (default `main`), resolved to a commit SHA per run and recorded in the PR comment + job summary, so each run is reproducible without relying on test-models cutting tags.
|
|
188
|
+
|
|
189
|
+
### Tier A: in-repo quick-check models (`data/`)
|
|
190
|
+
|
|
191
|
+
The `build` job also runs a fast, hermetic geometry gate over every `data/*.ifc` model — no `test-models` clone and no token, so it protects every PR including forks. Each model's geometry digest (the same `ifc_regression_main.js -d` digest the batch produces) is diffed against its committed golden `data/<name>.csv`; a mismatch fails `build` with a re-bless hint. The goldens are checked in (generated by CI's pinned EMSDK toolchain), so the gate is **live**.
|
|
192
|
+
|
|
193
|
+
**Re-blessing an intended change.** Because the correct digest is only knowable from a CI run on the new code, the gate fails first: that same run uploads the recomputed digests as the `tierA-goldens-<run_id>` artifact, so you download it, commit the new `data/<name>.csv`, and push. One PR, but a fail-then-rebless round-trip rather than a single edit. A brand-new `data/*.ifc` model with no golden yet only warns (it doesn't fail) and emits its candidate digest the same way, to bootstrap.
|
|
188
194
|
|
|
189
195
|
## Performance benchmarks
|
|
190
196
|
|
|
191
197
|
**Tier 1 — Conway-only perf in CI (live).** Every regression run emits a `perf.csv` of `parseTimeMs / geometryTimeMs / totalTimeMs / rssMb / heapUsedMb / heapTotalMb` per model. The top-10 slowest are posted in the PR comment; the full CSV is uploaded as a workflow artifact. This piggybacks on the existing regression batch so cost is ~0 extra runner minutes.
|
|
192
198
|
|
|
193
|
-
**Tier 2 — full headless-three perf
|
|
199
|
+
**Tier 2 — full headless-three perf in CI (live).** Two jobs,
|
|
200
|
+
`perf-three-public` and `perf-three-private`, run on `push: main`
|
|
201
|
+
(`needs: run-ifc-regression`). Each downloads the candidate Conway tarball
|
|
202
|
+
that the regression job packed, clones [headless-three](https://github.com/bldrs-ai/headless-three)
|
|
203
|
+
at a pinned `H3_SHA`, and forces the whole H3 → adapter → conway chain onto
|
|
204
|
+
the candidate via a yarn `resolutions` override (no `yarn link`), then runs
|
|
205
|
+
`scripts/benchmark.cjs` to time every model. The public job posts a
|
|
206
|
+
per-model table to the merge's PR; the private job (`test-models-private`,
|
|
207
|
+
gated on `secrets.TEST_MODELS_PRIVATE_TOKEN`, never on PR events so forks
|
|
208
|
+
can't leak the secret) posts aggregate stats only, so no private model
|
|
209
|
+
names appear in the public thread. Both compute a cross-version delta vs
|
|
210
|
+
the previous `push: main` run (via the `.github/actions/perf-delta`
|
|
211
|
+
composite action) and upload the detail CSV as a workflow artifact.
|
|
194
212
|
|
|
195
213
|
|
|
196
214
|
# Releases
|
|
@@ -275,38 +293,23 @@ npm dist-tag add @bldrs-ai/conway@<VERSION> stable
|
|
|
275
293
|
|
|
276
294
|
# Roadmap
|
|
277
295
|
|
|
278
|
-
The CI / release pipeline is
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
org-scoped artifacts. Delta vs. the previous release lands in the
|
|
299
|
-
auto-publish summary.
|
|
300
|
-
|
|
301
|
-
### #315 — Bump pinned `TEST_MODELS_TAG`
|
|
302
|
-
|
|
303
|
-
The regression batch in `build.yml` is pinned to `test-models@0.13.802`.
|
|
304
|
-
If newer stable tags exist, bumping picks up coverage of more recent
|
|
305
|
-
fixtures. The bump itself is a one-line change; the work is triaging
|
|
306
|
-
whatever new diffs appear on a no-op PR run.
|
|
307
|
-
|
|
308
|
-
### #316 — CI waterfall
|
|
309
|
-
|
|
310
|
-
Mostly done: `build → run-ifc-regression` is in place and shares the
|
|
311
|
-
WASM cache. The only remaining piece is #314 above (the third leg of
|
|
312
|
-
the waterfall).
|
|
296
|
+
The CI / release pipeline is continuous and complete: `build` gates
|
|
297
|
+
`run-ifc-regression`, which gates the headless-three perf jobs, and every
|
|
298
|
+
green merge to `main` auto-publishes (see [Releases](#releases)). The
|
|
299
|
+
umbrella waterfall (#316) and performance-in-CI (#314) issues are closed.
|
|
300
|
+
The optional follow-ups below remain.
|
|
301
|
+
|
|
302
|
+
### Headless-three perf on PRs
|
|
303
|
+
|
|
304
|
+
The `perf-three-public` / `perf-three-private` jobs run on `push: main`
|
|
305
|
+
only — to keep PR wall-time down and to keep the private-models token off
|
|
306
|
+
PR events (forks can't be trusted with it). Running them per-PR, behind a
|
|
307
|
+
gate that withholds the private job from fork PRs, would catch H3
|
|
308
|
+
render-time regressions before merge instead of just after.
|
|
309
|
+
|
|
310
|
+
### Golden `errors.csv` diffing + regression renders (#288)
|
|
311
|
+
|
|
312
|
+
Fail a PR when its `errors.csv` diverges from a checked-in golden — "New
|
|
313
|
+
errors detected. Copy errors.csv to golden/errors.csv to accept changes"
|
|
314
|
+
— and attach per-model renders to the regression comment so geometry
|
|
315
|
+
regressions are visible without downloading artifacts.
|
|
@@ -69608,7 +69608,7 @@ var IfcStepParser = class extends StepParser {
|
|
|
69608
69608
|
IfcStepParser.Instance = new IfcStepParser();
|
|
69609
69609
|
|
|
69610
69610
|
// compiled/src/version/version.js
|
|
69611
|
-
var versionString = "Conway Web-Ifc Shim v1.
|
|
69611
|
+
var versionString = "Conway Web-Ifc Shim v1.327.1045";
|
|
69612
69612
|
|
|
69613
69613
|
// compiled/src/statistics/statistics.js
|
|
69614
69614
|
var Statistics = class {
|
|
@@ -85869,7 +85869,7 @@ var IfcSceneBuilder = class {
|
|
|
85869
85869
|
};
|
|
85870
85870
|
|
|
85871
85871
|
// compiled/src/version/version.js
|
|
85872
|
-
var versionString = "Conway Web-Ifc Shim v1.
|
|
85872
|
+
var versionString = "Conway Web-Ifc Shim v1.327.1045";
|
|
85873
85873
|
|
|
85874
85874
|
// compiled/src/statistics/statistics.js
|
|
85875
85875
|
var Statistics = class {
|
|
@@ -69606,7 +69606,7 @@ var IfcStepParser = class extends StepParser {
|
|
|
69606
69606
|
IfcStepParser.Instance = new IfcStepParser();
|
|
69607
69607
|
|
|
69608
69608
|
// compiled/src/version/version.js
|
|
69609
|
-
var versionString = "Conway Web-Ifc Shim v1.
|
|
69609
|
+
var versionString = "Conway Web-Ifc Shim v1.327.1045";
|
|
69610
69610
|
|
|
69611
69611
|
// compiled/src/statistics/statistics.js
|
|
69612
69612
|
var Statistics = class {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const versionString = 'Conway Web-Ifc Shim v1.
|
|
1
|
+
const versionString = 'Conway Web-Ifc Shim v1.327.1045';
|
|
2
2
|
export { versionString };
|