Skip to content

Score WolfXL calc results from calculate(); rank Community 2.0.7 and Commercial 2.3.0 - #49

Merged
wolfiesch merged 10 commits into
masterfrom
fix/calc-wolfxl-scoring
Oct 2, 2026
Merged

wolfiesch merged 10 commits into
masterfrom
fix/calc-wolfxl-scoring

Conversation

@wolfiesch

@wolfiesch wolfiesch commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • The calc lane scores the values calculate() returns and reports separately how many correct values save() writes into the workbook (new "Saved to file" column).
  • Each engine result records its version. Non-registry installs are labeled (local build, editable build, VCS commit), so a local build is never reported as the release it shares a version with.
  • New wolfxl-commercial engine runs the Commercial build in a separate interpreter named by EXCELBENCH_WOLFXL_COMMERCIAL_PYTHON, because both editions install as wolfxl.
  • uv.lock moves to WolfXL Community 2.0.7.
  • results-2026-10-02/calc rerun: Community 2.0.7 133/133 computed, 0/133 saved; Commercial 2.3.0 133/133 computed and saved; LibreOffice 133/133; Aspose.Cells FOSS 25/133; Zavora 0/133.
  • Engine notes in the calc report render below the table instead of splitting it.

Verification

tests/test_calc_suite.py and tests/test_env_fallback_contracts.py pass; the new scoring and report-layout tests fail before their fixes.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

A local WolfXL wheel carried a release version string while running
different code, so the calc lane could not show which build produced a
score. Each engine now reports its version; Python packages installed
from a local build, editable checkout, or VCS are labeled as such
without recording paths or URLs.
…ately

WolfXL returns calculated values from its API. Whether save() writes them
into the file as cached values depends on the build, so scoring only the
saved file reported 0 for builds whose calculations were correct. The calc
lane now scores the returned values and records how many matching values
the saved file carries in a separate Saved to file column.
WolfXL Commercial and Community both install as wolfxl, so the Commercial
build runs in the interpreter named by EXCELBENCH_WOLFXL_COMMERCIAL_PYTHON
and reports its version, install source, and calculated values over JSON.
The calc lane ranks both builds in one run.

The calc fallback-contract fakes gain the version() method the suite has
required since engine versions were recorded.
Community 2.0.7 from PyPI returns 133/133 from calculate() and writes no
calculated values on save (0/133 saved). Commercial 2.3.0 returns and
saves 133/133. Engine notes now render below the report table instead of
splitting it.
Copilot AI balanced review requested due to automatic review settings October 2, 2026 11:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Version probing can abort the suite, while public and architectural documentation contradicts the new results and semantics.

Review effort: Balanced
Findings: 1 High severity · 2 Low severity

Open (3)
What changed in this PR

Updates the calc lane to score API-returned values separately from persisted values and adds isolated WolfXL Commercial execution.

Changes:

  • Adds version/source reporting and Commercial subprocess support.
  • Separates calculated and saved-value scores.
  • Refreshes WolfXL 2.0.7/2.3.0 results and tests.
File Description
uv.lock Upgrades WolfXL to 2.0.7.
src/​excelbench/​harness/​calc.py Implements scoring, versions, and Commercial engine.
src/​excelbench/​results/​calc_renderer.py Adds version and saved-value columns.
tests/​test_calc_suite.py Tests new scoring and subprocess behavior.
tests/​test_env_fallback_contracts.py Updates fake engine protocol.
results-2026-10-02/​calc/​results.json Records refreshed results.
results-2026-10-02/​calc/​README.md Publishes refreshed calc report.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/excelbench/harness/calc.py
Comment thread results-2026-10-02/calc/README.md
Comment thread src/excelbench/harness/calc.py
One engine now carries one version across every lane of a snapshot.
A calc-only snapshot needs its own run metadata; the calc lane previously
borrowed both from the xlsx lane.
A failing version probe now records None instead of aborting the suite.
README, snapshot manifest, architecture, and DEC-028 describe the calc
rerun, API-result scoring, and the Commercial interpreter.
@wolfiesch
wolfiesch merged commit b453355 into master Oct 2, 2026
6 checks passed
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