Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
strategy:
matrix:
include:
- elixir: "1.15.8"
- elixir: "1.17.3"
otp: "25.3.2.21"

- elixir: "1.19.5"
Expand Down Expand Up @@ -154,7 +154,7 @@ jobs:
matrix:
include:
# look for latest alpine image here: https://bob.hex.pm/docker
- elixir: "1.15.8"
- elixir: "1.17.3"
otp: "25.3.2.21"
suffix: "alpine-3.22.4"

Expand Down
10 changes: 5 additions & 5 deletions guides/introduction/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,25 @@ Please take a look at this list and make sure to install anything necessary for

If you just want to get started quickly, the [Up and Running](up_and_running.md) page includes a link to Phoenix Express, which will get Erlang, Elixir and Phoenix installed and running in seconds.

## Elixir 1.15 or later
## Elixir 1.17 or later

Phoenix is written in Elixir, and our application code will also be written in Elixir. We won't get far in a Phoenix app without it! The Elixir site maintains a great [Installation Page](https://elixir-lang.org/install.html) to help.

## Erlang 24 or later
## Erlang 25 or later

Elixir code compiles to Erlang byte code to run on the Erlang virtual machine. Without Erlang, Elixir code has no virtual machine to run on, so we need to install Erlang as well.

When we install Elixir using instructions from the Elixir [Installation Page](https://elixir-lang.org/install.html), we will usually get Erlang too. If Erlang was not installed along with Elixir, please see the [Erlang Instructions](https://elixir-lang.org/install.html#installing-erlang) section of the Elixir Installation Page for instructions.

## Phoenix

To check that we are on Elixir 1.15 and Erlang 24 or later, run:
To check that we are on Elixir 1.17 and Erlang 25 or later, run:

```console
elixir -v
Erlang/OTP 24 [erts-12.0] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Erlang/OTP 25 [erts-13.0] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Elixir 1.15.0
Elixir 1.17.0
```

Once we have Elixir and Erlang, we are ready to install the Phoenix application generator:
Expand Down
6 changes: 3 additions & 3 deletions installer/lib/mix/tasks/phx.new.ex
Original file line number Diff line number Diff line change
Expand Up @@ -482,10 +482,10 @@ defmodule Mix.Tasks.Phx.New do
end

defp elixir_version_check! do
unless Version.match?(System.version(), "~> 1.15") do
unless Version.match?(System.version(), "~> 1.17") do
Mix.raise(
"Phoenix v#{@version} requires at least Elixir v1.15\n " <>
"You have #{System.version()}. Please update accordingly"
"Phoenix v#{@version} installer requires Elixir v1.17 or later, " <>
"but you are running v#{System.version()}"
)
end
end
Expand Down
4 changes: 1 addition & 3 deletions installer/lib/phx_new/single.ex
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,7 @@ defmodule Phx.New.Single do
template(:css, [
{:eex, :web,
"phx_assets/app.css.eex": "assets/css/app.css",
"phx_assets/heroicons.js.eex": "assets/vendor/heroicons.js",
"phx_assets/daisyui.js.eex": "assets/vendor/daisyui.js",
"phx_assets/daisyui-theme.js.eex": "assets/vendor/daisyui-theme.js"}
"phx_assets/heroicons.js.eex": "assets/vendor/heroicons.js"}
])

