ETS Release 2.0.0: Fix critical persistence bugs and improve reliability #33
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.
Release: dream_ets v2.0.0
This release fixes critical bugs in dream_ets persistence operations and improves error handling across the module.
What's in This Release
Critical Bug Fixes
Persistence Operations Fixed:
save_to_file()andload_from_file()were completely non-functional due to FFI bugsokinstead of{ok, nil})Error Handling Improved:
Error(_)patterns that threw away error informationResultto handle decode errors gracefullyBreaking Changes
operations.keys():List(k)→Result(List(k), EtsError)operations.values():List(v)→Result(List(v), EtsError)operations.to_list():List(#(k,v))→Result(List(#(k,v)), EtsError)operations.size():Int→Result(Int, EtsError)Migration:
Rationale: These functions iterate and decode table data. If decoding fails (corrupt data, encoder changes), the old code would panic. Now users can handle errors gracefully.
Documentation & Testing
Test Coverage:
Documentation:
Impact Assessment
Breaking changes do NOT affect:
Only affects users of:
keys(),values(),to_list(),size()functionsTesting
All tests passing:
Total: 330 tests, 0 failures
Files Changed
57 files changed (+4000, -1417)
Release Checklist
Ready to merge and release to Hex.pm.