phoenix changelog


Here's the latest scoop on the Phoenix framework updates! We've got some awesome improvements and enhancements to make your development experience smoother and more enjoyable. Let's dive into the highlights:

Improvement: The guides/contexts.md file received a makeover! πŸ› οΈ We've polished up those Elixir code snippets to perfection, ensuring clarity and correctness. Migration files for creating products, cart items, orders, and line items now come with all the bells and whistles, like precision and scale for decimal fields. Plus, the documentation now makes it a breeze to understand schema associations within the ShoppingCart context. You'll be a Phoenix pro in no time!

Improvement: Starting a new Phoenix app just got easier! ⚑ The "Up and Running" guide now features an express option for supported OSes, letting you kick things off with a single command. No worries if you're on an unsupported system; we've got you covered with the traditional mix phx.new method. Plus, the release notes now remind us to update Elixir and Erlang/OTP versions on the official site. Smooth sailing ahead for new devs and framework maintainers!

Improvement: Dark mode lovers, rejoice! πŸŒ™ The README header image now adapts to your color scheme preference. We've added a snazzy phoenix-orange.png for dark mode, while the classic phoenix.png shines in light mode. It's all about that visual experience, folks!

Chore: We've done some housekeeping with a dependency update. πŸ“¦ The mix.exs and mix.lock files got a refresh, ensuring our project stays in tip-top shape with the latest and greatest libraries. It's all about keeping things secure, functional, and running smoothly.

Enjoy these updates and happy coding with Phoenix! πŸš€


Welcome to our latest update! We've been busy making some fantastic improvements and squashing bugs to enhance your development experience. Here's a look at what's new and improved:

  • New feature: Customizing primary key names is now a breeze! πŸŽ‰ You can specify an alternative name for the primary key column when generating schemas and migrations, thanks to the new --primary-key option. This gives you more flexibility in naming your primary keys and improves the usability of schema generation.

  • Improvement: We've made it easier to enable new Phoenix Live Reload features by adding commented-out JavaScript code in the development environment. Now, streaming server logs to the browser console and clicking on components to jump directly to their code definitions is just a few clicks away. πŸš€

  • Improvement: Autocomplete attributes have been added to password and username fields across various templates. This enhancement allows browsers to automatically fill in saved credentials, making login and registration processes smoother and faster. πŸ’Ύ

  • Improvement: The default gzip setting in the generated endpoint now considers code reloading status. Compressed static files will be served efficiently in production environments, improving performance. ⚑

  • New feature: Introducing the web console logger for new projects! This feature streams server logs directly to the client, enhancing debugging and development efficiency. It's also available for umbrella projects, thanks to collaborative efforts with JosΓ© Valim. πŸ–₯️

  • Bugfix: We fixed a potential race condition by ensuring endpoint configuration is fully initialized before the socket listener starts. This prevents crashes from incoming requests during the configuration setup, enhancing stability and reliability. πŸ› οΈ

  • Bugfix: We reverted a previous change related to the web console logger for new projects in favor of an alternative solution. This simplifies the setup for new projects, aligning with the more effective approach. πŸ”„

  • Bugfix: The "scrollbar-gutter" class has been removed from the HTML template, setting the scrollbar-gutter to "auto." This resolves an issue with scrollbar handling in the user interface. πŸ–ΌοΈ

We hope these updates make your development journey smoother and more enjoyable. Happy coding! 🎈


Here's a peek at the latest and greatest updates that have been made to our project, bringing you smoother experiences and more intuitive interfaces. Let's dive in! πŸš€

Improvement: Update Text Input to Textarea
We've given our HTML generator a little makeover! 🎨 The input type for text fields is now a textarea instead of a plain old text input. This change is all about making life easier for those who need to input multi-line text. It's now live in both phx.gen.html.ex and phx.gen.live.ex files, ensuring a consistent experience across the board. Plus, we've jazzed up our test files (phx.gen.html_test.exs and phx.gen.live_test.exs) to make sure everything works like a charm. This tweak is all about making your user interface more intuitive and user-friendly. Enjoy the enhanced usability! 🌟


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 21 to 39 of 39 Entries