Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Sep 19, 2024

This PR contains the following updates:

Package Update Change
elixir (source) minor 1.17.2 -> 1.19.4

Release Notes

elixir-lang/elixir (elixir)

v1.19.4

Compare Source

v1.19.3

Compare Source

1. Enhancements
Elixir
  • [Kernel] Support /E modifier for regular expressions in config files
Mix
  • [mix compile] Allow forcing specific compilers, such as --force-elixir, --force-app, etc
  • [mix help app:APP] Support showing helps for apps in Elixir and Erlang standard libraries
2. Bug fixes
ExUnit
  • [ExUnit.Case] Fix crash when formatting errors caused by a linked/trapped exit during setup_all
Mix
  • [mix compile.app] Ensure functions in the format &Mod.fun/arity can be written to .app files
  • [mix compile.app] Ensure strings with Unicode characters can be written to .app files

v1.19.2

Compare Source

1. Enhancements
Elixir
  • [Kernel] Measure and optimize writing of .beam files in the compiler
  • [Kernel] Optimize rare scenarios where type checking took too long
Mix
  • [mix compile] Add flag --no-check-cwd to skip compiler check to aid debugging
2. Bug fixes
Elixir
  • [IO] Fix dialyzer warning on IO.inspect :label
  • [Kernel] Ensure we warn on deprecated ~~~ unary operator
Logger
  • [Logger] Reset ansi escapes before newlines in Logger
Mix
  • [mix compile] Warn if elixirc_paths is not a list of string paths
  • [mix compile] Address regression where umbrella children were compiled too early and without respecting compilation flags
  • [mix deps.compile] Improve reliability of MIX_OS_DEPS_COMPILE_PARTITION_COUNT across mix escript.install, mix archive.install, and others

v1.19.1

Compare Source

1. Bug fixes
EEx
  • [EEx] Address Dialyzer warnings when invoking EEx.compile_string
Elixir
  • [Kernel] Optimize how types are computed for pretty printing
  • [Kernel] Optimize how differences are computed in the type system
  • [Macro] Do not escape options given to dbg/2
  • [Protocol] Improve protocol violation warnings
Mix
  • [mix compile] Do not attempt to touch deleted files when compilation fails and then resumed with missing files
  • [mix deps.compile] Do not spawn partitions when all dependencies are local and already compiled

v1.18.4

Compare Source

This release includes initial support for Erlang/OTP 28, for those who want to try it out. In such cases, you may use Elixir v1.18.4 precompiled for Erlang/OTP 27, as it is binary compatible with Erlang/OTP 28. Note, however, that Erlang/OTP 28 no longer allows regexes to be defined in the module body and interpolated into an attribute. If you do this:

@​some_attribute ~r/foo/
def some_fun, do: @​some_attribute

You must rewrite it to:

def some_fun, do: ~r/foo/
1. Enhancements
IEx
  • [IEx.Helpers] Add IEx.Helpers.process_info/1 which prints process information
Mix
  • [mix compile] Support the --no-listeners option
  • [mix local] Retry HTTP requests with disabled middlebox comp mode depending on the failure reason
  • [mix local.hex] Install Hex per OTP release
  • [mix local.rebar] Install Hex per OTP release
  • [mix run] Support the --no-listeners option
2. Bug fixes
Elixir
  • [Kernel] Emit trace events for @on_definition callbacks
  • [Kernel] Emit trace events for @on_load callbacks
  • [Kernel] Emit trace events for super calls
  • [Kernel] Emit trace events for imported function calls
  • [Kernel] Optimize map unions to avoid building long lists
  • [Kernel] Do not crash when type checking nested bitstrings in patterns
  • [Kernel] Do not crash when non-binary bitstring is given as struct default value
  • [Kernel] Recompile regexes when escaped from module attributes for Erlang/OTP 28 compatibility
  • [Kernel] Preserve backwards compatibility in elixir_erl
Mix
  • [mix deps.get] Ensure git checkout works when there are untracked files in the dependency
  • [mix loadpaths] Do not run listeners when not checking the deps

v1.18.3

Compare Source

1. Enhancements
Elixir
  • [JSON] Encode any JSON key to string
  • [Kernel] Allow <<_::3*8>> in typespecs
Mix
  • [mix loadpaths] Support --no-listeners option
2. Bug fixes
Elixir
  • [CLI] Fix --no-color not setting :ansi_enabled to false
  • [Protocol] Return correct implementation for an invalid struct pointing to nil
  • [Stream] Do not raise when Stream.cycle/1 is explicitly halted
