Actualizando a Phoenix 1.7
Introducción
Hace un tiempo que no hago nada con este pequeño proyecto, pero como estoy jugando con algunos proyectos nuevos usando Phoenix 1.7.1, pensé que lo más sensato era actualizar este blog antes de que pase demasiado tiempo, para que todo esté relativamente fresco. Sin embargo, fue una actualización bastante grande, te invito a revisar los cambios en GitHub, porque no voy a poner los pasos para cambiar de los LiveView helpers a Componentes.
Antes de continuar, asegúrate de revisar la página del lanzamiento para obtener más información sobre qué cambia, qué esperar, etc., Phoenix 1.7.0 release notes, luego podés profundizar acá para ver las notas de actualización.
¡Commit de Git con todos los cambios!, espero que esto te ayude a ver todo lo que tenés que hacer para ajustarte a la nueva estructura de carpetas.
Actualizando paquetes
Actualizá los paquetes manualmente en mix.exs
:
{:phoenix, "~> 1.7.1"},
{:phoenix_live_view, "~> 0.18.3"},
{:phoenix_live_dashboard, "~> 0.7.2"},
Si tenés phoenix
y gettext
en la línea de :compilers
en mix.exs
, eliminá esos.
Actualizá tu .formatter.exs
[
import_deps: [:ecto, :phoenix],
subdirectories: ["priv/*/migrations"],
plugins: [Phoenix.LiveView.HTMLFormatter],
inputs: ["*.{heex,ex,exs}", "{config,lib,test}/**/*.{heex,ex,exs}", "priv/*/seeds.exs"]
]
Algunas cosas pueden ser un poco complicadas, por lo que las he copiado directamente de las notas de actualización:
Phoenix.LiveView.Helpers ha sido suavemente deprecado y toda la funcionalidad relevante se ha migrado. Debés importar Phoenix.Component donde antes importabas Phoenix.LiveView.Helpers al actualizar (como en tu archivo lib/app_web.ex). También es posible que debas importar Phoenix.Component donde también importabas Phoenix.LiveView, ya que algunas de sus funciones se han movido a Phoenix.Component.
live_title_tag también se ha renombrado a live_title como un componente funcional. Actualizá tu layout root.html.heex para usar el nuevo componente:
- <%= live_title_tag assigns[:page_title] || "Onesixfifteen", suffix: " · Phoenix Framework" %>
+ <.live_title suffix=" · Phoenix Framework">
+ <%= assigns[:page_title] || "MyApp" %>
+ </.live_title>
Importante
Algunos enlaces importantes: https://hexdocs.pm/phoenix_view/Phoenix.View.html#module-migrating-to-phoenix-component https://elixirstream.dev/gendiff
Kudos a jbosse y srikanthkyatham por los enlaces, y a todos en los comentarios que están resolviendo distintos problemas.
¡Y por último, pero no menos importante, buena suerte!
Notas finales
Haceme saber si hay algo que te gustaría ver implementado, probado o explorado acá…
Esto está basado en los pasos descritos en las notas oficiales de actualización.
Errata
Si encontrás algún error o tenés alguna sugerencia, mandame un mensaje para que se pueda corregir.
También podés revisar el código fuente y los cambios en los sources aquí
No tienes cuenta? Regístrate aqui
Ya registrado? Iniciar sesión a tu cuenta ahora.
-
Comentarios
Online: 0
Por favor inicie sesión para poder escribir comentarios.