204: OTP 27 and Blend for Lib Maintainers
In this episode of the Thinking Elixir podcast, we sit down with Marcelo Dominguez, the driver behind the new "Blend" library, which assists Elixir library developers in testing their projects against multiple versions of dependencies. Marcelo explains the genesis of Blend and the inspiration from the Rubygem "appraisal." He discusses how Blend tackles the common headache of dependency version clashes and integrates smoothly with CI systems to isolate and report specific compatibility issues. We learn how it works under-the-hood and helps library maintainers more easily keep their promises of supporting a library used in diverse environments. We cover the motivations, complexities, and real-world applications of Blend and more! Show Notes online - http://podcast.thinkingelixir.com/204 Elixir Community News https://www.erlang.org/blog/highlights-otp-27/ – OTP 27 release highlights https://www.erlang.org/news/170 – OTP 27 release news https://github.com/erlang/otp/releases/tag/OTP-27.0 – OTP 27 release on GitHub https://en.wikipedia.org/wiki/OCSP_stapling – OCSP stapling explained https://x.com/chris_mccord/status/1791176778989424850 – Chris McCord shares upcoming Cockroach DB support in Phoenix 1.7 https://www.cockroachlabs.com/ – Cockroach Labs business solutions https://github.com/cockroachdb/cockroach – CockroachDB GitHub project https://www.cockroachlabs.com/docs/stable/licensing-faqs.html – Cockroach licensing FAQs https://x.com/josevalim/status/1792642875454259243 – José Valim's tweet on Elixir's 12th birthday celebration https://www.youtube.com/watch?v=epKeT8-hafE – YouTube livestream celebrating Elixir's 12th birthday José teased that an Elixir v1.17 RC might be ready. https://ew.com/pirates-of-the-caribbean-reboot-margot-robbie-movie-exclusive-8651023 – Pirates of the Caribbean reboot discussion... are we that old? https://elixirforum.com/t/ash-framework-3-0/63488 – Ash Framework 3.0 release https://www.reddit.com/r/elixir/s/HMUeyk8Ot3 – LiveToast discussion on Reddit https://github.com/srcrip/live_toast – LiveToast GitHub project https://toast.src.rip – LiveToast demo website https://nerves-project.typeform.com/sotnn-2024 Nerves is an open-source platform for building and deploying production embedded systems using Elixir. https://nerves-project.org/ – Nerves project website https://fly.io/phoenix-files/my-favorite-new-liveview-feature/ – Explanation of the useful new LiveView feature JS.toggle_class. ExDoc light mode possibly getting revamped. https://hexdocs.pm/elixir/main/protocols.html – Example of current dark mode on ExDoc even in light mode. https://erick.navarro.io/blog/simple-obs-client-in-elixir/ – Erick Navarro's post on controlling OBS using Elixir and websockets. https://obsproject.com/ – OBS - Open Broadcaster Software Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://github.com/mimiquate/blend https://rubygems.org/gems/appraisal – Blend was inspired by the Rubygem Appraisal https://github.com/mimiquate/blend?tab=readme-ov-file#Motivation – Motivation for creating the Blend library https://github.com/mimiquate/candlex https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs https://github.com/elixir-plug/plug_crypto/tags https://github.com/rack/rack-attack https://www.mimiquate.com/ https://github.com/elixir-plug/plug/blob/main/mix.exs#L54-L58 – Example of how multiple lockfiles are solved in Plug https://github.com/surface-ui/surface/blob/main/.github/workflows/ci.yml#L54-L56 – Example of how multiple lockfiles are solved in Surface https://github.com/sorentwo/oban/issues/1041 – Example of Oban issue from underlying dep version change https://github.com/sorentwo/oban/commit/f8d3478c27aea56ab01fcc42f13668f4a3516564 – Example where Oban's Ecto version needed to lock to Ecto v3.10 to support materialized cte Guest Information Marcelo Dominguez https://twitter.com/marpo60 – on Twitter https://github.com/marpo60/ – on Github https://www.mimiquate.com/ – Mimiquate agency that published Blend Find us online Message the show - @ThinkingElixir Message the show on Fediverse - @ThinkingElixir@genserver.social Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid Mark Ericksen on Fediverse - @brainlid@genserver.social David Bernheisel - @bernheisel David Bernheisel on Fediverse - @dbern@genserver.social Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!