Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: elixir-lang/elixir
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.13.4
Choose a base ref
...
head repository: elixir-lang/elixir
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.14.0
Choose a head ref

Commits on Nov 1, 2021

  1. Start v1.14.0-dev

    josevalim committed Nov 1, 2021
    Copy the full SHA
    8fa32c9 View commit details
  2. Copy the full SHA
    e611860 View commit details

Commits on Nov 3, 2021

  1. Improvements to Enum.slide/3 (#11361)

    - Support negative insertion indices
    - Give a clear RuntimeError, rather than a baffling CondClauseError, when you ask for an insertion point that matches the last element of your range
    s3cur3 authored and josevalim committed Nov 3, 2021
    Copy the full SHA
    368c311 View commit details
  2. Copy the full SHA
    6074846 View commit details

Commits on Nov 4, 2021

  1. Copy the full SHA
    aa4eeae View commit details
  2. Copy the full SHA
    9fea92e View commit details
  3. Copy the full SHA
    6ce87e2 View commit details
  4. Copy the full SHA
    e6a8b3c View commit details
  5. Copy the full SHA
    2425ed7 View commit details

Commits on Nov 5, 2021

  1. Copy the full SHA
    be6cf22 View commit details

Commits on Nov 7, 2021

  1. Fix formatting of map-like types in warnings (#11351)

    This came up in issue #11204:
    
    When emitting a warning for a type unification error,
    the compiler overly simplifies the formatting of types
    when these are maps or unions of maps.
    
    To address this, we recursively check for maps inside
    of a union type when comparing it to another map-like type.
    gldubc authored Nov 7, 2021
    Copy the full SHA
    f9ec2e7 View commit details
  2. Copy the full SHA
    79cd891 View commit details
  3. Copy the full SHA
    38dce7b View commit details

Commits on Nov 8, 2021

  1. Copy the full SHA
    18a0e0a View commit details
  2. Copy the full SHA
    64c2248 View commit details
  3. Copy the full SHA
    e0c60c6 View commit details

Commits on Nov 9, 2021

  1. Update remaining references to master branch with main (#11376)

    These two have been left out in 38dce7b
    eksperimental authored Nov 9, 2021
    Copy the full SHA
    001931f View commit details
  2. Copy the full SHA
    f0b81e8 View commit details
  3. Update CHANGELOG

    josevalim committed Nov 9, 2021
    Copy the full SHA
    f5d5506 View commit details
  4. Copy the full SHA
    011e25f View commit details

Commits on Nov 10, 2021

  1. Copy the full SHA
    34368b2 View commit details
  2. Fix bootstrap

    josevalim committed Nov 10, 2021
    Copy the full SHA
    ab92836 View commit details

Commits on Nov 11, 2021

  1. 1
    Copy the full SHA
    b2bf2a9 View commit details
  2. Copy the full SHA
    3947ab7 View commit details
  3. 1
    Copy the full SHA
    cf03a11 View commit details

Commits on Nov 12, 2021

  1. Copy the full SHA
    d9724cf View commit details
  2. Copy the full SHA
    d4a2dfc View commit details

Commits on Nov 13, 2021

  1. Copy the full SHA
    58455c1 View commit details

Commits on Nov 15, 2021

  1. Copy the full SHA
    a618213 View commit details
  2. Copy the full SHA
    39121ad View commit details
  3. Copy the full SHA
    72bd8e1 View commit details

Commits on Nov 16, 2021

  1. Add ~E sigil to EEx

    josevalim committed Nov 16, 2021
    Copy the full SHA
    988afb3 View commit details
  2. Update ~E docs (#11394)

    wojtekmach authored Nov 16, 2021
    Copy the full SHA
    6aaedc9 View commit details
  3. Add clarifications to Task.Supervisor.children/1 (#11395)

    Children ignored children that are restarting.
    
    Add a caution note about calling the function under low memory condition.
    RudolfMan authored Nov 16, 2021
    Copy the full SHA
    4e12695 View commit details
  4. Update CHANGELOG

    josevalim committed Nov 16, 2021
    Copy the full SHA
    bbd3429 View commit details

Commits on Nov 17, 2021

  1. Copy the full SHA
    2270c95 View commit details

Commits on Nov 18, 2021

  1. Copy the full SHA
    85a0451 View commit details
  2. Copy the full SHA
    916cf08 View commit details

Commits on Nov 19, 2021

  1. Copy the full SHA
    3b52a04 View commit details
  2. Copy the full SHA
    7dbcf9a View commit details
  3. Copy the full SHA
    bb386c9 View commit details

Commits on Nov 20, 2021

  1. Copy the full SHA
    b64afc9 View commit details
  2. Copy the full SHA
    d6b0fca View commit details

Commits on Nov 21, 2021

  1. erlang.org -> www.erlang.org

    josevalim committed Nov 21, 2021
    Copy the full SHA
    043f1c4 View commit details
  2. Copy the full SHA
    d0e4af9 View commit details

Commits on Nov 22, 2021

  1. Copy the full SHA
    6289cd6 View commit details

Commits on Nov 23, 2021

  1. Copy the full SHA
    31f50f0 View commit details
  2. Update CHANGELOG

    josevalim committed Nov 23, 2021
    Copy the full SHA
    5851879 View commit details

Commits on Nov 25, 2021

  1. Copy the full SHA
    6fa5018 View commit details
  2. Preserve opts while formatting failed inspect struct

    Also make formatting consistent.
    josevalim committed Nov 25, 2021
    Copy the full SHA
    4a88be8 View commit details
Showing 363 changed files with 37,559 additions and 8,247 deletions.
4 changes: 2 additions & 2 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -23,10 +23,10 @@ test_freebsd_task:
env:
CHECK_REPRODUCIBLE: true
LC_ALL: en_US.UTF-8
PATH: $PATH:/usr/local/lib/erlang22/bin
PATH: $PATH:/usr/local/lib/erlang24/bin

install_script:
- pkg install -y erlang-runtime22 git gmake
- pkg install -y erlang-runtime24 git gmake
- rm -rf .git
- gmake compile

3 changes: 2 additions & 1 deletion .formatter.exs
Original file line number Diff line number Diff line change
@@ -14,5 +14,6 @@

# Errors tests
assert_eval_raise: 3
]
],
normalize_bitstring_modifiers: false
]
21 changes: 0 additions & 21 deletions .github/ISSUE_TEMPLATE.md

This file was deleted.

11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
blank_issues_enabled: true

contact_links:
- name: Discuss proposals
url: https://groups.google.com/g/elixir-lang-core
about: Send proposals for new ideas to our mailing list

- name: Ask questions and support
url: https://elixirforum.com/
about: Ask questions, provide support and more on Elixir Forum
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: Report an issue
description:
Tell us about something that is not working the way we (probably) intend
body:
- type: markdown
attributes:
value: >
Thank you for contributing to Elixir! :heart:
Please, do not use this form for guidance, questions or support.
Try instead in [Elixir Forum](https://elixirforum.com),
the [IRC Chat](https://web.libera.chat/#elixir),
[Stack Overflow](https://stackoverflow.com/questions/tagged/elixir),
[Slack](https://elixir-slackin.herokuapp.com),
[Discord](https://discord.gg/elixir) or in other online communities.
- type: textarea
id: elixir-and-otp-version
attributes:
label: Elixir and Erlang/OTP versions
description: Paste the output of `elixir --version` here.
validations:
required: true

- type: input
id: os
attributes:
label: Operating system
description: The operating system that this issue is happening on.
validations:
required: true

- type: textarea
id: current-behavior
attributes:
label: Current behavior
description: >
Include code samples, errors, and stacktraces if appropriate.
If reporting a bug, please include the reproducing steps.
validations:
required: true

- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: A short description on how you expect the code to behave.
validations:
required: true
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
41 changes: 32 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -8,22 +8,29 @@ env:
ERLC_OPTS: "warnings_as_errors"
LANG: C.UTF-8

permissions:
contents: read

jobs:
test_linux:
name: Linux, ${{ matrix.otp_release }}, Ubuntu 18.04
strategy:
fail-fast: false
matrix:
otp_release: ['OTP-24.0', 'OTP-23.3', 'OTP-23.0', 'OTP-22.3', 'OTP-22.0']
development: [false]
include:
- otp_release: OTP-25.0
otp_latest: true
- otp_release: OTP-24.3
- otp_release: OTP-24.0
- otp_release: OTP-23.3
- otp_release: OTP-23.0
- otp_release: master
development: true
- otp_release: maint
development: true
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: Install Erlang/OTP
@@ -38,11 +45,12 @@ jobs:
run: |
rm -rf .git
make compile
echo "$PWD/bin" >> $GITHUB_PATH
- name: Build info
run: bin/elixir --version
- name: Check format
run: make test_formatted && echo "All Elixir source code files are properly formatted."
- name: Dyalizer
- name: Run Dialyzer
run: dialyzer -pa lib/elixir/ebin --build_plt --output_plt elixir.plt --apps lib/elixir/ebin/elixir.beam lib/elixir/ebin/Elixir.Kernel.beam
- name: Erlang test suite
run: make test_erlang
@@ -52,22 +60,37 @@ jobs:
continue-on-error: ${{ matrix.development }}
- name: Check reproducible builds
run: taskset 1 make check_reproducible
if: matrix.otp_release == 'OTP-24.0'
if: ${{ matrix.otp_latest }}
- name: Build docs
if: ${{ matrix.otp_latest }}
run: |
git config --global advice.detachedHead false
EX_DOC_LATEST_STABLE_VERSION=$(curl -s https://hex.pm/api/packages/ex_doc | jq --raw-output '.latest_stable_version')
for branch in main v${EX_DOC_LATEST_STABLE_VERSION}; do
echo "Building docs with ExDoc ${branch}"
cd ..
git clone https://github.com/elixir-lang/ex_doc.git --branch ${branch} --depth 1
cd ex_doc
../elixir/bin/mix do local.rebar --force + local.hex --force + deps.get + compile
cd ../elixir/
make docs
rm -rf ../ex_doc/
done
test_windows:
name: Windows, OTP-${{ matrix.otp_release }}, Windows Server 2019
strategy:
matrix:
otp_release: ['22.3']
otp_release: ['23.3']
runs-on: windows-2019
steps:
- name: Configure Git
run: git config --global core.autocrlf input
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: Cache Erlang/OTP package
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey\erlang
key: OTP-${{ matrix.otp_release }}-windows-2019
@@ -92,7 +115,7 @@ jobs:
name: Check POSIX-compliant
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: Install Shellcheck
72 changes: 72 additions & 0 deletions .github/workflows/notify.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# #!/usr/bin/env elixir
[tag] = System.argv()

Mix.install([
{:req, "~> 0.2.1"},
{:jason, "~> 1.0"}
])

%{status: 200, body: release} =
Req.get!("https://api.github.com/repos/elixir-lang/elixir/releases/tags/#{tag}")

if release["draft"] do
raise "cannot notify a draft release"
end

## Notify on elixir-lang-ann

names_and_checksums =
for asset <- release["assets"],
name = asset["name"],
name =~ ~r/.sha\d+sum$/,
do: {name, Req.get!(asset["browser_download_url"]).body}

line_items =
for {name, checksum_and_name} <- Enum.sort(names_and_checksums) do
[checksum | _] = String.split(checksum_and_name, " ")
root = Path.rootname(name)
"." <> type = Path.extname(name)
" * #{root} - #{type} - #{checksum}\n"
end

mail = %{
"From" => "jose.valim@dashbit.co",
"To" => "elixir-lang-ann@googlegroups.com",
"Subject" => "Elixir #{tag} released",
"HtmlBody" => "https://github.com/elixir-lang/elixir/releases/tag/#{tag}\n\n#{line_items}",
"MessageStream" => "outbound"
}

if System.get_env("DRYRUN") do
IO.puts("MAIL")
IO.inspect(mail)
else
headers = %{
"X-Postmark-Server-Token" => System.fetch_env!("ELIXIR_LANG_ANN_TOKEN")
}

resp = Req.post!("https://api.postmarkapp.com/email", {:json, mail}, headers: headers)
IO.puts("#{resp.status} elixir-lang-ann\n#{inspect(resp.body)}")
end

## Notify on Elixir Forum

post = %{
"title" => "Elixir #{tag} released",
"raw" => "https://github.com/elixir-lang/elixir/releases/tag/#{tag}\n\n#{release["body"]}",
# Elixir News
"category" => 28
}

if System.get_env("DRYRUN") do
IO.puts("POST")
IO.inspect(post)
else
headers = %{
"api-key" => System.fetch_env!("ELIXIR_FORUM_TOKEN"),
"api-username" => "Elixir"
}

resp = Req.post!("https://elixirforum.com/posts.json", {:json, post}, headers: headers)
IO.puts("#{resp.status} Elixir Forum\n#{inspect(resp.body)}")
end
28 changes: 28 additions & 0 deletions .github/workflows/notify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Notify

on:
release:
types:
- published

permissions:
contents: read

jobs:
notify:
runs-on: ubuntu-18.04
name: Notify
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- uses: erlef/setup-beam@v1
with:
otp-version: 24.3
elixir-version: 1.13.4
- name: Run Elixir script
env:
ELIXIR_FORUM_TOKEN: ${{ secrets.ELIXIR_FORUM_TOKEN }}
ELIXIR_LANG_ANN_TOKEN: ${{ secrets.ELIXIR_LANG_ANN_TOKEN }}
run: |
elixir .github/workflows/notify.exs ${{ github.ref_name }}
Loading