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! πŸ’»πŸŽˆ


Here's the lowdown on the latest updates, packed with improvements to make your development journey smoother and more enjoyable! πŸš€

  • Improvement: Enhanced Channel Documentation πŸ“š
    We've given the Phoenix Channel module documentation a significant upgrade! Now, it’s easier to understand the parameters and functionalities related to channel callbacks and broadcasting events. Detailed explanations have been added for the handle_in function, including insights on the topic, map payload from the client, and the Phoenix.Socket instance. Plus, we've streamlined the broadcasting section to focus on the broadcast function. This makes it a breeze to broadcast messages both from within channels and other parts of your application. Happy coding with clearer docs! ✨

  • Improvement: Channel Docs and Example Code Tweaks πŸ”§
    We've polished the channel documentation and example code by fixing a filename reference in Step 2 of the guide. The correct layout file is now root.html.heex, ensuring your user token is passed to JavaScript without a hitch. Similar updates were made in the socket.js file to keep everything aligned. This makes integrating JavaScript for user tokens in real-time channels a piece of cake!

  • Improvement: Consistent Path Helpers in Auth Templates πŸ”„
    Say goodbye to hardcoded URLs! We've updated the Phoenix authentication templates to use the ~p syntax for path helpers, replacing those pesky string literals. This change enhances the maintainability and readability of the code, bringing consistency across the board. The updates span several test files, including confirmation_live_test.exs, forgot_password_live_test.exs, login_live_test.exs, and registration_live_test.exs. Enjoy a cleaner, more consistent codebase in your authentication module! πŸŽ‰


Welcome to the latest updates! We've been busy making things smoother, faster, and just generally more awesome for you. Here's a rundown of what's new and improved:

New Feature: Disable Watchers πŸ•΅οΈβ€β™‚οΈ

  • You can now set watchers to false in your Phoenix configuration to disable them entirely. This gives you more control over your development environment, especially useful when you want to override the default behavior.
  • Changes were made to lib/phoenix/endpoint.ex and lib/phoenix/endpoint/supervisor.ex to support this, along with a new test case to ensure everything works smoothly.

Improvement: Req as Default Swoosh Client πŸš€

  • We've swapped Finch for Req as the default HTTP client in the Swoosh installer. Req, being more "batteries included," means no more manual HTTP client initialization.
  • This change spans various files like prod.exs, runtime.exs, and mix.exs, ensuring a seamless transition.

Bugfix: Dockerfile Warnings 🐳

  • Resolved several Docker warnings by tweaking the Dockerfile syntax and environment variable declarations.
  • These minor changes make the Docker setup cleaner and more efficient, improving the overall build process.

Improvement: VerifiedRoutes Documentation πŸ“š

  • Updated the documentation for the Phoenix.VerifiedRoutes module. Fixed links to static_url and static_path callbacks and removed an unnecessary reference to "URI" in the static_integrity/2 function.
  • These tweaks make the documentation clearer and more user-friendly.

Bugfix: Typo Correction ✏️

  • Fixed a tiny typo in guides/contexts.md, changing "responsability" to "responsibility".
  • This small change helps maintain the professionalism and clarity of the documentation.

We hope these updates make your development experience even better! 🌟


Changelog

Welcome to the latest update! We've made some tweaks to improve your experience. Check out what's new:

  • Bugfix: Fix typos and improve language πŸ“ We went on a typo-hunting adventure and polished up the language across multiple files. This means clearer comments, error messages, and overall smoother sailing for anyone navigating the codebase. Enjoy the refined readability in phx.gen.context.ex, phx.gen.presence.ex, phx.gen.release.ex, and more!

Changelog

Hey there, awesome developers! πŸŽ‰ We've got some updates to share that will make your coding life smoother and more fun. Check out the latest changes:

  • Bugfix: Fixed a pesky bug in the phx.server command that caused it to halt when the -- separator was used. Now, you can run your commands without any hiccups! Big shoutout to Jerko Culina for the collaborative effort in squashing this bug. πŸ›πŸ’₯

Keep on coding and happy developing! πŸš€


Hey there, awesome users! We've got some exciting updates to share with you. Check out the latest improvements and fixes below:

What's New and Improved

