{
 "id": "elixir",
 "name": "Elixir",
 "url": "https://dev-news.anonyfox.com/elixir/",
 "site": "https://elixir-lang.org",
 "ecosystem": "beam",
 "title": "Elixir release history and what changed since 2024",
 "description": "Every Elixir release since January 2024 from the elixir-lang/elixir GitHub releases, the maintained branches side by side, and what happened to the Elixir stories dev-news covered back then.",
 "lede": {
  "date": "2026-10-25",
  "paragraphs": [
   "Elixir 1.20 came out on 3 June 2026 after seven release candidates and 145 days. The announcement calls Elixir \"now a gradually typed language\". It finds bugs without type annotations, and there is still no syntax for writing a type down.",
   "The latest release is 1.20.4 from 28 August 2026, a security fix for CVE-2026-75758. The advisory marks every release since 1.15.0 as affected. The compatibility page promises security patches for five branches, 1.16 to 1.20, but only three got a fixed release that day. The newest 1.17 release is still 1.17.3, from September 2024."
  ]
 },
 "latest": {
  "version": "v1.18.5",
  "date": "2026-08-28",
  "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.18.5",
  "summary": "[List] Avoid recursion when invalid charlists are given to List.tostring/1 or List.tocharlist/1 (CVE-2026-75758, GHSA-jf5q-v438-665c)"
 },
 "stable_releases_since_2024": 29,
 "prereleases_since_2024": 13,
 "releases": [
  {
   "version": "v1.18.5",
   "date": "2026-08-28",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.18.5",
   "summary": "[List] Avoid recursion when invalid charlists are given to List.tostring/1 or List.tocharlist/1 (CVE-2026-75758, GHSA-jf5q-v438-665c)"
  },
  {
   "version": "v1.19.6",
   "date": "2026-08-28",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.19.6",
   "summary": "[List] Avoid recursion when invalid charlists are given to List.tostring/1 or List.tocharlist/1 (CVE-2026-75758, GHSA-jf5q-v438-665c)"
  },
  {
   "version": "v1.20.4",
   "date": "2026-08-28",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.20.4",
   "summary": "[List] Avoid recursion when invalid charlists are given to List.tostring/1 or List.tocharlist/1 (CVE-2026-75758, GHSA-jf5q-v438-665c)"
  },
  {
   "version": "v1.20.3",
   "date": "2026-08-04",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.20.3",
   "summary": "[Kernel.ParallelCompiler] Batch type checker cache operations to improve compilation times"
  },
  {
   "version": "v1.20.2",
   "date": "2026-06-23",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.20.2",
   "summary": "[Kernel.ParallelCompiler] Include per-module type checking times when compiler profiling is enabled with profile: :time"
  },
  {
   "version": "v1.20.1",
   "date": "2026-06-09",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.20.1",
   "summary": "[Version] Limit integer components in Version to 14 decimal bytes, to avoid parsing too large integers from untrusted user input. We strongly advise…"
  },
  {
   "version": "v1.20.0",
   "date": "2026-06-03",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.20.0",
   "summary": null
  },
  {
   "version": "v1.20-latest",
   "date": "2026-05-21",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.20-latest",
   "summary": null
  },
  {
   "version": "v1.19.5",
   "date": "2026-01-09",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.19.5",
   "summary": "[Protocol] Optimize protocol consolidation to no longer load structs"
  },
  {
   "version": "v1.19.4",
   "date": "2025-11-27",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.19.4",
   "summary": "[mix xref] Add --min-cycle-label to help projects adapt to the more precise mix xref graph reports in Elixir v1.19. In previous versions, Elixir would break…"
  },
  {
   "version": "v1.19.3",
   "date": "2025-11-13",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.19.3",
   "summary": "[Kernel] Support /E modifier for regular expressions in config files"
  },
  {
   "version": "v1.19.2",
   "date": "2025-11-02",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.19.2",
   "summary": "[Kernel] Measure and optimize writing of .beam files in the compiler"
  },
  {
   "version": "v1.19.1",
   "date": "2025-10-20",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.19.1",
   "summary": "[EEx] Address Dialyzer warnings when invoking EEx.compilestring"
  },
  {
   "version": "v1.19.0",
   "date": "2025-10-16",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.19.0",
   "summary": "[Access] Add Access.values/0 for traversing maps and keyword lists values"
  },
  {
   "version": "v1.19-latest",
   "date": "2025-06-07",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.19-latest",
   "summary": null
  },
  {
   "version": "v1.18.4",
   "date": "2025-05-21",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.18.4",
   "summary": "[IEx.Helpers] Add IEx.Helpers.processinfo/1 which prints process information"
  },
  {
   "version": "v1.18.3",
   "date": "2025-03-06",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.18.3",
   "summary": "[JSON] Encode any JSON key to string"
  },
  {
   "version": "v1.18.2",
   "date": "2025-01-22",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.18.2",
   "summary": "[CLI] Add --color/--no-color for enabling and disabling of ANSI colors"
  },
  {
   "version": "v1.18.1",
   "date": "2024-12-24",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.18.1",
   "summary": "[Kernel] Do not emit type violation warnings when comparing or matching against literals"
  },
  {
   "version": "v1.18.0",
   "date": "2024-12-19",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.18.0",
   "summary": "[CLI] Add experimental PowerShell scripts for elixir, elixirc, and mix on Windows. Those provide a safer entry point for running Elixir from other platforms"
  },
  {
   "version": "v1.18-latest",
   "date": "2024-12-10",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.18-latest",
   "summary": null
  },
  {
   "version": "v1.17.3",
   "date": "2024-09-18",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.17.3",
   "summary": "[Duration] Fix parsing of fractional durations with non-positive seconds"
  },
  {
   "version": "v1.17.2",
   "date": "2024-07-06",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.17.2",
   "summary": "[Logger.Translator] Fix logger crash when :genstatem's formatstatus/2 returns non-tuple"
  },
  {
   "version": "v1.17.1",
   "date": "2024-06-18",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.17.1",
   "summary": "[mix compile.elixir] Do not run fixpoint computation on runtime dependencies. This should considerably improve compilation times for large projects when…"
  },
  {
   "version": "v1.17.0",
   "date": "2024-06-12",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.17.0",
   "summary": "[Access] Add Access.find/1 that mirrors Enum.find/2"
  },
  {
   "version": "v1.15.8",
   "date": "2024-05-20",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.15.8",
   "summary": "[bin/elixir] Properly handle the --dbg flag in Elixir's CLI"
  },
  {
   "version": "v1.16.3",
   "date": "2024-05-20",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.16.3",
   "summary": "[bin/elixir] Properly handle the --dbg flag in Elixir's CLI"
  },
  {
   "version": "v1.16.2",
   "date": "2024-03-10",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.16.2",
   "summary": "[Code] Emit :defmodule tracing event on module definition"
  },
  {
   "version": "v1.16.1",
   "date": "2024-01-31",
   "url": "https://github.com/elixir-lang/elixir/releases/tag/v1.16.1",
   "summary": "[Code] Fix Code.quotedtoalgebra/2 for operator with :do key as operand"
  }
 ],
 "log": [],
 "then": [
  {
   "date": "2024-08-15",
   "title": "Introducing the official Elixir language server team",
   "source": "https://elixir-lang.org/blog/2024/08/15/welcome-elixir-language-server-team/",
   "old_url": "https://dev-news.anonyfox.com/articles/introducing-the-official-elixir-language-server-team",
   "next": [
    "Lexical, ElixirLS and Next LS were merged into one project called Expert. Its changelog lists 0.1.0 on 27 March 2026, about 19 months after the announcement, and 0.2.0 on 20 October 2026."
   ]
  },
  {
   "date": "2024-08-28",
   "title": "Typing lists and tuples in Elixir",
   "source": "https://elixir-lang.org/blog/2024/08/28/typing-lists-and-tuples/",
   "old_url": "https://dev-news.anonyfox.com/articles/designing-typing-rules-for-lists-and-tuples-in-elixir",
   "next": [
    "The type work went into three releases: 1.18 in December 2024, 1.19 in October 2025 and 1.20 in June 2026. 1.20 infers types for every language construct, guards included, still without user-written signatures."
   ]
  }
 ],
 "coverage": {
  "ok": true,
  "expected": 42,
  "present": 42,
  "checked_at": "2026-10-24T17:23:21.434Z",
  "since": "2024-01-01T00:00:00.000Z"
 },
 "sources": {
  "releases": {
   "type": "github",
   "repo": "elixir-lang/elixir",
   "tag_filter": "^v\\d"
  },
  "feed": "https://elixir-lang.org/atom.xml"
 },
 "feed": "https://dev-news.anonyfox.com/elixir/feed.xml",
 "markdown": "https://dev-news.anonyfox.com/elixir.md"
}
