Skip to content

Major changes - #3

Merged
VladimirBorodko merged 1 commit into
mainfrom
rework
Oct 16, 2026
Merged

VladimirBorodko merged 1 commit into
mainfrom
rework

Conversation

@VladimirBorodko

@VladimirBorodko VladimirBorodko commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Reworks Codable tree encoding, numeric conversions, and merging, and introduces composable Codec strategies.

  • Rewrites encoder and decoder containers, fixing coding paths, index advancement, and conflicting writes. Container conflicts invalidate encoding; direct write errors remain catchable.
  • Adds Codec.Box, OptionalBox, Each, Either, and strategy composition for collections, optionals, and Result. Includes strategies for Data, URL, Date, canonical Float representation, and keyed dictionaries.
  • Unifies numeric equality and conversions, adds Int128/UInt128 support, widens Float values exactly to Double, and fixes Linux NSDecimalNumber conversion.
  • Adds MergePolicy with configurable value and array handling. Nonthrowing merges reuse uniquely owned storage; throwing merges preserve the original tree on failure.
  • Clarifies path mutation behavior, adds deterministic allPaths traversal, and expands Swift/Foundation value bridging.
  • Adds contract tests, DocC guides, executable documentation examples, and benchmarks.
  • Configures Swift 6.3.3 CI on macOS and Linux, including Debug/Release tests, a 95% coverage gate, documentation builds, and manually dispatched releases with API compatibility checks and documentation publishing.

Breaking changes: raises the minimum Swift version from 6.0 to 6.3, removes Enigma.float, and replaces the previous Enigma.Prod* and Enigma.Sum* APIs with composition types in Codec.

Validation: Debug and Release functional tests each pass (182 tests, excluding PerformanceTests); all 19 Python script tests pass. Local validation used Apple Swift 6.4 with full Xcode. The squashed commit preserves the previous branch's file contents exactly.

Rebuild Codable containers and Foundation bridging with consistent coding
paths, numeric conversions, and Int128/UInt128 support. Add merge policies,
deterministic traversal, and composable Codec wrappers and strategies.

Expand contract tests, benchmarks, and DocC guides. Add cross-platform CI,
coverage checks, and validated release and documentation publishing workflows.

Breaking changes: require Swift 6.3, remove Enigma.float, and replace the
Enigma.Prod and Enigma.Sum composition APIs with Codec composition types.
@VladimirBorodko VladimirBorodko changed the title Major update Major changes Oct 16, 2026
@VladimirBorodko
VladimirBorodko merged commit b28cb62 into main Oct 16, 2026
@VladimirBorodko
VladimirBorodko deleted the rework branch October 16, 2026 10:16
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