Bugfix πŸ›:

  • Action Block Rendering for Tables (#5852): We squashed a pesky bug in the core_components.ex file that was messing with the action block rendering in tables. Now, with a little tweak (adding a span class), your table cells will look fabulous and aligned just right. Enjoy the enhanced visual display and smoother user experience! πŸŽ‰

Thanks for being amazing and keep those feedbacks coming! πŸš€


Hey there, awesome developers! We've got some cool updates and fixes for you. Check out the latest changes below:

What's New and Improved

New feature: Explicit mix assets.setup step in phx.gen.release πŸŽ‰

  • We've added a mix assets.setup step to the phx.gen.release process. This installs Tailwind and esbuild earlier, caching the container layer based on dependencies and config. No more unnecessary re-downloads and installations when you change code in priv, lib, or assets. Your release process just got a whole lot smoother and faster!

Improvement: Pass all_args to compile task in digest tasks πŸš€

  • Updated the phx.digest.clean and phx.digest tasks with a new --no-compile option. Now you can skip the compile task during the digest process if you want. More control, more efficiency, and more customization for your asset management in Phoenix applications.

Bugfixes

Bugfix: Remove noop Tailwind class 'transform' πŸ› οΈ

  • The transform class is no longer needed since Tailwind v2.2. We've removed it and formatted templates to match mix format. This keeps your codebase clean and up-to-date with the latest TailwindCSS standards.

Bugfix: Pin Erlang to 25.3.2.9 for 1.14.5 CI πŸ”§

  • Pinned Erlang to version 25.3.2.9 for the 1.14.5 CI. This ensures that the correct version of Erlang is used during the CI process, maintaining consistency and reliability in your build and testing environment.

That's all for now, folks! Keep coding and stay awesome! πŸš€βœ¨


Hey there, awesome devs! We've got some exciting updates for you! πŸš€

### New feature: Support for `:mfa` Field in Router Metadata
We've introduced support for the `:mfa` field in router metadata, making your routing even more powerful and flexible! πŸŽ‰

- **Router Enhancements**: The `lib/mix/tasks/phx.routes.ex` file now handles the `:mfa` field when determining module and function names.
- **Logging Improvements**: The `lib/phoenix/logger.ex` file now includes the `:mfa` field in log messages for better traceability.
- **Console Formatting**: Log messages are now formatted based on the `:mfa` field in the `lib/phoenix/router/console_formatter.ex` file.
- **Compile-time Checks**: Adjustments in the `lib/phoenix/router.ex` file ensure the `:mfa` field is used effectively during compile-time checks.

And of course, we've updated our tests to make sure everything runs smoothly. The `test/phoenix/router/routing_test.exs` file now tests the behavior of overriding the plug name using the `:mfa` field. 

Enjoy the enhanced functionality and happy coding! πŸ’»βœ¨

Welcome to the latest update! We've got some cool new features, important bug fixes, and a bunch of improvements to make your experience smoother and more enjoyable. Let's dive into what's new:

New Features

  • Repeatable Tests with mix test --repeat-until-failure: Now you can run your unit tests repeatedly until they fail. This is super handy for catching those pesky intermittent bugs. Plus, we've ensured all directories in the tmp folder are properly cleaned up, even if the test name or random string contains a / character. πŸŽ‰

  • Phoenix Tutorial Added: We've updated the community.md file to include a free online Phoenix Tutorial for version 1.6. This is a great resource for anyone looking to get started or deepen their knowledge in Phoenix. πŸ“š

Bug Fixes

  • CHANGELOG Update: The CHANGELOG.md file was updated to reflect recent changes, including a fix for the CoreComponents.flash function that ensures flash messages close correctly. Also, dynamic ports are now supported for the Endpoint.url/0 function. πŸš€

  • Version 1.7.13 Release: This release includes various bug fixes, performance improvements, and possibly new features. Make sure to update to benefit from the latest enhancements. πŸ› οΈ

  • JavaScript Type Documentation Fixes: We've corrected the types of parameters in the Socket constructor in socket.js, ensuring you have the right information for longPollFallbackMs, debug, and reconnectAfterMs parameters. πŸ“„

  • Version 1.7.14 Release: This update includes bug fixes, such as reverting a conflicting function in Phoenix.ConnTest, and ensures the correct version information is reflected in the project files. πŸ“¦

Improvements

  • JavaScript Dependencies and Testing: We've updated the JavaScript dependencies to the latest versions and switched from mocha to jest for testing, aligning with the setup used in LiveView. Tests are now run on Node 20 to ensure compatibility across different environments. 🌐

That's all for now! Enjoy the new features and improvements, and happy coding! πŸš€βœ¨


Welcome to the latest changelog! We've been busy squashing bugs, improving docs, and making your experience smoother. Let's dive into the details! πŸš€

Bugfixes πŸ›

  • Fix doctest in phx.gen.auth (#5835): We've patched up a doctest in the phx.gen.auth context to ensure the URL generation syntax is spot on. Now, the deliver_<%= schema.singular %>_update_email_instructions function's example is accurate and ready to guide you seamlessly.
  • Remove 'antialiased' CSS class from root template (#5827): Bid farewell to the 'antialiased' CSS class! Modern browsers and OSes have upped their subpixel-antialiasing game, making this class obsolete. We’ve updated the home.css and root.html.heex files to reflect this change.
  • Fix heading in 1.7.12 changelog: We tidied up the changelog by correcting the formatting of the "JavaScript Client Enhancements" section. Proper headings for the win!

Improvements ✨

  • Align time and duration values in a couple of show/hides (#5836): We've synchronized the transition times and durations in our show/hide functions. Expect smoother and more consistent visual effects when elements appear or disappear.
  • Correct documentation about route helpers generation (#5823): Our docs just got clearer! We updated the lib/phoenix/router.ex file to provide accurate info about the :as and :singleton options for route helpers. Kudos to Andrew Pozdnyakov for the co-authoring assist!
  • Allow mix ecto.setup from the umbrella root (#5692): Running mix ecto.setup just got easier! You can now execute this command from the root of your umbrella project, making database setup a breeze.

That’s all for now! Keep an eye out for more updates and happy coding! πŸŽ‰


Hey team! We've got some exciting updates and important fixes in this release. Check out the details below to see what's new and improved. πŸš€

New feature

  • Clarify user message in phx.gen.json: We've updated the instructions in the phx.gen.json task to be more user-friendly. Now, when you add a resource to the router file, you’ll be guided to add it to the "/api" scope instead of the ":api" scope. This should make things clearer and help you follow the steps more easily after generating files. πŸ“

Bugfix

  • Remove depth: 1 from lock: Simplified the heroicons dependency in the lock file by removing the depth parameter. This makes the lock file cleaner and easier to maintain. πŸ› οΈ

Here's a summary of the latest updates and improvements:


New feature: Replace phx-feedback-for with used_input?/1 (#5713)

We've streamlined the handling of input components and form validation by swapping out phx-feedback-for for used_input?/1. This change touches multiple files, including file_uploads.md, core_components.ex, and form_component.ex. Now, input fields check if used_input? is true before assigning errors, and the phx-feedback-for attribute is history! This means a more efficient and consistent approach to handling form inputs and error feedback in Phoenix. πŸŽ‰

Bugfix: Persist remote_ip during recycling of a conn (#5792)

We've squashed a bug that caused remote_ip to vanish during connection recycling. Now, remote_ip sticks around along with other headers and peer data, ensuring accurate IP address handling. Plus, we added a test to verify this functionality, so your IP info remains rock solid. πŸ› οΈ

Improvement: Re-order doc to better match example (#5796)

We reorganized the "Writing a Channels Client" guide to better match the provided example. This update clarifies the structure of messages sent to a Phoenix Channel, emphasizing unique join_reference and message_reference values, and the importance of matching topic_name and event_name. This makes the guide easier to read and follow. πŸ“š

Improvement: Clarify what's optional in phx.new (#5783)

Creating a new Phoenix app just got more customizable! We've clarified which dependencies are optional when running mix phx.new. You can now skip Ecto, Phoenix.HTML, TailwindCSS, Esbuild, and Phoenix.LiveView with specific flags. The documentation has been updated to reflect these changes, making it easier to tailor your Phoenix app to your needs. πŸ› οΈ

Bugfix: Fix signed at default value docs

We corrected the default value for the :signed_at option in Phoenix.Token from System.system_time(:second) to System.system_time(:millisecond). This ensures more precise time tracking for tokens. The documentation has been updated to reflect this change. ⏱️

Bugfix: Fix race condition in async test

Addressed a race condition in an async test related to filtering sensitive data in Phoenix.LoggerTest. We made 61 changes to improve the reliability and accuracy of data filtering and logging mechanisms. This includes handling different data structures and ensuring correct log levels based on telemetry configuration. πŸ›πŸ”¨


Happy coding! πŸš€


Welcome to our latest update! We've been hard at work squashing bugs and adding a sprinkle of magic to make your experience even better. Here's what's new and improved:

Bugfixes

  • Fix typo in Token docs (#5781): We corrected a small but mighty typo in the Token documentation. Instead of "will kept secret," it now reads "will be kept secret." Clear and precise, just the way we like it! πŸ”βœ¨

Enjoy the updates and keep the feedback coming! πŸš€


Hey there, awesome developers! We've got some cool updates and fixes to share with you. Check out the latest changes and improvements we've made to make your coding life a bit easier. πŸš€

Improvements

  • Improved Docs for Verified Routes πŸ“š We’ve given the documentation for verified routes in the Phoenix framework a nice polish. With 27 additions and 21 deletions, the updated docs now better explain macros for building routes, injecting paths and URLs, and generating paths for static assets. These tweaks will help you navigate and use verified routes more effectively.

  • Clearer Argument Name πŸ“ We’ve enhanced the list function in the Phoenix.Presence module by changing the argument name to socket_or_topic :: Phoenix.Socket.t() | topic. This makes the code more readable and understandable, ensuring you know exactly what’s going on.

  • Closed Back-Tick Fix βœ”οΈ A small but mighty fix: we’ve closed a back-tick in the Phoenix.Token module, correcting a typo in the comment related to cryptographic salts. This ensures consistency and clarity in the code, making it easier to understand and work with token authentication.

Bugfixes

  • Channel Leave on Unjoined Channels πŸ› οΈ We’ve squashed a bug where leaving an unjoined channel would remove all unjoined channels from the socket. Now, only the specific unjoined channel instance is removed, ensuring proper channel management. This fix is reflected in the phoenix.js, phoenix.min.js, priv/static/phoenix.cjs.js, and priv/static/phoenix.mjs files.

  • Release 1.7.12 🐞 Version 1.7.12 is out! This release includes updates to version numbers in various configuration files and some bug fixes for the JavaScript client. The CHANGELOG.md has all the details, ensuring you’re up-to-date with the latest improvements.

Enjoy the updates, and happy coding! 🌟


Hey there, fellow developers! Here’s the latest scoop on what’s been cooking in our codebase. We’ve got some nifty improvements and bug fixes that are sure to make your life a tad easier. Check out the deets below! πŸš€

New Features & Improvements

  • Improvement: Fix phx.gen.socket moduledoc grammar and example path
    We’ve polished up the phx.gen.socket module documentation by fixing grammar and punctuation errors. Plus, we corrected an example path for umbrella apps to ensure your sockets land in the right spot. Big shoutout to Juan P Barrios for the assist! πŸŽ‰

  • Improvement: Clarify Token secrecy in docs
    We’ve made the Phoenix.Token documentation clearer about how secrecy works. Now it’s easier to understand the difference between signed and encrypted tokens, and we’ve included examples for using encrypt/4 and decrypt/4. Keep your secrets safe, folks! πŸ•΅οΈβ€β™‚οΈ

  • Improvement: Replace deprecated live_flash for Phoenix.Flash.get in phx.gen.auth
    Out with the old, in with the new! We’ve swapped out the deprecated live_flash with Phoenix.Flash.get in the phx.gen.auth template. This will keep your login_live module running smoothly and up-to-date with the latest Phoenix practices. 🌟

Keep coding and stay awesome! πŸ’»πŸš€


Hey there, awesome devs! We've got some exciting updates for you. Here's what we've been working on to make your experience even smoother and more efficient. πŸš€


New feature

  • Allow running phx.digest task multiple times (#5753): You can now run the phx.digest task as many times as you want without running into any pesky errors! We've re-enabled the task after compiling, ensured all compressors are compiled, and made sure the Phoenix app is up and running before the task kicks in. This means smoother asset management in your Phoenix applications. πŸŽ‰

Improvement

  • Bump telemetry metrics to v1.0 (#5755): We've updated the telemetry_metrics package to version 1.0 across the project. This upgrade spans multiple files, ensuring you're aligned with the latest and greatest improvements. Better performance and functionality related to telemetry metrics are now at your fingertips. πŸ“ˆβœ¨
Showing 1 of 16 Entries