diff --git a/.github/workflows/hot_upgrade.yaml b/.github/workflows/hot_upgrade.yaml
index 3ee22cd5..b87ffeb3 100644
--- a/.github/workflows/hot_upgrade.yaml
+++ b/.github/workflows/hot_upgrade.yaml
@@ -6,11 +6,11 @@ on:
otp:
description: "OTP version"
required: true
- default: "28"
+ default: "29"
type: choice
options:
- - "27"
- "28"
+ - "29"
from_version:
description: "Version to upgrade from (tag only)"
required: true
diff --git a/.github/workflows/releases.yaml b/.github/workflows/releases.yaml
index d3047680..26859122 100644
--- a/.github/workflows/releases.yaml
+++ b/.github/workflows/releases.yaml
@@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- otp: [27, 28]
+ otp: [28, 29]
env:
ARTIFACT_NAME: deployex-ubuntu-24.04-otp-${{ matrix.otp }}.tar.gz
steps:
diff --git a/.github/workflows/testing-release.yaml b/.github/workflows/testing-release.yaml
index 1a9dd99f..a4004574 100644
--- a/.github/workflows/testing-release.yaml
+++ b/.github/workflows/testing-release.yaml
@@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- otp: [27, 28]
+ otp: [28, 29]
env:
ARTIFACT_NAME: deployex-ubuntu-24.04-otp-${{ matrix.otp }}.tar.gz
steps:
diff --git a/.tool-versions b/.tool-versions
index c8e6e072..ae013742 100644
--- a/.tool-versions
+++ b/.tool-versions
@@ -1,3 +1,3 @@
-erlang 28.5.0.3
-elixir 1.19.5-otp-28
-terraform 1.5.6
+erlang 29.0.3
+elixir 1.20.2-otp-29
+terraform 1.5.6
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 95dbe76b..52dd913e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,18 @@
+# CHANGELOG (0.10.X)
+
+## 0.10.0 ()
+
+### Backwards incompatible changes from 0.9.5
+
+#### OTP support
+ * From this version onwards, OTP-27 is no longer supported in favor of the new OTP-29 version
+
+### Bug fixes
+ * None
+
+### Enhancements
+ * None
+
# CHANGELOG (0.9.X)
## 0.9.5 🚀 (2026-07-08)
@@ -108,8 +123,8 @@
This release includes binaries for the following Ubuntu versions:
- * Ubuntu 24.04 with OTP 27 - [deployex-ubuntu-24.04-otp-27.tar.gz](https://github.com/thiagoesteves/deployex/tree/main/devops/releases/otp-27/.tool-versions)
* Ubuntu 24.04 with OTP 28 - [deployex-ubuntu-24.04-otp-28.tar.gz](https://github.com/thiagoesteves/deployex/tree/main/devops/releases/otp-28/.tool-versions)
+ * Ubuntu 24.04 with OTP 29 - [deployex-ubuntu-24.04-otp-29.tar.gz](https://github.com/thiagoesteves/deployex/tree/main/devops/releases/otp-29/.tool-versions)
You can use these pre-built binaries, or you can build your own if preferred.
diff --git a/README.md b/README.md
index 837c44d0..5d922c25 100644
--- a/README.md
+++ b/README.md
@@ -80,21 +80,22 @@ Upon deployment, the following dashboard becomes available, providing easy acces
Since OTP distribution is heavily used between the DeployEx and Monitored Applications, users must ensure that both applications are running the same OTP Major version to prevent compatibility issues and system malfunctions. DeployEx releases will contain binaries for the following OTP versions:
-| DeployEx version |
|
|
-| ------------------------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
-| [**0.9.5**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.5) | **27.3.4.14** | **28.5.0.3** |
-| [**0.9.4**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.4) | **27.3.4.13** | **28.5.0.2** |
-| [**0.9.3**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.3) | **27.3.4.13** | **28.5.0.2** |
-| [**0.9.2**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.2) | **27.3.4.13** | **28.5.0.2** |
-| [**0.9.1**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.1) | **27.3.4.9** | **28.4.1** |
-| [**0.9.0**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.0) | **27.3.4.9** | **28.4.1** |
-| [**0.8.0**](https://github.com/thiagoesteves/deployex/releases/tag/0.8.0) | **27.3.4.3** | **28.1.1** |
-| [**0.7.3**](https://github.com/thiagoesteves/deployex/releases/tag/0.7.3) | **27.3.4.3** | **28.1.1** [1] |
-| [**0.7.2**](https://github.com/thiagoesteves/deployex/releases/tag/0.7.2) | **27.3.4.3** | **28.1** [1] |
-| [**0.7.1**](https://github.com/thiagoesteves/deployex/releases/tag/0.7.1) | **27.3.4.3** | **28.1** [1] |
-| [**0.7.0**](https://github.com/thiagoesteves/deployex/releases/tag/0.7.0) | **27.3.4.3** | **28.1** [1] |
-| [**0.6.1**](https://github.com/thiagoesteves/deployex/releases/tag/0.6.1) | **27.3.4.2** | **28.0.2** [1] |
-| [**0.6.0**](https://github.com/thiagoesteves/deployex/releases/tag/0.6.0) | **27.3.4.2** | **28.0.2** [1] |
+| DeployEx version |
|
|
|
+| ------------------------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| :soon: [**0.10.0**](https://github.com/thiagoesteves/deployex/releases/tag/0.10.0) | - | **28.5.0.3** | **29.0.3** |
+| [**0.9.5**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.5) | **27.3.4.14** | **28.5.0.3** | - |
+| [**0.9.4**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.4) | **27.3.4.13** | **28.5.0.2** | - |
+| [**0.9.3**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.3) | **27.3.4.13** | **28.5.0.2** | - |
+| [**0.9.2**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.2) | **27.3.4.13** | **28.5.0.2** | - |
+| [**0.9.1**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.1) | **27.3.4.9** | **28.4.1** | - |
+| [**0.9.0**](https://github.com/thiagoesteves/deployex/releases/tag/0.9.0) | **27.3.4.9** | **28.4.1** | - |
+| [**0.8.0**](https://github.com/thiagoesteves/deployex/releases/tag/0.8.0) | **27.3.4.3** | **28.1.1** | - |
+| [**0.7.3**](https://github.com/thiagoesteves/deployex/releases/tag/0.7.3) | **27.3.4.3** | **28.1.1** [1] | - |
+| [**0.7.2**](https://github.com/thiagoesteves/deployex/releases/tag/0.7.2) | **27.3.4.3** | **28.1** [1] | - |
+| [**0.7.1**](https://github.com/thiagoesteves/deployex/releases/tag/0.7.1) | **27.3.4.3** | **28.1** [1] | - |
+| [**0.7.0**](https://github.com/thiagoesteves/deployex/releases/tag/0.7.0) | **27.3.4.3** | **28.1** [1] | - |
+| [**0.6.1**](https://github.com/thiagoesteves/deployex/releases/tag/0.6.1) | **27.3.4.2** | **28.0.2** [1] | - |
+| [**0.6.0**](https://github.com/thiagoesteves/deployex/releases/tag/0.6.0) | **27.3.4.2** | **28.0.2** [1] | - |
- **[1]** - Binaries for `OTP-28` are compiled with Elixir [1.18.4-otp-27](https://github.com/elixir-lang/elixir/releases/tag/v1.18.4)
diff --git a/apps/deployer/lib/deployer/engine.ex b/apps/deployer/lib/deployer/engine.ex
index 4a2e5070..b492e8e2 100644
--- a/apps/deployer/lib/deployer/engine.ex
+++ b/apps/deployer/lib/deployer/engine.ex
@@ -1,8 +1,6 @@
defmodule Deployer.Engine do
@moduledoc false
- require Logger
-
alias Deployer.Engine
alias Deployer.Status
alias Foundation.Catalog
diff --git a/apps/deployer/lib/deployer/engine/supervisor.ex b/apps/deployer/lib/deployer/engine/supervisor.ex
index d03d4a84..f5ca6234 100644
--- a/apps/deployer/lib/deployer/engine/supervisor.ex
+++ b/apps/deployer/lib/deployer/engine/supervisor.ex
@@ -2,7 +2,6 @@ defmodule Deployer.Engine.Supervisor do
@moduledoc false
use DynamicSupervisor
- require Logger
alias Deployer.Engine.Worker
diff --git a/apps/deployer/lib/deployer/status/application.ex b/apps/deployer/lib/deployer/status/application.ex
index 87365732..df4e938b 100644
--- a/apps/deployer/lib/deployer/status/application.ex
+++ b/apps/deployer/lib/deployer/status/application.ex
@@ -4,7 +4,6 @@ defmodule Deployer.Status.Application do
"""
use GenServer
- require Logger
@behaviour Deployer.Status.Adapter
diff --git a/apps/deployer/mix.exs b/apps/deployer/mix.exs
index bbd70eee..d2de4b11 100644
--- a/apps/deployer/mix.exs
+++ b/apps/deployer/mix.exs
@@ -35,7 +35,7 @@ defmodule Deployer.MixProject do
{:ex_aws, "~> 2.1"},
{:ex_aws_s3, "~> 2.0"},
{:goth, "~> 1.4"},
- {:briefly, "~> 0.4.1"},
+ {:briefly, "~> 0.5"},
# Static Analysis
{:mox, "~> 1.0", only: :test},
{:mock, "~> 0.3.0", only: :test},
diff --git a/apps/deployex_web/lib/deployex_web/components/layouts.ex b/apps/deployex_web/lib/deployex_web/components/layouts.ex
index f5d8bfe7..5b940994 100644
--- a/apps/deployex_web/lib/deployex_web/components/layouts.ex
+++ b/apps/deployex_web/lib/deployex_web/components/layouts.ex
@@ -63,15 +63,15 @@ defmodule DeployexWeb.Layouts do
<.theme_toggle />
-
-
+
+
{@github.download_progress}%
diff --git a/apps/deployex_web/lib/deployex_web/live/observer/index.ex b/apps/deployex_web/lib/deployex_web/live/observer/index.ex
index 7e04b702..823022bd 100644
--- a/apps/deployex_web/lib/deployex_web/live/observer/index.ex
+++ b/apps/deployex_web/lib/deployex_web/live/observer/index.ex
@@ -26,8 +26,7 @@ defmodule DeployexWeb.ObserverLive do
src={~p"/observer/tracing?iframe=true"}
class="w-full min-h-[90vh] border-0"
title="Observer Web"
- >
-
+ >
1.8.0", override: true},
{:phoenix_html, "~> 4.1"},
{:phoenix_live_reload, "~> 1.2", only: :dev},
- {:phoenix_live_view, "~> 1.0.0"},
+ {:phoenix_live_view, "~> 1.2"},
{:floki, ">= 0.30.0", only: :test},
+ {:lazy_html, ">= 0.1.0", only: :test},
{:phoenix_live_dashboard, "~> 0.8.3"},
{:esbuild, "~> 0.10", runtime: Mix.env() == :dev},
{:tailwind, "~> 0.3", runtime: Mix.env() == :dev},
@@ -60,9 +61,9 @@ defmodule DeployexWeb.MixProject do
{:finch, "~> 0.13"},
{:telemetry_metrics, "~> 1.0"},
{:telemetry_poller, "~> 1.0"},
- {:gettext, "~> 0.26"},
+ {:gettext, "~> 1.0"},
{:jason, "~> 1.2"},
- {:dns_cluster, "~> 0.1.1"},
+ {:dns_cluster, "~> 0.2.0"},
{:bandit, "~> 1.5"},
{:observer_web, "~> 0.2.0"},
# Static Analysis
diff --git a/apps/deployex_web/test/deployex_web/live/applications/mode_test.exs b/apps/deployex_web/test/deployex_web/live/applications/mode_test.exs
index 1040ee98..fc6ad22b 100644
--- a/apps/deployex_web/test/deployex_web/live/applications/mode_test.exs
+++ b/apps/deployex_web/test/deployex_web/live/applications/mode_test.exs
@@ -48,7 +48,7 @@ defmodule DeployexWeb.Applications.ModeTest do
refute html =~ "1.0.39"
refute html =~ "1.0.40"
- assert html =~ ""
+ assert html =~ ~r/"
+ ~r/"
+ assert html =~ ~r/