204: OTP 27 and Blend for Lib Maintainers

Release Date:

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 (http://podcast.thinkingelixir.com/204)
Elixir Community News
- https://www.erlang.org/blog/highlights-otp-27/ (https://www.erlang.org/blog/highlights-otp-27/?utm_source=thinkingelixir&utm_medium=shownotes) – OTP 27 release highlights
- https://www.erlang.org/news/170 (https://www.erlang.org/news/170?utm_source=thinkingelixir&utm_medium=shownotes) – OTP 27 release news
- https://github.com/erlang/otp/releases/tag/OTP-27.0 (https://github.com/erlang/otp/releases/tag/OTP-27.0?utm_source=thinkingelixir&utm_medium=shownotes) – OTP 27 release on GitHub
- https://en.wikipedia.org/wiki/OCSP_stapling (https://en.wikipedia.org/wiki/OCSP_stapling?utm_source=thinkingelixir&utm_medium=shownotes) – OCSP stapling explained
- https://x.com/chris_mccord/status/1791176778989424850 (https://x.com/chris_mccord/status/1791176778989424850?utm_source=thinkingelixir&utm_medium=shownotes) – Chris McCord shares upcoming Cockroach DB support in Phoenix 1.7
- https://www.cockroachlabs.com/ (https://www.cockroachlabs.com/?utm_source=thinkingelixir&utm_medium=shownotes) – Cockroach Labs business solutions
- https://github.com/cockroachdb/cockroach (https://github.com/cockroachdb/cockroach?utm_source=thinkingelixir&utm_medium=shownotes) – CockroachDB GitHub project
- https://www.cockroachlabs.com/docs/stable/licensing-faqs.html (https://www.cockroachlabs.com/docs/stable/licensing-faqs.html?utm_source=thinkingelixir&utm_medium=shownotes) – Cockroach licensing FAQs
- https://x.com/josevalim/status/1792642875454259243 (https://x.com/josevalim/status/1792642875454259243?utm_source=thinkingelixir&utm_medium=shownotes) – José Valim's tweet on Elixir's 12th birthday celebration
- https://www.youtube.com/watch?v=epKeT8-hafE (https://www.youtube.com/watch?v=epKeT8-hafE?utm_source=thinkingelixir&utm_medium=shownotes) – 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 (https://ew.com/pirates-of-the-caribbean-reboot-margot-robbie-movie-exclusive-8651023?utm_source=thinkingelixir&utm_medium=shownotes) – Pirates of the Caribbean reboot discussion... are we that old?
- https://elixirforum.com/t/ash-framework-3-0/63488 (https://elixirforum.com/t/ash-framework-3-0/63488?utm_source=thinkingelixir&utm_medium=shownotes) – Ash Framework 3.0 release
- https://www.reddit.com/r/elixir/s/HMUeyk8Ot3 (https://www.reddit.com/r/elixir/s/HMUeyk8Ot3?utm_source=thinkingelixir&utm_medium=shownotes) – LiveToast discussion on Reddit
- https://github.com/srcrip/live_toast (https://github.com/srcrip/live_toast?utm_source=thinkingelixir&utm_medium=shownotes) – LiveToast GitHub project
- https://toast.src.rip (https://toast.src.rip?utm_source=thinkingelixir&utm_medium=shownotes) – LiveToast demo website
- https://nerves-project.typeform.com/sotnn-2024 (https://nerves-project.typeform.com/sotnn-2024?utm_source=thinkingelixir&utm_medium=shownotes)
- Nerves is an open-source platform for building and deploying production embedded systems using Elixir.
- https://nerves-project.org/ (https://nerves-project.org/?utm_source=thinkingelixir&utm_medium=shownotes) – Nerves project website
- https://fly.io/phoenix-files/my-favorite-new-liveview-feature/ (https://fly.io/phoenix-files/my-favorite-new-liveview-feature/?utm_source=thinkingelixir&utm_medium=shownotes) – Explanation of the useful new LiveView feature JS.toggle_class.
- ExDoc light mode possibly getting revamped.
- https://hexdocs.pm/elixir/main/protocols.html (https://hexdocs.pm/elixir/main/protocols.html?utm_source=thinkingelixir&utm_medium=shownotes) – Example of current dark mode on ExDoc even in light mode.
- https://erick.navarro.io/blog/simple-obs-client-in-elixir/ (https://erick.navarro.io/blog/simple-obs-client-in-elixir/?utm_source=thinkingelixir&utm_medium=shownotes) – Erick Navarro's post on controlling OBS using Elixir and websockets.
- https://obsproject.com/ (https://obsproject.com/?utm_source=thinkingelixir&utm_medium=shownotes) – OBS - Open Broadcaster Software
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com)
Discussion Resources
- https://github.com/mimiquate/blend (https://github.com/mimiquate/blend?utm_source=thinkingelixir&utm_medium=shownotes)
- https://rubygems.org/gems/appraisal (https://rubygems.org/gems/appraisal?utm_source=thinkingelixir&utm_medium=shownotes) – Blend was inspired by the Rubygem Appraisal
- https://github.com/mimiquate/blend?tab=readme-ov-file#Motivation (https://github.com/mimiquate/blend?tab=readme-ov-file#Motivation?utm_source=thinkingelixir&utm_medium=shownotes) – Motivation for creating the Blend library
- https://github.com/mimiquate/candlex (https://github.com/mimiquate/candlex?utm_source=thinkingelixir&utm_medium=shownotes)
- https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs (https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/elixir-plug/plug_crypto/tags (https://github.com/elixir-plug/plug_crypto/tags?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/rack/rack-attack (https://github.com/rack/rack-attack?utm_source=thinkingelixir&utm_medium=shownotes)
- https://www.mimiquate.com/ (https://www.mimiquate.com/?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/elixir-plug/plug/blob/main/mix.exs#L54-L58 (https://github.com/elixir-plug/plug/blob/main/mix.exs#L54-L58?utm_source=thinkingelixir&utm_medium=shownotes) – Example of how multiple lockfiles are solved in Plug
- https://github.com/surface-ui/surface/blob/main/.github/workflows/ci.yml#L54-L56 (https://github.com/surface-ui/surface/blob/main/.github/workflows/ci.yml#L54-L56?utm_source=thinkingelixir&utm_medium=shownotes) – Example of how multiple lockfiles are solved in Surface
- https://github.com/sorentwo/oban/issues/1041 (https://github.com/sorentwo/oban/issues/1041?utm_source=thinkingelixir&utm_medium=shownotes) – Example of Oban issue from underlying dep version change
- https://github.com/sorentwo/oban/commit/f8d3478c27aea56ab01fcc42f13668f4a3516564 (https://github.com/sorentwo/oban/commit/f8d3478c27aea56ab01fcc42f13668f4a3516564?utm_source=thinkingelixir&utm_medium=shownotes) – 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 (https://twitter.com/marpo60?utm_source=thinkingelixir&utm_medium=shownotes) – on Twitter
- https://github.com/marpo60/ (https://github.com/marpo60/?utm_source=thinkingelixir&utm_medium=shownotes) – on Github
- https://www.mimiquate.com/ (https://www.mimiquate.com/?utm_source=thinkingelixir&utm_medium=shownotes) – Mimiquate agency that published Blend
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Message the show on Fediverse - @ThinkingElixir@genserver.social (https://genserver.social/ThinkingElixir)
- Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com)
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- Mark Ericksen on Fediverse - @brainlid@genserver.social (https://genserver.social/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- David Bernheisel on Fediverse - @dbern@genserver.social (https://genserver.social/dbern)

204: OTP 27 and Blend for Lib Maintainers

Title
104: Exploring Our Data with Chris Grainger
Copyright
Release Date

flashback