Pre-registration polish: Date values, API docs, struct-layout and coverage tests - #29
Merged
Merged
Conversation
…ests - Cells with a date-only number format now come back as Date rather than DateTime (matching XLSX.jl); time-only formats keep returning Time for values below one day. Format classification distinguishes date, time and datetime formats for builtin ids and custom format strings. - Add a C struct layout test item asserting the size of every mirrored libxls struct on 64-bit platforms, plus a check that the loaded C library is the 1.6.x series (idea from PR #15). - Document the full API in the README (workbook/worksheet functions, cell value mapping, date systems, error codes, limitations) and add docstrings to all public functions; write v1.0.0 release notes. - Add tests for the C error reporting path, corrupt-file handling, serial rounding carry and other previously uncovered branches. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Final polish before tagging/registering v1.0.0.
Date values for date-only cells
Cells whose number format has no time component now come back as
Dateinstead ofDateTime(matching XLSX.jl's behavior); time-only formats keep returningTimefor values below one day, and everything else staysDateTime. Format classification distinguishes date, time and datetime formats for both builtin format ids and custom format strings (with correct handling ofmas month vs minute and ofAM/PMmarkers). This adopts the one part of the old draft PR #17 that the rewrite did not already cover.Downstream is unaffected: ExcelReaders normalizes
DatetoDateTimein its own value vocabulary, and both the ExcelReaders test suite (including the xls/xlsx cross-backend parity test) and the ExcelFiles test suite pass unchanged against this branch.Struct-layout tripwire (from PR #15)
A new test item asserts
sizeoffor every mirrored libxls struct on 64-bit platforms — the exact failure mode that makesc.jlfragile across libxls versions — and checks that the loaded C library is the 1.6.x series. This adopts the idea of the old CI-debug PR #15.Documentation
The README now documents the full API: workbook and worksheet functions, the cell-value mapping table, the date-format rules and both date systems, the
CellErrorcode table, and a Limitations section. All public functions have docstrings, and NEWS.md has v1.0.0 release notes.Coverage
Local line coverage after this PR is ~89% reported, with new tests for the C error reporting path (
expect/xls_getError), corrupt-file opening (valid OLE2 header, unparseable content), serial rounding carry, format-sniffer edge cases,showmethods,isopen, and closed-handle errors. The remaining uncovered lines are (a) function-definition-line artifacts of Julia's coverage counter, and (b) branches that cannot be exercised without authoring xls fixtures containing literal BOOLERR error cells or cached formula results, which requires Excel (plus defensive NULL-checks). Codecov note: the repository's last upload is from 2020 — theCODECOV_TOKENsecret may be missing or empty, worth checking.After merging
Tag as v1.0.0 (drop
-DEV) and register; then re-run CI on queryverse/ExcelReaders.jl#115. The two old draft PRs #15 and #17 are both superseded by this branch and can be closed.🤖 Generated with Claude Code