From 4cdff9060b9a1d45d1f3ec56cca46b51dce9f3a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonatan=20K=C5=82osko?= Date: Tue, 17 Oct 2023 19:17:09 +0200 Subject: [PATCH] Make Livebook version accessible at compile time (#2280) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: José Valim --- lib/livebook/config.ex | 4 +++- lib/livebook/hubs/team_client.ex | 2 +- lib/livebook/teams/requests.ex | 2 +- lib/livebook_cli.ex | 2 +- lib/livebook_web/live/app_helpers.ex | 6 +++--- lib/livebook_web/live/layout_helpers.ex | 2 +- lib/livebook_web/live/settings_live.ex | 2 +- 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/livebook/config.ex b/lib/livebook/config.ex index 5972d9ea0..52585038c 100644 --- a/lib/livebook/config.ex +++ b/lib/livebook/config.ex @@ -613,10 +613,12 @@ defmodule Livebook.Config do end end + @app_version Mix.Project.config()[:version] + @doc """ Returns the current version of running Livebook. """ - def app_version, do: Application.spec(:livebook, :vsn) |> List.to_string() + def app_version(), do: @app_version defp parse_connection_config!(config) do {node, cookie} = split_at_last_occurrence(config, ":") diff --git a/lib/livebook/hubs/team_client.ex b/lib/livebook/hubs/team_client.ex index 35c3b4543..e067c7c0a 100644 --- a/lib/livebook/hubs/team_client.ex +++ b/lib/livebook/hubs/team_client.ex @@ -85,7 +85,7 @@ defmodule Livebook.Hubs.TeamClient do derived_key = Teams.derive_key(team.teams_key) headers = [ - {"x-lb-version", to_string(Application.spec(:livebook, :vsn))}, + {"x-lb-version", Livebook.Config.app_version()}, {"x-user", to_string(team.user_id)}, {"x-org", to_string(team.org_id)}, {"x-org-key", to_string(team.org_key_id)}, diff --git a/lib/livebook/teams/requests.ex b/lib/livebook/teams/requests.ex index f7fb91791..6d45f8c47 100644 --- a/lib/livebook/teams/requests.ex +++ b/lib/livebook/teams/requests.ex @@ -149,7 +149,7 @@ defmodule Livebook.Teams.Requests do token = "#{team.user_id}:#{team.org_id}:#{team.org_key_id}:#{team.session_token}" [ - {"x-lb-version", to_string(Application.spec(:livebook, :vsn))}, + {"x-lb-version", Livebook.Config.app_version()}, {"authorization", "Bearer " <> token} ] end diff --git a/lib/livebook_cli.ex b/lib/livebook_cli.ex index b80f0f86c..bada47b9b 100644 --- a/lib/livebook_cli.ex +++ b/lib/livebook_cli.ex @@ -73,7 +73,7 @@ defmodule LivebookCLI do IO.puts(:erlang.system_info(:system_version)) IO.puts("Elixir " <> System.build_info()[:build]) - version = Application.spec(:livebook, :vsn) + version = Livebook.Config.app_version() IO.puts("\nLivebook #{version}") end end diff --git a/lib/livebook_web/live/app_helpers.ex b/lib/livebook_web/live/app_helpers.ex index fb83fc078..e9c94dc17 100644 --- a/lib/livebook_web/live/app_helpers.ex +++ b/lib/livebook_web/live/app_helpers.ex @@ -141,9 +141,9 @@ defmodule LivebookWeb.AppHelpers do defp zta_options(), do: @zta_options - defp docker_tag_options() do - for image <- Livebook.Config.docker_images(), do: {image.tag, image.name} - end + @docker_tag_options for image <- Livebook.Config.docker_images(), do: {image.tag, image.name} + + defp docker_tag_options(), do: @docker_tag_options @doc """ Renders Docker deployment instruction for an app. diff --git a/lib/livebook_web/live/layout_helpers.ex b/lib/livebook_web/live/layout_helpers.ex index 7522c669b..ace2dc44e 100644 --- a/lib/livebook_web/live/layout_helpers.ex +++ b/lib/livebook_web/live/layout_helpers.ex @@ -94,7 +94,7 @@ defmodule LivebookWeb.LayoutHelpers do - v<%= Application.spec(:livebook, :vsn) %> + v<%= Livebook.Config.app_version() %> <.sidebar_link title="Home" icon="home-6-line" to={~p"/"} current={@current_page} /> diff --git a/lib/livebook_web/live/settings_live.ex b/lib/livebook_web/live/settings_live.ex index 96139f40a..6b6ea372b 100644 --- a/lib/livebook_web/live/settings_live.ex +++ b/lib/livebook_web/live/settings_live.ex @@ -60,7 +60,7 @@ defmodule LivebookWeb.SettingsLive do <% end %> <.labeled_text label="Livebook"> - v<%= Application.spec(:livebook, :vsn) %> + v<%= Livebook.Config.app_version() %> <.labeled_text label="Elixir"> v<%= System.version() %>