template(:js, [
Expand Down
2 changes: 1 addition & 1 deletion installer/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ defmodule Phx.New.MixProject do
# 4. test/test_helper.exs at the root
# 5. installer/lib/mix/tasks/phx.new.ex
#
@elixir_requirement "~> 1.15"
@elixir_requirement "~> 1.17"

def project do
[
Expand Down
13 changes: 5 additions & 8 deletions installer/templates/phx_assets/app.css.eex
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,15 @@
The heroicons installation itself is managed by your mix.exs */
@plugin "../vendor/heroicons";

/* daisyUI Tailwind Plugin. You can update this file by fetching the latest version with:
curl -sLO https://github.com/saadeghi/daisyui/releases/latest/download/daisyui.js
Make sure to look at the daisyUI changelog: https://daisyui.com/docs/changelog/ */
@plugin "../vendor/daisyui" {
/* daisyUI Tailwind Plugin. */
@plugin "<%= if @in_umbrella do %>../../<% end %>../../deps/daisyui/packages/bundle/daisyui" {
themes: false;
}

/* daisyUI theme plugin. You can update this file by fetching the latest version with:
curl -sLO https://github.com/saadeghi/daisyui/releases/latest/download/daisyui-theme.js
/* daisyUI theme plugin.
We ship with two themes, a light one inspired on Phoenix colors and a dark one inspired
on Elixir colors. Build your own at: https://daisyui.com/theme-generator/ */
@plugin "../vendor/daisyui-theme" {
@plugin "<%= if @in_umbrella do %>../../<% end %>../../deps/daisyui/packages/bundle/daisyui-theme" {
name: "dark";
default: false;
prefersdark: true;
Expand Down Expand Up @@ -59,7 +56,7 @@
--noise: 0;
}

@plugin "../vendor/daisyui-theme" {
@plugin "<%= if @in_umbrella do %>../../<% end %>../../deps/daisyui/packages/bundle/daisyui-theme" {
name: "light";
default: true;
prefersdark: false;
Expand Down
124 changes: 0 additions & 124 deletions installer/templates/phx_assets/daisyui-theme.js.eex

This file was deleted.

1,057 changes: 0 additions & 1,057 deletions installer/templates/phx_assets/daisyui.js.eex

This file was deleted.

9 changes: 8 additions & 1 deletion installer/templates/phx_single/mix.exs.eex
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ defmodule <%= @app_module %>.MixProject do
config_path: "../../config/config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",<% end %>
elixir: "~> 1.15",
elixir: "~> 1.17",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
aliases: aliases(),
Expand Down Expand Up @@ -61,6 +61,13 @@ defmodule <%= @app_module %>.MixProject do
sparse: "optimized",
app: false,
compile: false,
depth: 1},
{:daisyui,
github: "saadeghi/daisyui",
tag: "v5.5.20",
sparse: "packages/bundle",
app: false,
compile: false,
depth: 1},<% end %><%= if @mailer do %>
{:swoosh, "~> 1.16"},
{:req, "~> 0.5"},<% end %>
Expand Down
2 changes: 1 addition & 1 deletion installer/templates/phx_umbrella/apps/app_name/mix.exs.eex
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ defmodule <%= @app_module %>.MixProject do
config_path: "../../config/config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
elixir: "~> 1.15",
elixir: "~> 1.17",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
aliases: aliases(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ defmodule <%= @web_namespace %>.MixProject do
config_path: "../../config/config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
elixir: "~> 1.15",
elixir: "~> 1.17",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
aliases: aliases(),
Expand Down Expand Up @@ -53,6 +53,13 @@ defmodule <%= @web_namespace %>.MixProject do
sparse: "optimized",
app: false,
compile: false,
depth: 1},
{:daisyui,
github: "saadeghi/daisyui",
tag: "v5.5.20",
sparse: "packages/bundle",
app: false,
compile: false,
depth: 1},<% end %>
{:telemetry_metrics, "~> 1.0"},
{:telemetry_poller, "~> 1.0"},<%= if @gettext do %>
Expand Down
9 changes: 8 additions & 1 deletion integration_test/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ defmodule Phoenix.Integration.MixProject do
[
app: :phoenix_integration,
version: "0.1.0",
elixir: "~> 1.15",
elixir: "~> 1.17",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps()
Expand Down Expand Up @@ -63,6 +63,13 @@ defmodule Phoenix.Integration.MixProject do
app: false,
compile: false,
depth: 1},
{:daisyui,
github: "saadeghi/daisyui",
tag: "v5.5.20",
sparse: "packages/bundle",
app: false,
compile: false,
depth: 1},
{:req, "~> 0.5"}
]
end
Expand Down
1 change: 1 addition & 0 deletions integration_test/mix.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"bcrypt_elixir": {:hex, :bcrypt_elixir, "3.3.2", "d50091e3c9492d73e17fc1e1619a9b09d6a5ef99160eb4d736926fd475a16ca3", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "471be5151874ae7931911057d1467d908955f93554f7a6cd1b7d804cac8cef53"},
"cc_precompiler": {:hex, :cc_precompiler, "0.1.11", "8c844d0b9fb98a3edea067f94f616b3f6b29b959b6b3bf25fee94ffe34364768", [:mix], [{:elixir_make, "~> 0.7", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "3427232caf0835f94680e5bcf082408a70b48ad68a5f5c0b02a3bea9f3a075b9"},
"comeonin": {:hex, :comeonin, "5.5.1", "5113e5f3800799787de08a6e0db307133850e635d34e9fab23c70b6501669510", [:mix], [], "hexpm", "65aac8f19938145377cee73973f192c5645873dcf550a8a6b18187d17c13ccdb"},
"daisyui": {:git, "https://github.com/saadeghi/daisyui.git", "22ecff57f2c391b80a75617325748cf4d13fdf47", [tag: "v5.5.20", sparse: "packages/bundle", depth: 1]},
"db_connection": {:hex, :db_connection, "2.10.1", "d5465f6bcc125c1b8981c1dbf23c193ca16f446ec0b25832dc174f74f18be510", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "18ed94c6e627b4bf452dbd4df61b69a35a1e768525140bc1917b7a685026a6a3"},
"decimal": {:hex, :decimal, "3.1.1", "430d87b04011ce6cbd4fd205be758311a81f87d552d40904abd00f015935b1d0", [:mix], [], "hexpm", "c5f25f2ced74a0587d03e6023f595db8e924c9d3922c8c8ffd9edfc4498cf1f6"},
"dns_cluster": {:hex, :dns_cluster, "0.2.0", "aa8eb46e3bd0326bd67b84790c561733b25c5ba2fe3c7e36f28e88f384ebcb33", [:mix], [], "hexpm", "ba6f1893411c69c01b9e8e8f772062535a4cf70f3f35bcc964a324078d8c8240"},
Expand Down
Loading