phoenix changelog


Hey there, awesome developer! We've got some cool updates for you in the Phoenix framework. Check out the latest changes that are going to make your coding life a bit smoother and more fun. 🎉

  • Improvement: Protocol Purge Power-Up
    We've supercharged the Phoenix code reloader by ensuring protocols are purged after compilation. This means fewer hiccups and a smoother development experience. Say goodbye to those pesky old protocols lurking in the shadows! 🌟

  • Improvement: Gettext API Glow-Up
    We've revamped the generators to align with the shiny new Gettext API. This update simplifies the translation process and keeps everything consistent across the Phoenix framework. Now your internationalization game is stronger than ever! 🌍✨

  • Improvement: Debian Update to Bookworm
    We've updated the Debian version from "bullseye" to "bookworm" for a fresher development environment. Plus, we're now only testing on Erlang/OTP 24 and above. This means more stability and better performance in your workflow. Keep on coding! 🚀

These updates are here to make sure your Phoenix projects are running smoothly and efficiently. Happy coding! 💻🎈

Included Commits

2024-08-19T19:26:35 See commit

This commit updates the Debian version used in the project from "bullseye" to "bookworm," aligning the development environment with the latest Debian release. Additionally, it modifies the configuration to ensure that only versions of Erlang/OTP (OTP) 24 and above are utilized for testing and compatibility purposes. The changes are reflected in the CI workflow file, where the matrix for testing now specifies OTP 24.3 and above for various Elixir versions, and in the Elixir release generation task, which now references "bookworm" instead of "bullseye."

The commit also includes minor adjustments to the CI configuration, such as updating the Elixir version from 1.16.2 to 1.17.2 for compatibility with OTP 27.0. Overall, these updates enhance the project's compatibility with newer software versions while maintaining a focus on stability and performance in the development workflow.

Files changed

  • .github/workflows/ci.yml
  • lib/mix/tasks/phx.gen.release.ex
2024-08-20T08:56:33 See commit

This commit updates various templates in the Phoenix framework to align with the new Gettext API, specifically transitioning from the previous usage pattern to a more streamlined implementation. Key changes include modifying the gettext.ex module to utilize Gettext.Backend instead of Gettext, and adjusting the usage in controller and component modules to reflect this new backend specification. Additionally, the version of the Gettext dependency has been upgraded from ~> 0.20 to ~> 0.26, ensuring compatibility with the latest features and improvements.

The updates are reflected across multiple template files, including those for single applications and umbrella projects, as well as in test files to verify the new implementation. This refactor not only enhances the consistency of the Gettext integration throughout the Phoenix framework but also simplifies the translation process for developers by standardizing the usage of the Gettext backend in their applications. Overall, these changes aim to improve the internationalization capabilities within Phoenix projects.

Files changed

  • installer/templates/phx_gettext/gettext.ex
  • installer/templates/phx_single/lib/app_name_web.ex
  • installer/templates/phx_single/mix.exs
  • installer/templates/phx_umbrella/apps/app_name_web/lib/app_name.ex
  • installer/templates/phx_umbrella/apps/app_name_web/mix.exs
  • installer/templates/phx_web/components/core_components.ex
  • installer/test/phx_new_test.exs
  • installer/test/phx_new_umbrella_test.exs
  • integration_test/mix.exs
  • mix.exs
  • mix.lock
2024-08-21T07:09:59 See commit

This commit enhances the Phoenix framework's code reloader by ensuring that protocols are purged after compilation, addressing issue #5831. The modification includes a new function, purge_modules, which is invoked when protocols are consolidated. This function iterates over compiled beam files in the specified path and purges the corresponding modules to ensure that the consolidated versions are loaded correctly. The commit also includes comments indicating that similar purging actions are performed during the "mix compile" process, and notes a potential future change with Elixir v1.18 that might affect the necessity of this purge.

Overall, the changes consist of 15 additions and 1 deletion across the lib/phoenix/code_reloader/server.ex file, reflecting a focus on improving the reliability of protocol consolidation during the compilation process. The commit emphasizes the importance of module management in the context of dynamic code reloading, ensuring a smoother development experience in the Phoenix framework.

Files changed

  • lib/phoenix/code_reloader/server.ex