ExUnit
  • [ExUnit.Diff] Fix regression when diffing nested improper lists
IEx
  • [IEx.Autocomplete] Fix autocomplete crash when expanding struct with __MODULE__
  • [IEx.Helpers] Do not purge on recompile if IEx is not running

v1.18.2

Compare Source

1. Enhancements
Elixir
  • [CLI] Add --color/--no-color for enabling and disabling of ANSI colors
  • [Code.Fragment] Provide more AST context when invoking container_cursor_to_quoted with trailing fragments
  • [Regex] Ensure compatibility with Erlang/OTP 28+ new Regex engine
Mix
  • [mix] Print compilation lock waiting message to stderr
  • [mix] Add an environment variable to optionally disable compilation locking
2. Bug fixes
Elixir
  • [CLI] Temporarily remove PowerShell scripts for elixir, elixirc, and mix on Windows, as they leave the shell broken after quitting Erlang
ExUnit
  • [ExUnit] Fix crash when diffing bitstring specifiers
IEx
  • [IEx.Autocomplete] Fix crashing whhen autocompleting structs with runtime values
Mix
  • [mix] Track compilation locks per user to avoid permission errors
  • [mix deps.update] Ensure Git dependencies can be upgraded by doing so against the origin

v1.18.1

Compare Source

1. Enhancements
  • [Kernel] Do not emit type violation warnings when comparing or matching against literals
  • [Kernel] Do not validate clauses of private overridable functions
2. Bug fixes
Elixir
  • [Code.Fragment] Ensure Code.Fragment.container_cursor_to_quoted/2 with :trailing_fragment parses expressions that were supported in previous versions
  • [Kernel] Do not crash when typing violation is detected on dynamic dispatch
  • [Kernel] Properly annotate the source for warnings emitted by the compiler with the @file annotation
  • [Kernel] Properly annotate the source for warnings emitted by the type system with the @file annotation
  • [Kernel] Remove :no_parens metadata when using capture with arity on all cases
  • [Kernel] Ensure diagnostic traces are kept backwards compatible
ExUnit
  • [ExUnit.Case] Ensure async groups do not run concurrenly while the test suite is still loading
  • [ExUnit.Case] Ensure --repeat-until-failure can be combined with groups
Mix
  • [mix compile.elixir] Store compilation results if compilation fails due to --warnings-as-errors
  • [mix deps.loadpaths] Add build lock
  • [mix escript.build] Ensure build succeeds when protocol consolidation is disabled
  • [Mix.Shell] Ensure encoding is properly respected on Windows and Unix systems

v1.18.0

Compare Source

Official announcement: https://elixir-lang.org/blog/2024/12/19/elixir-v1-18-0-released/

1. Enhancements
Elixir
  • [CLI] Add experimental PowerShell scripts for elixir, elixirc, and mix on Windows. Those provide a safer entry point for running Elixir from other platforms
  • [Calendar] Add Duration.to_string/1
  • [Code] Support several migration options in Code.format_string!/2
  • [Code] Add parenthesis around -- and --- in Code.format_string!/2 to make precedence clearer
  • [Code] Include more metadata in Code.string_to_quoted/2 when token_metadata: true to help compute ranges from the AST
  • [Code.Fragment] Have :capture_arg as its own entry in Code.Fragment.surround_context/2
  • [Config] Add Config.read_config/1
  • [Enumerable] Add Enum.product_by/2 and Enum.sum_by/2
  • [Exception] Add MissingApplicationsError exception to denote missing applications
  • [JSON] Add a new JSON module with encoding and decoding functionality
  • [JSON] Implement JSON.Encoder for all Calendar types
  • [Kernel] Update source code parsing to match UTS #​55 latest recommendations. In particular, mixed script is allowed in identifiers as long as they are separate by underscores (_), such as http_сервер. Previously allowed highly restrictive identifiers, which mixed Latin and other scripts, such as the japanese word for t-shirt, Tシャツ, now require the underscore as well
  • [Kernel] Warn on bidirectional confusability in identifiers
  • [Kernel] Verify the type of the binary generators
  • [Kernel] Track the type of tuples in patterns and inside elem/2
  • [Kernel] Perform validation of root AST nodes in unquote and unquote_splicing to catch bugs earlier
  • [Kernel] Add source, behaviour, and record information to Docs chunk metadata
  • [Kernel] Support deterministic builds in tandem with Erlang by setting ERL_COMPILER_OPTIONS=deterministic. Keep in mind deterministic builds strip source and other compile time information, which may be relevant for programs
  • [Kernel] Allow aliases and imports to be enabled conditionally in module body
  • [List] Add List.ends_with?/2
  • [Macro] Improve dbg handling of if/2, with/1 and of code blocks
  • [Macro] Add Macro.struct_info!/2 to return struct information mirroring mod.__info__(:struct)
  • [Registry] Add Registry.lock/3 for local locking
  • [PartitionSupervisor] Add PartitionSupervisor.resize!/2 to resize the number of partitions in a supervisor (up to the limit it was started with)
  • [Process] Handle arbitrarily high integer values in Process.sleep/1
  • [Protocol] Add @undefined_impl_description to customize error message when an implementation is undefined
  • [Protocol] Add __deriving__/1 as optional macro callback to Protocol, no longer requiring empty implementations
  • [String] Inspect special whitespace and zero-width characters using their Unicode representation
  • [String] Update Unicode to 16.0
