Skip to content

Split src/XML.jl into dedicated files (pure moves, no behavior change)#81

Merged
mathieu17g merged 6 commits into
mainfrom
src-layout
Jul 5, 2026
Merged

Split src/XML.jl into dedicated files (pure moves, no behavior change)#81
mathieu17g merged 6 commits into
mainfrom
src-layout

Conversation

@mathieu17g

Copy link
Copy Markdown
Collaborator

Splits the src/XML.jl monolith (1409 lines, 18 banner-delimited sections) into dedicated files, matching the existing satellite style (lazynode.jl/cursor.jl/xpath.jl):

File Lines Content
escape.jl 62 ESCAPE_CHARS + escape/unescape
node.jl 469 NodeType, Attributes, Node, accessors, navigation, equality, indexing, mutation, REPL show
write.jl 177 the XML writer + XML.write entry points
parse.jl 243 BOM normalization, Base.read entry points, the parser
dtd.jl 349 DTD/DOCTYPE parsing
XML.jl 114 module header, exports, commented include manifest (the order documents the dependency contract), h builder, deprecations

Every extraction is a pure move — one commit per file, the full test suite green at each commit, +5 lines total across src/ (the include statements), zero API or behavior change. The satellite includes that sat mid-file (a historical accident — nothing after them depends on the lazy readers at load time) are hoisted into the manifest, and a slot is reserved for the planned v0.5 flatnode.jl reader.

⚠️ Please merge with a merge commit, not squash — the value of this PR is its per-file pure-move commit sequence (reviewable one hunk at a time, and git blame -C stays navigable). A squash would collapse it into one ~1300-line unreadable diff.

Assisted-by: Claude (Anthropic)
….jl (pure move)

Assisted-by: Claude (Anthropic)
…on and REPL show into src/node.jl (pure move)

The satellite reader includes (xpath/lazynode/cursor), which sat mid-file
inside the navigation section, are hoisted next to include("node.jl") —
nothing after them depends on the lazy readers at load time.

Assisted-by: Claude (Anthropic)
The include order is documented as the dependency contract, with a slot
reserved for the future flatnode.jl reader (v0.5). dtd.jl joins the
manifest block (it had stayed at its original position after extraction).

Assisted-by: Claude (Anthropic)
@codecov-commenter

codecov-commenter commented Jul 5, 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 94.27754% with 40 lines in your changes missing coverage. Please review.
✅ Project coverage is 94.47%. Comparing base (f3a7290) to head (c614e13).

Files with missing lines Patch % Lines
src/dtd.jl 87.09% 28 Missing ⚠️
src/node.jl 95.83% 8 Missing ⚠️
src/parse.jl 98.60% 2 Missing ⚠️
src/write.jl 98.42% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main      #81   +/-   ##
=======================================
  Coverage   94.47%   94.47%           
=======================================
  Files           6       11    +5     
  Lines        1793     1793           
=======================================
  Hits         1694     1694           
  Misses         99       99           
Files with missing lines Coverage Δ
src/XML.jl 100.00% <ø> (+5.45%) ⬆️
src/escape.jl 100.00% <100.00%> (ø)
src/parse.jl 98.60% <98.60%> (ø)
src/write.jl 98.42% <98.42%> (ø)
src/node.jl 95.83% <95.83%> (ø)
src/dtd.jl 87.09% <87.09%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mathieu17g mathieu17g merged commit a3f57d8 into main Jul 5, 2026
8 checks passed
@mathieu17g mathieu17g deleted the src-layout branch July 5, 2026 16:13
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