Dive into the latest updates with OTP 27.1, showcasing enhancements in the Zip module and important fixes for Windows users. The deprecation of the 'unless' keyword in Elixir 1.18 sparks discussions around coding practices. Discover the introduction of data channels in Elixir WebRTC and strategies for handling flaky tests. Learn about a new Mix test flag for optimizing test efficiency and hear how Discord slashed WebSocket traffic by 40%. Plus, there are insights on memory allocation and an introduction to the new community podcast, Elixir Friends!
The release of OTP 27.1 introduces significant updates, particularly in the Zip module, enhancing file management capabilities for developers.
Elixir 1.18's deprecation of the 'unless' keyword promotes clearer syntax and includes a mix format command to assist with code adjustment.
Deep dives
Update on OTP 27.1 and Its Features
The recent release of OTP 27.1 brings several important updates and features, notably enhancements to the zip module. Key upgrades include support for zip64 archives, allowing handling of larger files and more entries, which significantly expands the capabilities for file management in Elixir. Additionally, the update introduces improvements in timestamp precision and better handling of user ID and group ID values, which are essential for maintenance tasks and permissions. With these enhancements, developers can use tools built in Elixir more confidently for tasks such as backups and server maintenance.
Upcoming Changes in Elixir 1.18
Elixir 1.18 will introduce the deprecation of the 'unless' keyword, marking a shift towards clearer syntax styles that may be more intuitive for many developers. Accompanying this change is a new mix format command designed to automatically adjust code formatting issues, although there's a caution of potential code disruption. This automated correction feature aims to streamline the developer experience by reducing manual formatting corrections. Such improvements signal a larger trend in Elixir towards enhancing the developer toolchain for efficiency and ease of use.
Testing Innovations and Insights from Discord
New testing features in Elixir 1.17 enhance the debugging process for intermittent test failures, allowing developers to run tests multiple times until a failure occurs using a new command flag. This feature, alongside the introduction of 'slowest modules' analysis, helps identify performance bottlenecks within test suites, enabling more effective troubleshooting. Meanwhile, a recent blog post from Discord highlights their experience in optimizing WebSocket traffic through a switch from Zlib to Zstandard compression, resulting in a significant reduction in data usage. These insights not only reflect advancements in Elixir testing frameworks but also showcase real-world applications of Elixir in large-scale environments.
News includes the release of OTP 27.1 with significant improvements to the Zip module, the upcoming deprecation of the unless keyword in Elixir 1.18, support for Data Channels in Elixir WebRTC, new test-related feature highlighted by ElixirStreams to tackle intermittent failures, a detailed blog from Discord on reducing their websocket traffic by 40%, ElixirConf Lightning talks on YouTube, and more!
https://erlangforums.com/t/erlang-otp-27-1-released/4006 – OTP 27.1 was released, which is the first maintenance patch for OTP 27. It brings important fixes including upgrades in the Zip module with support for large archives, extended timestamps, UID/GID support, and enhanced directory handling. Several Windows-specific fixes are also included.
https://x.com/moomerman/status/1838235643983364206 – unless keyword will be deprecated in upcoming Elixir 1.18. Users are encouraged to use if !condition instead. A mix format --migrate command is available to assist with the transition.
https://elixir-webrtc.org/ – Support for Data Channels in Elixir WebRTC was added, enhancing the project with features for sending arbitrary data over P2P connections.