ExUnit
  • [ExUnit] Support parameterized tests on ExUnit.Case
  • [ExUnit] Support test groups: tests in the same group never run concurrently
  • [ExUnit.Case] Add test_pid as a tag
IEx
  • [IEx] Add IEx.configure(auto_reload: true) to automatically pick up modules recompiled from other operating system processes
  • [IEx] Add :dot_iex support to IEx.configure/1
  • [IEx] Add report for normal/shutdown exits in IEx
Mix
  • [mix compile] Ensure only a single operating system process can compile at a given time
  • [mix deps.get] Ensure only a single operating system process can fetch deps at a given time
  • [mix format] Add mix format --migrate to migrate from deprecated functionality
  • [mix format] Add new options and metadata to improve formatting applying by editors and other environments
  • [mix test] Taint failure manifest if requiring or compiling tests fail
  • [Mix.Project] Add a :listeners configuration to listen to compilation events from the current and other operating system processes
  • [Mix.Task.Compiler] Add API for fetching all persisted compiler diagnostics
  • [Mix.Task.Compiler] Add API for fetching all compiler tasks
2. Bug fixes
Elixir
  • [Code] Fix delimiter metadata for single quoted atoms and remote calls in Code.string_to_quoted/2
  • [Code.Formatter] Fix formatter adding extra escapes to quoted remote calls
  • [Code.Fragment] Properly handle keyword keys as their own entry
  • [Inspect.Algebra] Ensure next_break_fits respects line_length
  • [Kernel] Validate AST on unquote and unquote_splicing to provide better error reports instead of failing too late inside the compiler
  • [Kernel] Avoid crashes when emitting diagnostics on code using \t for indentation
  • [Module] Include module attribute line and name when tracing its aliases
  • [Stream] Do not halt streams twice in Stream.transform/5
  • [URI] Fix a bug when a schemaless URI is given to URI.merge/2
ExUnit
  • [ExUnit.Assertions] Raise if guards are used in assert/1 with =
  • [ExUnit.Assertions] Format inserted/deleted maps in list assertions
IEx
  • [IEx.Helpers] IEx.Helpers.recompile/0 will reload modules changed by other operating system processes
Mix
  • [mix compile] Ensure warnings from external resources are emitted with --all-warnings when files do not change
  • [mix deps.compile] Fix escaping issues when invoking rebar3 in some cases
  • [mix escript] Fix escript layout and support storing priv directories
  • [mix release] Make .app files deterministic in releases
  • [Mix.Shell] Fix Mix.Shell on Windows when outputting non UTF-8 characters
3. Soft deprecations (no warnings emitted)
Elixir
  • [Inspect.Algebra] color/3 is deprecated in favor of color_doc/3
  • [Inspect.Algebra] fold_doc/2 is deprecated in favor of fold/2
  • [Kernel] Deprecate unless in favor of if. Use mix format --migrate to automate the migration
  • [Macro] Macro.struct!/2 is deprecated in favor of Macro.struct_info!/2
  • [Protocol] Defining __deriving__/3 inside the Any implementation is deprecated, derive it inside the protocol definition itself
4. Hard deprecations
EEx
  • [EEx] <%# is deprecated in favor of <%!-- or <% #
  • [EEx] c:EEx.handle_text/2 is deprecated in favor of c:EEx.handle_text/3
