diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c30921f..d8cdc90 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,7 +25,7 @@ jobs: otp: "27.2" elixir: "1.18.2" main: false - - name: Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) + - name: Test (OTP 28.4 / Elixir 1.19.4 + E2E) otp: "28.4" elixir: "1.19.4" main: true diff --git a/README.md b/README.md index 99d7a28..2cc074b 100644 --- a/README.md +++ b/README.md @@ -454,7 +454,7 @@ For systemd/process managers, run the release command with `start`. Build: ```bash -nix-build +nix build ``` Run the built release from `./result/bin/parrhesia` (release command interface). diff --git a/default.nix b/default.nix index ff1ae35..ff6ef48 100644 --- a/default.nix +++ b/default.nix @@ -10,7 +10,7 @@ vips, }: let pname = "parrhesia"; - version = "0.5.0"; + version = "0.6.0"; beamPackages = beam.packages.erlang_28.extend ( final: _prev: { diff --git a/lib/parrhesia/storage/adapters/memory/store.ex b/lib/parrhesia/storage/adapters/memory/store.ex index f0cc921..1a74d90 100644 --- a/lib/parrhesia/storage/adapters/memory/store.ex +++ b/lib/parrhesia/storage/adapters/memory/store.ex @@ -22,16 +22,7 @@ defmodule Parrhesia.Storage.Adapters.Memory.Store do audit_logs: [] } - def ensure_started do - with :ok <- ensure_agent_started() do - Agent.get(@name, fn state -> - ensure_tables_started() - state - end) - - :ok - end - end + def ensure_started, do: start_store() def put_event(event_id, event) when is_binary(event_id) and is_map(event) do :ok = ensure_started() @@ -182,14 +173,6 @@ defmodule Parrhesia.Storage.Adapters.Memory.Store do Agent.get_and_update(@name, fun) end - defp ensure_agent_started do - if Process.whereis(@name) do - :ok - else - start_store() - end - end - defp start_store do case Agent.start_link(&init_state/0, name: @name) do {:ok, _pid} -> :ok diff --git a/mix.exs b/mix.exs index 59c51a9..458816d 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule Parrhesia.MixProject do def project do [ app: :parrhesia, - version: "0.5.0", + version: "0.6.0", elixir: "~> 1.18", elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, diff --git a/scripts/node_sync_e2e.exs b/scripts/node_sync_e2e.exs index d2ecb80..654553d 100644 --- a/scripts/node_sync_e2e.exs +++ b/scripts/node_sync_e2e.exs @@ -724,7 +724,11 @@ defmodule NodeSyncE2E.Runner do %{ "created_at" => System.system_time(:second), "kind" => 27_235, - "tags" => [["method", method], ["u", url]], + "tags" => [ + ["method", method], + ["u", url], + ["nonce", "#{System.unique_integer([:positive, :monotonic])}"] + ], "content" => "" } end diff --git a/test/parrhesia/config_test.exs b/test/parrhesia/config_test.exs index c20af95..9bc0429 100644 --- a/test/parrhesia/config_test.exs +++ b/test/parrhesia/config_test.exs @@ -5,7 +5,6 @@ defmodule Parrhesia.ConfigTest do test "returns configured relay limits/policies/features" do assert Parrhesia.Config.get([:metadata, :name]) == "Parrhesia" - assert Parrhesia.Config.get([:metadata, :version]) == "0.5.0" assert Parrhesia.Config.get([:metadata, :hide_version?]) == true assert Parrhesia.Config.get([:limits, :max_frame_bytes]) == 1_048_576 assert Parrhesia.Config.get([:limits, :max_event_bytes]) == 262_144 diff --git a/test/test_helper.exs b/test/test_helper.exs index 5423d39..1ab4160 100644 --- a/test/test_helper.exs +++ b/test/test_helper.exs @@ -24,4 +24,24 @@ exclude_tags = end, []} ) +# Suppress Req retry warnings (e.g. transient socket closures during tests). +# These are expected when tests tear down HTTP connections mid-flight. +:logger.add_primary_filter( + :suppress_req_retry, + {fn + %{msg: {:string, chars}}, _extra -> + str = IO.chardata_to_string(chars) + + if :string.find(str, "retry:") != :nomatch or + :string.find(str, "Req.TransportError") != :nomatch do + :stop + else + :ignore + end + + _event, _extra -> + :ignore + end, []} +) + ExUnit.start(exclude: exclude_tags)