Regression testing gets sharper, and full cp313 wheels land for nlpengine

Light week on commit count but real, useful work in two areas: tightening up regression testing in the VS Code extension, and finally getting complete Python wheel coverage for the nlpengine package.

Regression testing in VS Code

If you’ve been using the analyzer view, you’ll notice a new “Run Regression Test (All Files)” button — previously you could run regressions but it wasn’t a one-click, whole-tree operation. Now you can blow through your entire test set without hunting for individual files.

I also fixed a bug in the “bless” workflow (where you accept current output as the new golden/expected result) — it was warning even when there were no existing goldens to compare against, which is noisy and wrong. Now it only warns when there’s actually something to overwrite. Small fix, but if you rely on bless-and-check cycles for grammar development, this removes a false alarm you’d otherwise have to mentally filter out every time.

That shipped as vscode-nlp v3.1.30.

nlpengine: full macOS wheel coverage through cp313

On the Python packaging side, I bumped cibuildwheel from v2.19.2 to v2.23.4 specifically to get cp313 wheel builds working — the older cibuildwheel didn’t know how to target it yet. Once that was sorted, I built out full cp310–cp313 wheels for macOS via cibuildwheel, so anyone on Python 3.13 can now pip install nlpengine without falling back to a source build.

This went out across three releases this week — v2.0.22, v2.1.0, and v2.1.1 — as I iterated on getting the build matrix right. If you pulled one of the earlier ones and hit build issues on 3.13, grab v2.1.1, that’s the one with the full wheel set.

Why this matters

Neither of these is a flashy feature, but both remove friction that adds up over time: regression testing that just works without fiddly false warnings, and Python installs that don’t require a compiler toolchain on every machine. That’s the boring-but-important infrastructure that makes it easier to actually spend time writing grammars instead of fighting tooling.

Next

I want to keep chipping away at the regression testing UX in VS Code — there’s more to clean up there — and I’ll be watching the nlpengine wheels for any platform reports before I consider that packaging work done. As always, if you hit something weird on your setup, post it here.