Elixir
  • [Code] Setting :warnings_as_errors is deprecated via Code.put_compiler_option/2. This must not affect developers, as the :warnings_as_errors option is managed by Mix tasks, and not directly used via the Code module
  • [Enumerable] Deprecate returning a two-arity function in Enumerable.slice/1
  • [List] List.zip/1 is deprecated in favor of Enum.zip/1
  • [Module] Deprecate Module.eval_quoted/3 in favor of Code.eval_quoted/3
  • [Range] Deprecate inferring negative ranges on Range.new/2
  • [Tuple] Tuple.append/2 is deprecated, use Tuple.insert_at/3 instead
Mix
  • [mix cmd] Deprecate mix cmd --app APP in favor of mix do --app APP
  • [mix compile] :warnings_as_errors configuration in :elixirc_options is deprecated. Instead pass the --warnings-as-errors flag to mix compile. Alternatively, you might alias the task: aliases: [compile: "compile --warnings-as-errors"]
  • [mix test] :warnings_as_errors configuration in :test_elixirc_options is deprecated. Instead pass the --warnings-as-errors flag to mix test. Alternatively, you might alias the task: aliases: [test: "test --warnings-as-errors"]
  • [Mix.Tasks.Compile] Deprecate compilers/0 in favor of Mix.Task.Compiler.compilers/0

v1.17

The CHANGELOG for v1.17 releases can be found in the v1.17 branch.

v1.17.3

Compare Source

1. Bug fixes
Elixir
  • [Duration] Fix parsing of fractional durations with non-positive seconds
  • [Kernel] Do not attempt to group module warnings when they have a large context
IEx
  • [IEx.Helpers] Properly reconsolidate protocols on recompile
Mix
  • [mix compile.elixir] Do not verify modules twice
  • [mix xref] Respect the --label option on stats and cycles

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot changed the title chore(deps): update dependency elixir to v1.17.3 chore(deps): update dependency elixir to v1.18.0 Dec 21, 2024
@renovate renovate bot force-pushed the renovate/elixir-1.x branch from ed58288 to 50366e6 Compare December 21, 2024 17:24
@renovate renovate bot changed the title chore(deps): update dependency elixir to v1.18.0 chore(deps): update dependency elixir to v1.18.1 Dec 28, 2024
@renovate renovate bot force-pushed the renovate/elixir-1.x branch from 50366e6 to 38a119d Compare December 28, 2024 17:38
@renovate renovate bot changed the title chore(deps): update dependency elixir to v1.18.1 chore(deps): update dependency elixir to v1.18.2 Jan 23, 2025
@renovate renovate bot force-pushed the renovate/elixir-1.x branch from 38a119d to f900a7c Compare January 23, 2025 15:49
@renovate renovate bot force-pushed the renovate/elixir-1.x branch from f900a7c to b6b472d Compare March 8, 2025 07:23
@renovate renovate bot changed the title chore(deps): update dependency elixir to v1.18.2 chore(deps): update dependency elixir to v1.18.3 Mar 8, 2025
@renovate renovate bot force-pushed the renovate/elixir-1.x branch from b6b472d to 2a71720 Compare May 24, 2025 11:48
@renovate renovate bot changed the title chore(deps): update dependency elixir to v1.18.3 chore(deps): update dependency elixir to v1.18.4 May 24, 2025
@renovate renovate bot changed the title chore(deps): update dependency elixir to v1.18.4 chore(deps): update dependency elixir to v1.19.1 Oct 23, 2025
@renovate renovate bot force-pushed the renovate/elixir-1.x branch from 2a71720 to 9f83a4e Compare October 23, 2025 19:15
@renovate renovate bot changed the title chore(deps): update dependency elixir to v1.19.1 chore(deps): update dependency elixir to v1.19.2 Nov 3, 2025
@renovate renovate bot force-pushed the renovate/elixir-1.x branch from 9f83a4e to 91a468c Compare November 3, 2025 04:06
@renovate renovate bot changed the title chore(deps): update dependency elixir to v1.19.2 chore(deps): update dependency elixir to v1.19.3 Nov 16, 2025
@renovate renovate bot force-pushed the renovate/elixir-1.x branch from 91a468c to 2eca782 Compare November 16, 2025 19:34
@renovate renovate bot changed the title chore(deps): update dependency elixir to v1.19.3 chore(deps): update dependency elixir to v1.19.4 Nov 27, 2025
@renovate renovate bot force-pushed the renovate/elixir-1.x branch from 2eca782 to 85da858 Compare November 27, 2025 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant