phoenix v1.6.0-rc.0 Release Notes

Release Date: 2021-08-26 // over 2 years ago
  • โœจ Enhancements

    • [CodeReloader] Code reloading can now pick up changes to .beam files if they were compiled in a separate OS process than the Phoenix server
    • [Controller] Do not create compile-time dependency for action_fallback
    • [Endpoint] Allow custom error response from socket handler
    • [Endpoint] Do not require a pubsub server in the socket (only inside channels)
    • [mix phx.digest.clean] Add --all flag to mix phx.digest.clean
    • [mix phx.gen.auth] Add mix phx.gen.auth generator
    • [mix phx.gen.context] Support enum types and the redact option when declaring fields
    • [mix phx.gen.notifier] A new generator to build notifiers that by default deliver emails
    • [mix phx.new] Update mix phx.new to require Elixir v1.12 and use the new config/runtime.exs
    • [mix phx.new] Set plug_init_mode: :runtime in generated config/test.exs
    • [mix phx.new] Add description to Ecto telemetry metrics
    • [mix phx.new] Use Ecto.Adapters.SQL.Sandbox.start_owner!/2 in generators - this approach provides proper shutdown semantics for apps using LiveView and Presence
    • [mix phx.new] Add --install and --no-install options to phx.new
    • [mix phx.new] Add --database sqlite3 option to phx.new
    • [mix phx.new] Remove usage of Sass
    • [mix phx.new] New applications now depend on Swoosh to deliver emails
    • [mix phx.new] No longer generate a socket file by default, instead one can run mix phx.gen.socket
    • [mix phx.new] No longer generates a home page using LiveView, instead one can run mix phx.gen.live
    • [mix phx.new] LiveView is now included by default. Passing --no-live will comment out lines in app.js and Endpoint
    • [mix phx.server] Add --open flag
    • [Router] Do not add compile time deps in pipe_through
    • [View] Extracted Phoenix.View into its own project to facilitate reuse

    JavaScript Client Enhancements

    • Add new replaceTransport function to socket with extended onError API to allow simplified LongPoll fallback
    • Fire each event in a separate task for the LongPoll transport to fix ordering
    • Optimize presence syncing

    ๐Ÿ› Bug fixes

    • [Controller] Return normalized paths in current_path/1 and current_path/2
    • [mix phx.gen.live] Fix a bug where tests with utc_datetime and boolean fields did not pass out of the box

    ๐Ÿ›  JavaScript Client Bug fixes

    • Bind to beforeunload instead of unload to solve Firefox connection issues
    • Fix presence onJoin including current metadata in new presence

    ๐Ÿ—„ Deprecations

    • [mix compile.phoenix] Adding the :phoenix compiler to your mix.exs (compilers: [:phoenix] ++ Mix.compilers()) is no longer required from Phoenix v1.6 forward if you are running on Elixir v1.11. Remove it from your mix.exs and you should gain faster compilation times too
    • [Endpoint] Phoenix now requires Cowboy v2.7+

    ๐Ÿ’ฅ Breaking changes

    • [View] @view_module and @view_template are no longer set. Use Phoenix.Controller.view_module/1 and Phoenix.Controller.view_template/1 respectively, or pass explicit assigns from Phoenix.View.render.