Skip to content

Commit cc0cb4f

Browse files
committed
Update CHANGELOG
1 parent 261a3ed commit cc0cb4f

File tree

3 files changed

+44
-7
lines changed

3 files changed

+44
-7
lines changed

CHANGELOG.md

+39-2
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,32 @@
22

33
This release no longer supports WERL (a graphical user interface for the Erlang terminal on Windows). For a better user experience on Windows terminals, use Erlang/OTP 26+.
44

5+
## Support for new types
6+
7+
[TODO](https://elixir-lang.org/blog/2024/08/28/typing-lists-and-tuples/).
8+
9+
## `mix format --migrate`
10+
11+
TODO.
12+
513
## v1.18.0-dev
614

715
### 1. Enhancements
816

917
#### Elixir
1018

1119
* [CLI] Add experimental PowerShell scripts for `elixir`, `elixirc`, and `mix` on Windows. Those provide a safer entry point for running Elixir from other platforms
20+
* [Code] Support several migration options in `Code.format_string!/2`
21+
* [Code] Add parenthesis around `--` and `---` in `Code.format_string!/2` to make precedence clearer
22+
* [Config] Add `Config.read_config/1`
1223
* [Enumerable] Add `Enum.product_by/2` and `Enum.sum_by/2`
1324
* [Exception] Add `MissingApplicationsError` exception to denote missing applications
1425
* [Kernel] Update source code parsing to match [UTS #55](https://www.unicode.org/reports/tr55/) 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
1526
* [Kernel] Warn on bidirectional confusability in identifiers
27+
* [Kernel] Now verify the type of the binary generators
28+
* [Kernel] Track the type of tuples in patterns and inside `elem/2`
1629
* [List] Add `List.ends_with?/2`
17-
* [Macro] Improve `dbg` handling of `if/2`, `unless/2`, and code blocks
30+
* [Macro] Improve `dbg` handling of `if/2` and of code blocks
1831
* [Process] Handle arbitrarily high integer values in `Process.sleep/1`
1932
* [String] Inspect special whitespace and zero-width characters using their Unicode representation
2033

@@ -25,14 +38,37 @@ This release no longer supports WERL (a graphical user interface for the Erlang
2538
#### IEx
2639

2740
* [IEx] Add `:dot_iex` support to `IEx.configure/1`
41+
* [IEx] Add report for normal/shutdown exits in IEx
42+
43+
#### Mix
44+
45+
* [mix format] Add `mix format --migrate` to migrate from deprecated functionality
46+
* [mix test] Taint failure manifest if requiring or compiling tests fail
2847

2948
### 2. Bug fixes
3049

50+
#### Elixir
51+
52+
* [Code.Fragment] Properly handle keyword keys as their own entry
53+
* [Inspect.Algebra] Ensure `next_break_fits` respects `line_length`
54+
* [Module] Include module attribute line and name when tracing its aliases
55+
56+
#### ExUnit
57+
58+
* [ExUnit.Assertions] Raise if guards are used in `assert/1` with `=`
59+
60+
#### Mix
61+
62+
* [mix compile] Ensure warnings from external resources are emitted with `--all-warnings` when files do not change
63+
* [mix deps.compile] Fix escaping issues when invoking `rebar3` in some cases
64+
* [mix escript] Fix escript layout and support storing `priv` directories
65+
* [mix release] Make `.app` files deterministic in releases
66+
3167
### 3. Soft deprecations (no warnings emitted)
3268

3369
#### Elixir
3470

35-
* [List] `List.zip/1` is deprecated in favor of `Enum.zip/1`
71+
* [Kernel] Deprecate `unless` in favor of `if`. Use `mix format --migrate` to automate the migration
3672

3773
### 4. Hard deprecations
3874

@@ -44,6 +80,7 @@ This release no longer supports WERL (a graphical user interface for the Erlang
4480
#### Elixir
4581

4682
* [Enumerable] Deprecate returning a two-arity function in `Enumerable.slice/1`
83+
* [List] `List.zip/1` is deprecated in favor of `Enum.zip/1`
4784
* [Module] Deprecate `Module.eval_quoted/3` in favor of `Code.eval_quoted/3`
4885
* [Range] Deprecate inferring negative ranges on `Range.new/2`
4986

lib/elixir/lib/list.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ defmodule List do
633633
[other]
634634
end
635635

636-
@doc deprecated: "Use Enum.zip/1 instead"
636+
@deprecated "Use Enum.zip/1 instead"
637637
def zip(list_of_lists) when is_list(list_of_lists) do
638638
Enum.zip(list_of_lists)
639639
end

lib/mix/lib/mix/tasks/format.ex

+4-4
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,12 @@ defmodule Mix.Tasks.Format do
7979
passed via stdin is valid Elixir code. Defaults to "stdin.exs".
8080
8181
* `--migrate` - enables the `:migrate` option, which should be able to
82-
automatically fix some deprecation warnings but is changing the AST.
82+
automatically fix some deprecation warnings but changes the AST.
8383
This should be safe in typical projects, but there is a non-zero risk
8484
of breaking code for meta-programming heavy projects that relied on a
85-
specific AST, or projects that are re-defining functions from the `Kernel`.
86-
See the "Migration formatting" section in `Code.format_string!/2` for
87-
more information.
85+
specific AST. We recommend running this task in its separate commit and
86+
reviewing its output before committing. See the "Migration formatting"
87+
section in `Code.format_string!/2` for more information.
8888
8989
## When to format code
9090

0 commit comments

Comments
 (0)