Skip to content

build(deps): the language pin carries the case-partition decision procedure - #1231

Closed
FBumann wants to merge 1 commit into
feat/position-operatorfrom
feat/expression-case-partition-check
Closed

FBumann wants to merge 1 commit into
feat/position-operatorfrom
feat/expression-case-partition-check

Conversation

@FBumann

@FBumann FBumann commented Aug 22, 2026 •

Copy link
Copy Markdown
Collaborator

Prompt: "I want to update the repo to the latest changes in mathspec. Look at the 3 open draft PRs. Do PRs adopting the fixes and features. Stacked. Pin the hash in them."

Note

The following content was generated by AI.

Second of three. Stacked on #1230; adopts energy-models/math-spec#33, which adds check_partition(cases, schema) — the decision procedure that answers whether a set of when: masks is disjoint, exhaustive and free of dead cases, with no data bound.

This one is the pin and nothing else, and that is the whole finding. #33 adds a single self-contained module and wires it into no schema key: cases: is not yet something expressions: accepts, which #33 says outright and defers to #36. So it changes no surface this package parses, no AST node either lane walks, and no error text a user of this package can reach. There is nothing here to adopt beyond standing on the base that #36 needs — and the useful claim a consumer can make about it is the negative one, checked rather than assumed.

What changed

The math-spec pin moves from d414e87 (#31's head) to bd2dcdb (#33's head), and the comment beside it names what the commit now carries.

Verified

Full suite on Python 3.12, HiGHS: 2965 passed, 323 skipped, 1 xfailed — identical, test for test, to #1230's run beneath it. ruff check and ruff format --check clean.

The 10 failures are the gurobi and xpress sinks, whose wheels are not installed in this container; they fail the same way on main and are unrelated to the pin.

Not checked: those two sinks, and the typst golden tests, which skip for want of the binary. No measurement was taken and none is claimed.

Deliberately not done

  • check_partition is not called from this package. It is upstream's to run during validation, which is what feat: API polish — check(), write(), LanguageError, Solution lifecycle #36 wires up; a second caller here would be a second place the same claim is made.
  • No test asserts the module imports. A test whose subject is that a dependency contains a file is a test of the pin, and the pin is one line above it in the same tree.

Stays a draft while #1230 is. The pin advances again in the PR above this one, which is where cases: becomes something a model can write.

@read-the-docs-community

read-the-docs-community Bot commented Aug 22, 2026 •

Copy link
Copy Markdown

@codspeed

codspeed Bot commented Aug 22, 2026 •

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 16 untouched benchmarks
⏩ 42 skipped benchmarks1


Comparing feat/expression-case-partition-check (ee17432) with feat/position-operator (a4f8ff9)

Open in CodSpeed

Footnotes

  1. 42 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

…cedure

Co-Authored-By: Claude <noreply@anthropic.com>
@FBumann
FBumann force-pushed the feat/expression-case-partition-check branch from f40ceb7 to ee17432 Compare August 23, 2026 09:45

FBumann commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator Author

Note

The following content was generated by AI.

Folded into #1232 and closed unmerged. Nothing is lost: this PR moved the math-spec pin to bd2dcdb (math-spec#33's head) and carried no other change, and the upstream stack is linear —

d414e87 (#31)  ancestor of  bd2dcdb (#33)  ancestor of  ea759fb (#36)

— so #1232's pin already contains #33's commits. The waypoint gated nothing, and #1232's pin comment names all three upstream PRs.

What this drops is the record that the suite was green against #33's head in isolation. That check was "nothing broke", and #1232 re-establishes it against a strict superset.

The stack is now #1230 → #1232.


Generated by Claude Code

@FBumann FBumann closed this Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants