Skip to content

Maintainability and bug fixing - #478

Merged
TimG1964 merged 22 commits into
JuliaData:masterfrom
TimG1964:AI-assisted-bug-fixing
Oct 19, 2026
Merged

TimG1964 merged 22 commits into
JuliaData:masterfrom
TimG1964:AI-assisted-bug-fixing

Conversation

@TimG1964

@TimG1964 TimG1964 commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Prepares v0.13.2. The full list of changes is in CHANGELOG.md; this is the overview.

What's in it

  • Code reorganisation. cellformats.jl and conditional-formats.jl are split into
    per-topic files under src/cellformats/ and src/conditionalformats/. Most of the
    diff is moved code; the logic change is about 1,700 lines.
  • Bug fixes. Mainly edge cases, including:
    • shared-formula reference shifting
    • hidden sheets becoming visible on save
    • sheet rename and delete affecting sheets with similar names
    • copysheet! sharing its cell cache with the original
    • an out-of-order range read that could corrupt memory
    • thread safety when reading styles
    • saving back to an IO source
  • New features.
    • setLegendPos / setLegendOverlay
    • chart and axis titles from a RichTextString, a styled string or a cell reference, for both Chart and ChartEx
    • one set of colour inputs (hex, Colors.jl, theme colours) accepted everywhere
  • Performance. Formatting setters compile once rather than once per set of keywords,
    and the precompile workload covers the common read and write paths: about 1 s for the
    first calls in a session rather than about 5.5 s.
  • Tests. Reorganised into topic files and run in a temporary directory. They now
    include Aqua checks. 7,773 @tests, up from 7,169.

Behaviour changes

  • openxlsx(f, source; mode="rw") no longer saves when the do-block throws.
  • Defined names holding a formula are read with a leading =, and a string value is
    written as a quoted text constant.
  • A negative number in a date-formatted cell is read as a number rather than throwing.
  • An unknown keyword to a formatting setter gives an XLSXError rather than a MethodError.
  • Sheet names that start with a digit or look like a cell address are quoted in references.
  • SheetCellRef is now exported.

@codecov-commenter

codecov-commenter commented Oct 19, 2026 •

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 96.57957% with 72 lines in your changes missing coverage. Please review.
✅ Project coverage is 97.40%. Comparing base (b8f8a74) to head (27c42a5).

Files with missing lines Patch % Lines
src/cellformat-helpers.jl 67.02% 31 Missing ⚠️
src/XLSX.jl 0.00% 8 Missing ⚠️
src/formula.jl 93.16% 8 Missing ⚠️
src/charts/chartprops.jl 94.80% 4 Missing ⚠️
src/cellformats/border.jl 97.08% 3 Missing ⚠️
src/cellformats/mergedcells.jl 97.90% 3 Missing ⚠️
src/charts/drawingml.jl 80.00% 3 Missing ⚠️
src/cellformats/widthheight.jl 98.67% 2 Missing ⚠️
src/conditionalformats/iconset.jl 98.43% 2 Missing ⚠️
src/workbook.jl 89.47% 2 Missing ⚠️
... and 6 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #478      +/-   ##
==========================================
- Coverage   97.81%   97.40%   -0.41%     
==========================================
  Files          34       48      +14     
  Lines       12368    12078     -290     
==========================================
- Hits        12098    11765     -333     
- Misses        270      313      +43     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@TimG1964
TimG1964 merged commit 9a168a9 into JuliaData:master Oct 19, 2026
16 checks passed
@TimG1964
TimG1964 deleted the AI-assisted-bug-fixing branch October 21, 2026 15:24
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