build(deps): update dependency elixir to v1.16.2 - autoclosed #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.12.3
->1.16.2
Release Notes
elixir-lang/elixir (elixir)
v1.16.2
Compare Source
1. Enhancements
Elixir
:defmodule
tracing event on module definitionMix
Mix.install_project_dir/0
Mix.install/2
installationMix.SCM.delete/1
2. Bug fixes
Elixir
Path.relative_to/2
dealt with "." as inputIEx
ExUnit
v1.16.1
Compare Source
1. Bug fixes
Elixir
Code.quoted_to_algebra/2
for operator with :do key as operandString.capitalize/1
with a single codepointIEx
$HOME
is setMix
v1.16.0
Compare Source
Official announcement: https://elixir-lang.org/blog/2023/12/22/elixir-v1-16-0-released/
1. Enhancements
EEx
Elixir
:emit_warnings
forCode.string_to_quoted/2
MismatchedDelimiterError
for handling mismatched delimiter exceptions\r\n
:offset
option toFile.stream!/2
UndefinedFunctionError
Kernel.ParallelCompiler.pmap/2
to compile multiple additional entries in parallelTrue
/False
/Nil
are used as aliases and there is no such aliasMacro.compile_apply/4
@nifs
annotation from Erlang/OTP 25@dialyzer
configurationString.replace_invalid/2
:limit
option toTask.yield_many/2
Logger
Logger.levels/0
Mix
MIX_PROFILE
to profile a list of comma separated tasks--sparse
option:applications
and:extra_applications
are used:details
when possiblelib/
and one of them is changed--sparse
optioninclude/
directory in releasesmix test test/foo_test.exs:13 test/bar_test.exs:27
2. Bug fixes
Elixir
Code.Fragment.surround_context/2
when matching on->
IO.binwrite/2
on terminated device (mirroringIO.write/2
)dbg
module is a compile-time dependencyunquote/1
and the function/macro itself is unusedElixir.
in their definition@after_compile
callbacks to avoid deadlocksMacro.to_string/1
for certain ASTsFile.cwd!/0
inPath.expand/1
andPath.absname/1
Path.relative_to/2
returns a relative path when the given argument does not share a common prefix withcwd
ExUnit
IEx
Mix
mix archive.install
mix escript.install
3. Soft deprecations (no warnings emitted)
Elixir
File.stream!(file, options, line_or_bytes)
in favor of keeping the options as last argument, as inFile.stream!(file, line_or_bytes, options)
Kernel.ParallelCompiler.async/1
in favor ofKernel.ParallelCompiler.pmap/2
Path.safe_relative_to/2
in favor ofPath.safe_relative/2
Mix
Mix.Task.Compiler.Diagnostic
4. Hard deprecations
Elixir
Date.range/3
with a negative step insteadEnum.slice/2
, givefirst..last//1
instead~R/.../
is deprecated in favor of~r/.../
. This is because~R/.../
still allowed escape codes, which did not fit the definition of uppercase sigilsString.slice/2
, givefirst..last//1
insteadExUnit
format_time/2
, useformat_times/1
insteadMix
:leex
to be added as a compiler to run theleex
compiler:yecc
to be added as a compiler to run theyecc
compilerv1.15.7
Compare Source
1. Enhancements
Elixir
2. Bug fixes
EEx
Mix
Mix.Tasks.Format.formatter_for_file/2
v1.15.6
Compare Source
This release also includes fixes to the Windows installer.
1. Bug fixes
EEx
Elixir
*
in bitstringsCode.quoted_to_algebra/2
Mix
:extra_applications
declare in umbrella projects are loadedv1.15.5
Compare Source
1. Enhancements
IEx
2. Bug fixes
Elixir
Code.Fragment.surround_context/2
for aliases and submodules of non-aliasesExUnit
IEx
Mix
blake
is always availablev1.15.4
Compare Source
1. Bug fixes
Mix
v1.15.3
Compare Source
1. Enhancements
Elixir
Mix
Mix.install/2
2. Bug fixes
Elixir
with_diagnostics
propagate warnings from inner Erlang passesIEx
--remsh
on Erlang/OTP 25 and earlierMix
__mix_recompile__?
callbacks are properly invokedv1.15.2
Compare Source
1. Bug fixes
IEx
v1.15.1
Compare Source
1. Enhancements
Code.string_to_quoted/2
honors:static_atoms_encoder
for multi-letter sigils2. Bug fixes
ExUnit
capture_log
capture_log
callsIEx
pry
works on Erlang/OTP 25 and earlier while IEx is bootingCode.Fragment.surround_context
considers surround context around spaces and parensLogger
:function
as metadataMix
mtime was successfully retrieved
--werl
from release scripts on Erlang/OTP 26v1.15.0
Compare Source
Official announcement: https://elixir-lang.org/blog/2023/06/19/elixir-v1-15-0-released/
1. Enhancements
EEx
Elixir
%s
) toCalendar.strftime/2
Code.format_string!/2
now converts'charlists'
into~c"charlists"
by default:on_undefined_variable
to the compiler options to preserve the warning behaviour which was deprecated back in Elixir v1.4Code.loaded?/1
andCode.ensure_all_loaded(!)/1
Code.prepend_paths/1
,Code.append_paths/1
, andCode.delete_paths/1
Code.with_diagnostics/2
to return diagnostics when compiling and evaluating codeCode.Fragment.cursor_context/1
Code.Fragment.container_cursor_to_quoted/1
Date.before?/2
andDate.after?/2
DateTime.before?/2
andDateTime.after?/2
DateTime.utc_now/2
File.Stream
Inspect
now renders'charlists'
as~c"charlists"
by defaultcase
andcond
insidedbg/2
t:nonempty_binary/0
andt:nonempty_bitstring/0
@behaviour
s as runtime dependencieserror: ...
messages, similar towarning: ...
Code.compiler_options(on_undefined_variable: :warn)
at the top of yourmix.exs
--sname undefined
/--name undefined
so a name is automatically generatedKeyword.split_with/2
Macro.Env.lookup_alias_as/2
Map.split_with/2
Map.intersect/2
andMap.intersect/3
MapSet.split_with/2
NaiveDateTime.beginning_of_day/1
andNaiveDateTime.end_of_day/1
NaiveDateTime.before?/2
andNaiveDateTime.after?/2
NaiveDateTime.utc_now/2
Module.get_last_attribute/3
:return_separator
optionProcess.alias/0,1
andProcess.unalias/1
Range.split/2
:fast_ascii
mode toString.valid?/2
Supervisor
:lines
inSystem.cmd/3
to capture output line by lineTask.yield_many/2
Task.Supervisor.start_child/2
Time.before?/2
andTime.after?/2
URI.append_path/2
ExUnit
{module, function}
tuples in ExUnitsetup
callbacksExUnit.Case.get_last_registered_test/1
ExUnit.DocTest.doctest_file/2
doctest_data
in doctest tagsIEx
--dbg pry
IEX_HOME
alias
,import
, andrequire
runtime_info(:allocators)
Range
,DateTime
, andRegex
Logger
Logger.add_handlers/1
andLogger.default_formatter/1
default_formatter
anddefault_handler
configuration for Logger which configures Erlang/OTP logger:always_evaluate_messages
configuration to LoggerMix
:start_concurrently
configuration--all-warnings
by default@external_resources
optional_applications
to.app
file--purge-consolidation-path-if-stale
which will purge the given consolidation path if compilation is requiredmix deps.get
/mix deps.update
--check-locked
which raises if changes to the lockfile are required--no-exit
option--check-formatted
fails--trace-to-file
to improve performance when working with large outputseval
command--output
flagdef cli
to unify all CLI defaults in a single placeMix.Project.deps_tree/1
2. Bug fixes
Elixir
Exception.blame/3
File.cp/2
File.rm_rf/1
try/rescue
...
inside typespecsbehaviour_info
andmodule_info
functions from Erlang modulesModule.get_attribute/3
returnsnil
and not the given default value when an attribute has been explicitly set asnil
System.stop/1
executesURI.merge/2
works accordingly with relative pathsExUnit
@tag capture_log: true
was set to true and the Logger application was shut down in the middle of the testsetup_all
IEx
whenever the input reader was killed
Mix
cwd
in compiler cache keyerlsrv.exe
in path with spacesmix xref
is used at the umbrella root3. Soft deprecations (no warnings emitted)
Elixir
File.cp/3
andFile.cp_r/3
with a function as third argumentis deprecated in favor of a keyword list
:return_diagnostics
option to beset to true when compiling or requiring code
Logger
add_backend/2
,remove_backend/2
, andconfigure_backend/2
have been deprecatedin favor of the new
:logger_backends
dependency:console
configuration has been deprecated in favor of:default_formatter
:backends
configuration has been deprecated in favor ofLogger.add_handlers/1
Mix
:preferred_cli_env
is deprecated in favor of:preferred_envs
indef cli
:preferred_cli_target
is deprecated in favor of:preferred_targets
indef cli
HEX_MIRROR
is deprecated in favor ofHEX_BUILDS_URL
4. Hard deprecations
Elixir
Calendar.ISO.day_of_week/3
is deprecated in favor ofCalendar.ISO.day_of_week/4
Exception.exception?/1
is deprecated in favor ofKernel.is_exception/1
...
as a valid function call identifierRegex.regex?/1
is deprecated in favor ofKernel.is_struct/2
Logger
Logger.warn/2
is deprecated in favor ofLogger.warning/2
v1.14.5
Compare Source
This release contains fixes for Erlang/OTP 26.
Bug fixes
Elixir
Mix
v1.14.4
Compare Source
This release adds basic support for Erlang/OTP 26. When migrating
to Erlang/OTP 26, keep it mind it changes how maps are stored
internally and they will be printed and traversed in a different
order (note maps never provided a guarantee of their order).
To aid migration, this release adds
:sort_maps
toinspect
custom options, in case you want to sort them before inspection:
Enhancements
Elixir
:sort_maps
toInspect.Opts.custom_options
IEx
Mix
Bug fixes
Elixir
Code.quoted_to_string_with_comments/2
debug_info/4
when returning core_v1quote keep: true
to avoid invalid stacktracesStream.zip/1
hanging on empty listMix
v1.14.3
Compare Source
1. Enhancements
Elixir
ExUnit
2. Bug fixes
Elixir
Calendar.strftime/2
is_struct/2
guardsdefguard
expansiondefmodule
Macro.to_string/1
for large negative integers__ENV__
in macrosPath.wildcard/2
expands..
symlinks accordinglyRange.disjoint?/2
implementationExUnit
v1.14.2
Compare Source
1. Enhancements
Elixir
Code.eval_quoted_with_env/4
with support for the:prune_binding
optionExUnit
:doctest
and:doctest_line
as meta tagsExUnit.Formatter.format_assertion_diff/4
Mix
Mix.install/2
accepts atoms as paths2. Bug fixes
Elixir
size*unit
shortcut in bitstringdefguard
:for
in protocols with the appropriate envExUnit
ExUnit.run/1
Mix
v1.14.1
Compare Source
1. Enhancements
Elixir
Application.compile_env/3
inside module attributesMacro.expand_literals/2
andMacro.expand_literals/3
:close_stdin
toSystem.shell/2
Mix
--all-warnings
option2. Bug fixes
Elixir
:uniq
is given infor
comprehensions and the result is unused@enforce_keys
attribute afterdefstruct
declaration:debug_info
chunkMacro.to_string/2
when converting an AST with:erlang.binary_to_atom/2
String.split/3
andString.next_grapheme/1
returning invalid results on invalid UTF-8 encodingSystem.shell/2
uri.port
as:undefined
in certain cases inURI.new/1
ExUnit
:moduledoc
and functions are specified in:only
IEx
--no-pry
is givenMix
.formatter.exs
so they are properly re-evaluted on every callv1.14.0
Compare Source
Elixir v1.14 brings many improvements to the debugging experience in Elixir
and data-type inspection. It also includes a new abstraction for easy
partitioning of processes called
PartitionSupervisor
, as well as improvedcompilation times and error messages.
Elixir v1.14 is the last version to support Erlang/OTP 23. Consider updating
to Erlang/OTP 24 or Erlang/OTP 25.
dbg
Kernel.dbg/2
is a new macro that's somewhat similar toIO.inspect/2
, butspecifically tailored for debugging.
When called, it prints the value of whatever you pass to it, plus the debugged
code itself as well as its location. This code:
Prints this:
dbg/2
can do more. It's a macro, so it understands Elixir code. You can seethat when you pass a series of
|>
pipes to it.dbg/2
will print the valuefor every step of the pipeline. This code:
Prints this:
IEx and Prying
dbg/2
supports configurable backends. IEx automatically replaces the defaultbackend by one that halts the code execution with
IEx.Pry
, giving developersthe option to access local variables, imports, and more. This also works with
pipelines: if you pass a series of
|>
pipe calls todbg
(or pipe into it at theend, like
|> dbg()
), you'll be able to step through every line in the pipeline.You can keep the default behaviour by passing the
--no-pry
option to IEx.PartitionSupervisor
PartitionSupervisor
is a new module that implements a new supervisor type. Thepartition supervisor is designed to help with situations where you have a single
supervised process that becomes a bottleneck. If that process's state can be
easily partitioned, then you can use
PartitionSupervisor
to supervise multipleisolated copies of that process running concurrently, each assigned its own
partition.
For example, imagine you have an
ErrorReporter
process that you use to reporterrors to a monitoring service.
As the concurrency of your application goes up, the
ErrorReporter
processmight receive requests from many other processes and eventually become a
bottleneck. In a case like this, it could help to spin up multiple copies of the
ErrorReporter
process under aPartitionSupervisor
.The
PartitionSupervisor
will spin up a number of processes equal toSystem.schedulers_online()
by default (most often one per core). Now, whenrouting requests to
ErrorReporter
processes we can use a:via
tuple androute the requests through the partition supervisor.
Using
self()
as the partitioning key here means that the same process willalways report errors to the same
ErrorReporter
process, ensuring a form ofback-pressure. You can use any term as the partitioning key.
A Common Example
A common and practical example of a good use case for
PartitionSupervisor
ispartitioning something like a
DynamicSupervisor
. When starting many processesunder it, a dynamic supervisor can be a bottleneck, especially if said processes
take a long time to initialize. Instead of starting a single
DynamicSupervisor
,you can start multiple:
Now you start processes on the dynamic supervisor for the right partition.
For instance, you can partition by PID, like in the previous example:
Improved errors on binaries and evaluation
Erlang/OTP 25 improved errors on binary construction and evaluation. These improvements
apply to Elixir as well. Before v1.14, errors when constructing binaries would
often be hard-to-debug generic "argument errors". With Erlang/OTP 25 and Elixir v1.14,
more detail is provided for easier debugging. This work is part of EEP
54.
Before:
Now:
Slicing with steps
Elixir v1.12 introduced stepped ranges, which are ranges where you can
specify the "step":
Stepped ranges are particularly useful for numerical operations involving
vectors and matrices (see Nx, for example).
However, the Elixir standard library was not making use of stepped ranges in its
APIs. Elixir v1.14 starts to take advantage of steps with support for stepped
ranges in a couple of functions. One of them is
Enum.slice/2
:binary_slice/2
(andbinary_slice/3
for completeness) has been added to theKernel
module, that works with bytes and also support stepped ranges:Expression-based inspection and
Inspect
improvementsIn Elixir, it's conventional to implement the
Inspect
protocol for opaquestructs so that they're inspected with a special notation, resembling this:
This is generally done when the struct content or part of it is private and the
%name{...}
representation would reveal fields that are not part of the publicAPI.
The downside of the
#name<...>
convention is that the inspected output is notvalid Elixir code. For example, you cannot copy the inspected output and paste
it into an IEx session.
Elixir v1.14 changes the convention for some of the standard-library structs.
The
Inspect
implementation for those structs now returns a string with a validElixir expression that recreates the struct when evaluated. In the
MapSet
example above, this is what we have now:
The
MapSet.new/1
expression evaluates to exactly the struct that we'reinspecting. This allows us to hide the internals of
MapSet
, while keepingit as valid Elixir code. This expression-based inspection has been
implemented for
Version.Requirement
,MapSet
, andDate.Range
.Finally, we have improved the
Inspect
protocol for structs so thatfields are inspected in the order they are declared in
defstruct
.The option
:optional
has also been added when deriving theInspect
protocol, giving developers more control over the struct representation.
See the updated documentation for
Inspect
for a general rundown onthe approaches and options available.
1. Enhancements
EEx
<%!-- --%>
EEx.tokenize/2
Elixir
Access.slice/1
Application.compile_env/4
andApplication.compile_env!/3
to read the compile-time environment inside macrosDateTime.from_iso8601/2
day
/hour
/minute
onadd
/diff
across different calendar modules:normalize_bitstring_modifiers
toCode.format_string!/2
Code.compile_string/2
andCode.compile_quoted/2
Code.env_for_eval/1
andCode.eval_quoted_with_env/3
__MODULE__
in several functionsEnum.slice/2
dereference_symlinks: true
inFile.cp/3
andFile.cp_r/3
1.0e16
and the fractional value is precisely zeroFloat.min_finite/0
andFloat.max_finite/0
Inspect
protocol:optional
when deriving the Inspect protocol for hiding fields that match their default valuedefstruct
Date.Range
,MapSet
, andVersion.Requirement
Macro.Env
and keywords as stacktrace definitions inIO.warn/2
IO.ANSI.syntax_colors/0
and related configuration to be shared across IEx anddbg
dbg/0-2
macro..
as a nullary operator that returns0..-1//1
binary_slice/2
andbinary_slice/3
generated: true
annotations on macro expansionKeyword.from_keys/2
andKeyword.replace_lazy/3
List.keysort/3
with support for asorter
functionMacro.classify_atom/1
andMacro.inspect_atom/2
Macro.expand_literal/2
andMacro.path/2
Macro.Env.prune_compile_info/1
Map.from_keys/2
andMap.replace_lazy/3
MapSet.filter/2
,MapSet.reject/2
, andMapSet.symmetric_difference/2
Node.spawn_monitor/2
andNode.spawn_monitor/4
@after_verify
attribute for executing code whenever a module is verifiedPartitionSupervisor
that starts multiple isolated partitions of the same child for scalabilityPath.safe_relative/1
andPath.safe_relative_to/2
Registry.count_select/2
Stream.duplicate/2
andStream.transform/5
String.replace/3
,String.split/3
, andString.splitter/3
String.slice/2
:zip_input_on_exit
option toTask.async_stream/3
:mfa
in theTask
struct for reflection purposesURI.append_query/2
Version.to_string/1
Version.Requirement
source in theInspect
protocolExUnit
ExUnit.Callbacks.start_link_supervised!/2
ExUnit.run/1
to rerun test modulesIEx
--dot-iex
line by line::
inside<<...>>
)pid/1
h/1
Logger
Logger.put_process_level/2
Mix
:config_path
and:lockfile
options toMix.install/2
--no-optional-deps
to skip optional dependencies to test compilation works without optional dependenciesMix.Dep.Converger
now tells which deps formed a cycle--app
option to restrict recursive tasks in umbrella projects+
as a task separator instead of commamix format -
when reading from stdinmix format
plugins are missing:runtime_config_path
acceptfalse
to skip theconfig/runtime.exs
:test_elixirc_options
and default to not generating docs nor debug info chunk for tests--group
flag inmix xref graph
2. Bug fixes
Elixir
Calendar.strftime/3
--rpc-eval
usage__exception__
field astrue
when expanding exceptions in typespecsTrue
,False
, andNil
aliases are used@derive
attributesdefimpl :for
Regex.compile/2
System.fetch_env!/1
to mirror map operationsExUnit
tmp_dir
in ExUnit to avoid test name collisioncapture_log
)ExUnit.after_suite/1
callback even when no tests runsetup
with imported function from withindescribe
failed to compileIEx
exports/1
in IEx for long function namesMix
--warnings-as-errors
when used with--all-warnings
mix format
RELEASE_MODE
afterenv.{sh,bat}
are executedmix xref trace
runtime: false
onMix.install/2
3. Soft deprecations (no warnings emitted)
Elixir
File.cp/3
andFile.cp_r/3
is deprecated.Instead pass the callback the
:on_conflict
key of a keyword listEEx
<%# ... %>
for comments is deprecated. Please use<% # ... %>
or the new multi-line comments with<%!-- ... --%>
Logger
Logger.enable/1
andLogger.disable/1
in favor ofLogger.put_process_level/2
Mix
--app
option inmix cmd CMD
is deprecated in favor of the more efficientmix do --app app cmd CMD
4. Hard deprecations
Elixir
Application.get_env/3
and friends in the module body is now discouraged, useApplication.compile_env/3
insteaduse Bitwise
is deprecated, useimport Bitwise
instead~~~
is deprecated in favor ofbnot
for clarity:each_cycle
is deprecated, return a{:compile | :runtime, modules, warnings}
tuple instead<|>
to avoid ambiguity with upcoming extended numerical operatorsString.starts_with?/2
Logger
$levelpad
on message formattingMix
Mix.Tasks.Xref.calls/1
is deprecated in favor of compilation tracers5. Backwards incompatible changes
Mix
v1.13.4
Compare Source
This release has been verified to work with Erlang/OTP 25 RC2.
1. Enhancements
Elixir
2. Bug fixes
Elixir
require
Registry
send work with named triplets3. Deprecations
Mix
Checksums
325fbdd
2ae1b2e
v1.13.3
Compare Source
1. Enhancements
Mix
2. Bug fixes
Elixir
Macro.to_string/1
when the plain aliasElixir
is givenString.split_at/2
Mix
Checksums
7a2d0ff
e1110f7
v1.13.2
Compare Source
1. Enhancements
Mix
.ex
and.exs
files2. Bug fixes
Elixir
Code.Fragment.container_cursor_to_quoted/2
:uniq
was used inside another comprehension with:uniq
env.context_modules
is properly set inside optimizeddefmodule
Keyword.map/2
as it is equivalent toKeyword.new/2
Map.map/2
as it is equivalent toMap.new/2
Checksums
53bf917
442ee13
v1.13.1
Compare Source
1. Bug fixes
Elixir
SyntaxError
andTokenMissingError
if line is emptyArgumentError
for improper lists onapply/3
line_length
forMacro.to_string/1
Macro.to_string/1
slice
with negative positions in rangesURI.parse/1
asURI.new/1
is too strict in many common casesURI.new/1
returns nil for empty pathsIEx
--version
flag halts IExMix
Mix.install/2
cacheChecksums
40762ff
066586b
v1.13.0
Compare Source
Announcement: https://elixir-lang.org/blog/2021/12/03/elixir-v1-13-0-released/
1. Enhancements
EEx
:parser_options
to EEx functionsElixir
c:Calendar.year_of_era/3
to support calendars where the beginning of a new era does not align with the beginning of a new year--short-version
on the CLI that does not boot the VMCode.string_to_quoted_with_comments/2
andCode.quoted_to_algebra/2
:token_metadata
to aliases and remote calls when parsing stringsCode.Fragment
module to provide best-effort information from code fragments. The module currently provides an updatedCode.Fragment.cursor_context/2
with operator support andCode.Fragment.surround_context/2
which looks at a given position in a fragment and find its surrounding delimitersCode.format_string!/2
{:on_module, bytecode, :none}
trace to compilation tracersEnum.concat/1
for lists of listsEnum.slide/3
Inspect.Opts.default_inspect_fun/1
:eof
to be given as limit toIO.getn/2
:sigils
option inimport Mod, only: :sigils
and allow the sigil modifiers to be also digitsget_in
consistently abort whennil
values are found?\
is used and there is no need for a escape character**/2
)Keyword.validate/2
Keyword.filter/2
andKeyword.map/2
List.keyfind!/3
Macro.prewalker/1
andMacro.postwalker/1
required?/2
,lookup_import/2
,fetch_alias/2
, andfetch_macro_alias/2
Map.filter/2
andMap.map/2
:nillify_clauses
inModule.get_definition/3
Module.attributes_in/1
andModule.overridables_in/1
OptionParser.ParseError
messages@__records__
Task.completed/1
Task.ignore/1
to keep a task running but ignoring all of its resultsTask.async*
functionsURI.new/1
andURI.new!/1
ExUnit
with_io/3
to return result with captured iowith_log/2
to return result with captured logsIEx
"./
or"/
or"DRIVER:
whereDRIVER
is a single letterr/1
Logger
Logger.put_application_level/2
Mix
MIX_INSTALL_FORCE
environment variable support:config
and:system_env
inMix.install/2
Mix.installed?/0
:default
option toMix.Shell.yes?
loadconfig
before building archivemix.exs
changes, instead recompile only files usingMix.Project
or trigger a recompilation if a compiler option changes:subdir
option to git depsloadconfig
before building escript:plugins
inmix format
that can hook into custom extensions and sigilsMix.Tasks.Format.formatter_for_file/2
sub_dirs
in Rebar 2 to help migration towards Rebar 3--if-missing
option whenConfiguration
📅 Schedule: Branch creation - "before 5am every weekday,every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.