# SwiftSheets 2.1.1 validation record

2.1.1 is a patch release limited to how the XLSX reader expands shared formulas (implementation-spec Appendix
B.115). The maintainer authorized the release on 2026-10-23 after the automated checks plus one native Excel check
of shared formulas. The manual checklist in [MAINTENANCE.md](../MAINTENANCE.md) was not repeated; its items cover
behaviour this release does not change, and they are not counted as passes. The default checklist still applies to
subsequent releases.

## Automated checks

The full `swift test` suite, the generated-page `--check` commands, `Tests/OpenpyxlParity/check.py` and the
public-document and fixture detectors ran on the release commit, and CI ran on macOS and Linux. New regressions
cover sheet-qualified cells, whole rows and columns, absolute parts, the sheet edge and a read/write round trip;
they fail on the 2.1.0 reader. openpyxl's `test_shared_formula` is adapted in the parity ledger. The openpyxl
interoperability script was not run: openpyxl does not write shared formulas, so it does not exercise this change.

## Native Excel observations

Excel for Mac 16.114.1 (26102031), unactivated and therefore read-only, opened synthetic packages on 2026-10-23.

- `SUM(D:D)` shared over A1:B1 showed `=SUM(E:E)` in B1, and `SUM(5:5)` shared over A1:A2 showed `=SUM(6:6)`
  in A2. `$A1+A$1` shared over D1:D2 showed `=$A2+A$1` in D2. The 2.1.1 reader gives the same text; the 2.1.0
  reader left the whole-column and whole-row followers unmoved.
- A shared formula naming another sheet (`Data!A1*2` shared over A1:A3, with or without cached values) made
  Excel request repair, and the repair removed those formulas. Excel therefore gives no follower text to compare
  for that case. The reader moves such references by the same rule as unqualified ones; this is not
  Excel-confirmed.
- A SwiftSheets rewrite of a workbook holding all of these groups opened without repair. Its ordinary formulas
  (`Data!A2*2`, `SUM(Data!B:B)`, `SUM(Data!2:2)` and the rest) were shown as written, and Excel calculated the
  expected values (for example 4, 60 and 222).

Editing and saving in Excel were outside the read-only scope.
