BartOtten

BartOtten

Routex 1.3.2 has been released. It’s main focus was getting rid of warnings in Elixir 1.20 and completing a long standing todo to overhaul the macro branching module.

Bug Fixes:

  • core: matchable type warning in Elixir 1.20+ (#123) by @Rubas (tnq!)
  • core: unneeded require warnings in Elixir 1.20+

Soft Deprecation:

refactor(core): Routex.Branching overhaul

This change is (only) significant for extension developers. Parameter were
reordered and some option have been renamed (the old names are soft deprecated).
Please migrate your extensions when seeing deprecation messages.

IMPROVED:

  • Simplified transformer option format for better ergonomics
  • Comprehensive documentation with additional real-world examples
  • Clearer naming conventions across the API
  • Better type specifications and parameter descriptions
  • Extended tests

SOFT DEPRECATIONS:

  • Transformer return value :skip is deprecated in favor of :noop for clarity

  • New parameters order for improved cognitive flow (old order soft deprecated)

  • Options have been renamed for clarity:

    • :as → :name_branched
    • :orig → :name_passthrough
    • :arg_pos → :param_position

MIGRATION GUIDE:

  • Rename options (see above):
    Routex.Branching.branch_macro(… , param_position: fn arity → arity - 1 end)

  • Replace :skip with :noop in transformer functions:

    def my_transformer(pattern, arg) do
      if should_skip?(pattern), do: :noop, else: arg
    end
    
  • Replace MFA transformer options with the new format, the value of extra arguments should
    be put in the transformer functions themselves:

old:
*_transformer: {__MODULE__.Transformers, :transform_arg, [:foo]}

new:
*_transformer: &__MODULE__.Transformers.transform_clause/2

def my_transformer(pattern, arg) do
  arg <> to_string(:foo)
end

And an image for the imagination.

Where Next? Top

Trending in News & Updates Top

Jskalc
LiveVue v1.0 released After four release candidates and a lot of community feedback, LiveVue 1.0 is stable :tada: I’ve built a dedicated...
New
woylie
<span class="hashtag-icon-placeholder"></span>let-me 3.0.4 has been released. Changed Log the policy module and the check module in the...
New
zachdaniel
Your standard application generally only tracks what is true right now. Updates overwrite previous data, and asking questions about the p...
New
webofbits
Aludel 0.8.0 is now available on GitHub and Hex. This release adds typed_judge assertions for evaluations that need deterministic, struc...
New
woylie
Flop Phoenix 0.27.0 has been released. Changed Require Flop 0.29.0, which turns Flop.Schema from a protocol into a behaviour. Determin...
New
woylie
Flop 0.29.0 has been released. Added Add Flop.allowed_fields/2, which returns the fields that may be filtered or sorted for the given ...
New
woylie
Doggo 0.16.1 has been released. Changed The expanded attribute of the tree_item is now handled as initial state only and cannot be upd...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews