chore: fill in the 0.5.0 changelog from git history - #52
Merged
Conversation
Three things shipped since 0.4.9 that the entry never mentioned: the MultiLayer cross-node coordinator (#49), Elixir 1.20 support (#47), and the RefreshAhead side of the adapter-aware encoding work. Also records what 1.20 support cost — the minimum Elixir moved to ~> 1.15, credo moved to 1.7.18 and :faker is gone — under Breaking Changes and a new Chores section, since a consumer on 1.11 finds out at compile time otherwise.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #52 +/- ##
=======================================
Coverage 83.87% 83.87%
=======================================
Files 24 24
Lines 707 707
=======================================
Hits 593 593
Misses 114 114 ☔ View full report in Codecov by Harness. |
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.
Walked
git log 523a121..main(the 0.4.9 version bump to now) and diffed every touched file against the 0.5.0 entry. Four commits landed in that range; three of them were only partly written up.7ad44eeroutesandbox_sleep_msthroughCache.Config043ddbesupport Elixir 1.20 (#47)9caae9cMultiLayer cross-node coherence (#49)c7765ceadapter-aware term encoding (#48, includes #50 and #51)Added
Features
feat(multi_layer)— theCoordinator, the:pggroup,broadcast_mode: :invalidate | :replicate,broadcast_layers, and the best-effort delivery contract (TTLs stay the correctness floor).feat— Elixir 1.20 support, including what changed in the generated code: oneadapter_options!/1clause per configured opts shape instead of a clause per shape plus a catch-all, and the{:error, _}branches 1.20 proves unreachable dropped from the generatedget/1.Performance
Cache.RefreshAheadresolves encoding against the adapter it wraps, so RefreshAhead over ETS stops encoding too. Part of perf: stop encoding terms for adapters that store them natively #48, not previously written up.Breaking Changes
~> 1.15, up from~> 1.11. A consumer on 1.11 currently finds this out from a compile error.Chores (new section)
:credo1.7.13 -> 1.7.18 in the lock — 1.7.13 crashes on 1.20's sigil token format, and the newer one flagged alength/1 > 0check now written!== [].:fakerdropped — it does not compile on 1.20 (raw U+0085 is a hard syntax error there); three random-string helpers moved totest/support.:preferred_cli_envmoved intodef cli/0.Testrun onmainfrom 2026-08-02.Coverage check
Every file changed since the 0.4.9 bump now maps to an entry:
cache.ex,term_encoder.ex,agent.ex,con_cache.ex,counter.ex,dets.ex,ets.ex,persistent_term.ex,redis.ex,sandbox.ex→ the encoding entries.multi_layer.ex+multi_layer/coordinator.ex→ the new feature entry.refresh_ahead.ex→ the new perf line.mix.exs→ the Elixir requirement and the Chores section.config.ex+sandbox_registry.ex→ the existing 0.4.9 entry.One thing to decide
Hex's latest published version is 0.4.8 — 0.4.9 was never tagged or released, so its section ships together with 0.5.0 whenever 0.5.0 goes out. Worth deciding whether to fold the 0.4.9 entry into 0.5.0 or leave both headings. I left them as they are.