Skip to content

Commit 3317e9c

Browse files
authored
chore: prepare v1.2.1-rc.0 (#1489)
* test(appengine): show interface tag in logs there was a typo in interface, so it was not showing * chore: remove astarte_rpc where it's no longer needed DUP and AppEngine don't need astarte_rpc now that we've replaced VMQ and DUP's RPCs with Horde Remove it as a direct dependency (it's still a transitive dependency because of the realm_management dependency in tests) and remove its mocks * chore: prepare v1.2.1-rc.0 Signed-off-by: Francesco Noacco <francesco.noacco@secomind.com>
1 parent ffcfd00 commit 3317e9c

26 files changed

Lines changed: 95 additions & 104 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

7-
## [1.2.1] - Unreleased
7+
## [1.2.1-rc.0] - 2025-08-26
88
### Added
99
- New environment variables to control how clustering work, needed on AppEngine and DUP.
1010
- `CLUSTERING_STRATEGY`. Its possible values are:
@@ -26,9 +26,26 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
2626
- Rework RPC between DUP and VerneMQ using Erlang's native clustering and
2727
message-passing instead of AMQP queues:
2828
[#1197](https://github.com/astarte-platform/astarte/pull/1197).
29+
- Changed the database driver from CQEx (unmantained) to (E)xandra
30+
- [astarte_trigger_engine] avoid exposing __unknown_fields__ in mustache templates
31+
- [astarte_trigger_engine] properly handle incoming introspection events
2932

3033
### Fixed
34+
- avoid leaving dangling device deletion entries
35+
- [astarte_appengine_api] fix a crash on invalid object update values
36+
- [astarte_appengine_api] fix a crash with empty result and `disjoint_tables` format for object aggregates
37+
- [astarte_appengine_api] Create needed AMQP exchanges instead of crashing
38+
- [astarte_appengine_api] Handle unset of properties which don't allow being unset
39+
- [astarte_data_updater_plant] fix a crash when performing updates of deleted values
40+
- [astarte_data_updater_plant] Fix a crash while handling device introspection
3141
- [astarte_data_updater_plant] Fix DataUpdater GenServer timeout handling that prevented inactive processes to shut down automatically.
42+
- [astarte_data_updater_plant] Handle unset of properties which don't allow being unset
43+
- [astarte_data_updater_plant] properly discard heartbeat messages when discarding messages
44+
- [astarte_data_updater_plant] Properly reconnect to RabbitMQ in case of disconnection
45+
- [astarte_data_updater_plant] Some queries had the `astarte_instance_id` applied twice
46+
- [astarte_realm_management] avoid crashing on interface list
47+
- [astarte_realm_management] avoid crash when deleting devices with invalid introspection
48+
- [astarte_realm_management] ensure devices are cleaned up after being deleted
3249

3350
## [1.2.1-alpha.0] - 2025-04-10
3451
### Changed

apps/astarte_appengine_api/config/test.exs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ config :logger, :console,
1717
:group_name,
1818
:device_alias,
1919
:device_id,
20-
:inteface,
20+
:interface,
2121
:path,
2222
:function,
2323
:request_id,
@@ -26,8 +26,6 @@ config :logger, :console,
2626

2727
config :astarte_rpc, :amqp_connection, host: System.get_env("RABBITMQ_HOST") || "rabbitmq"
2828

29-
config :astarte_appengine_api, :rpc_client, MockRPCClient
30-
3129
config :astarte_appengine_api,
3230
:data_updater_plant_rpc_client,
3331
Astarte.AppEngine.API.RPC.DataUpdaterPlant.ClientMock

apps/astarte_appengine_api/lib/astarte_appengine_api/application.ex

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ defmodule Astarte.AppEngine.API.Application do
2626
def start(_type, _args) do
2727
alias Astarte.AppEngine.API.Config
2828
alias Astarte.DataAccess.Config, as: DataAccessConfig
29-
alias Astarte.RPC.Config, as: RPCConfig
3029

3130
# make amqp supervisors logs less verbose
3231
:logger.add_primary_filter(
@@ -37,7 +36,6 @@ defmodule Astarte.AppEngine.API.Application do
3736
Logger.info("Starting application v#{@app_version}.", tag: "appengine_api_start")
3837

3938
DataAccessConfig.validate!()
40-
RPCConfig.validate!()
4139
Config.validate!()
4240

4341
xandra_options = Config.xandra_options!()

apps/astarte_appengine_api/lib/astarte_appengine_api/config.ex

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,6 @@ defmodule Astarte.AppEngine.API.Config do
121121
os_env: "APPENGINE_API_ROOMS_AMQP_CLIENT_SSL_CUSTOM_SNI",
122122
type: :binary
123123

124-
@envdoc "Returns the RPC client, defaulting to AMQP.Client. Used for Mox during testing."
125-
app_env :rpc_client, :astarte_appengine_api, :rpc_client,
126-
os_env: "APPENGINE_API_RPC_CLIENT",
127-
binding_skip: [:system],
128-
type: :module,
129-
default: Astarte.RPC.AMQP.Client
130-
131124
@envdoc "The Erlang cluster strategy to use. One of `none`, `kubernetes`. Defaults to `none`."
132125
app_env :clustering_strategy,
133126
:astarte_appengine_api,

apps/astarte_appengine_api/mix.exs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ defmodule Astarte.AppEngine.API.Mixfile do
2222
[
2323
app: :astarte_appengine_api,
2424
elixir: "~> 1.15",
25-
version: "1.2.1-alpha.0",
25+
version: "1.2.1-rc.0",
2626
elixirc_paths: elixirc_paths(Mix.env()),
2727
start_permanent: Mix.env() == :prod,
2828
test_coverage: [tool: ExCoveralls],
@@ -62,8 +62,7 @@ defmodule Astarte.AppEngine.API.Mixfile do
6262
defp astarte_required_modules("true") do
6363
[
6464
{:astarte_core, in_umbrella: true},
65-
{:astarte_data_access, in_umbrella: true},
66-
{:astarte_rpc, in_umbrella: true}
65+
{:astarte_data_access, in_umbrella: true}
6766
]
6867
end
6968

@@ -74,8 +73,7 @@ defmodule Astarte.AppEngine.API.Mixfile do
7473
github: "astarte-platform/astarte_data_access", branch: "release-1.2"},
7574
{:astarte_generators, github: "astarte-platform/astarte_generators", only: [:dev, :test]},
7675
{:astarte_realm_management,
77-
path: "../astarte_realm_management", only: [:dev, :test], runtime: false},
78-
{:astarte_rpc, "~> 1.2"}
76+
path: "../astarte_realm_management", only: [:dev, :test], runtime: false}
7977
]
8078
end
8179

@@ -84,6 +82,7 @@ defmodule Astarte.AppEngine.API.Mixfile do
8482
# Type `mix help deps` for examples and options.
8583
defp deps do
8684
[
85+
{:amqp, "~> 3.0"},
8786
{:phoenix, "~> 1.7"},
8887
{:phoenix_ecto, "~> 4.0"},
8988
{:phoenix_view, "~> 2.0"},

apps/astarte_appengine_api/mix.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
%{
22
"amqp": {:hex, :amqp, "3.3.2", "6cad7469957b29c517a26a27474828f1db28278a13bcc2e7970db9854a3d3080", [:mix], [{:amqp_client, "~> 3.9", [hex: :amqp_client, repo: "hexpm", optional: false]}], "hexpm", "f977c41d81b65a21234a9158e6491b2296f8bd5bda48d5b611a64b6e0d2c3f31"},
33
"amqp_client": {:hex, :amqp_client, "3.12.14", "2b677bc3f2e2234ba7517042b25d72071a79735042e91f9116bd3c176854b622", [:make, :rebar3], [{:credentials_obfuscation, "3.4.0", [hex: :credentials_obfuscation, repo: "hexpm", optional: false]}, {:rabbit_common, "3.12.14", [hex: :rabbit_common, repo: "hexpm", optional: false]}], "hexpm", "5f70b6c3b1a739790080da4fddc94a867e99f033c4b1edc20d6ff8b8fb4bd160"},
4-
"astarte_core": {:git, "https://github.com/astarte-platform/astarte_core.git", "7ba3d8f672e54c55b0abe8fd7c4d00f40a4f023e", [branch: "release-1.2"]},
5-
"astarte_data_access": {:git, "https://github.com/astarte-platform/astarte_data_access.git", "991f8d99b31cccd626b434251b577b5001259ced", [branch: "release-1.2"]},
4+
"astarte_core": {:git, "https://github.com/astarte-platform/astarte_core.git", "9f40710a57cd2b0c8490bcca32b270a02ba94d74", [branch: "release-1.2"]},
5+
"astarte_data_access": {:git, "https://github.com/astarte-platform/astarte_data_access.git", "30d8ff36a8479a898947a86146ac9b7814a00d79", [branch: "release-1.2"]},
66
"astarte_generators": {:git, "https://github.com/astarte-platform/astarte_generators.git", "673834e5a90c753c3cc22ad53be20b705c827d4a", []},
77
"astarte_rpc": {:hex, :astarte_rpc, "1.2.0", "dcef7434bf3f19ff30ff0bc245ef2d3b0f9abeb369405713cfd28916a5635926", [:mix], [{:amqp, "~> 3.3", [hex: :amqp, repo: "hexpm", optional: false]}, {:castore, "~> 1.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:protobuf, "~> 0.12", [hex: :protobuf, repo: "hexpm", optional: false]}, {:skogsra, "~> 2.2", [hex: :skogsra, repo: "hexpm", optional: false]}], "hexpm", "8470ed2f116fa8c9d70845f295f3738529aff123d9d3f98cbfa37107314763cb"},
8-
"castore": {:hex, :castore, "1.0.11", "4bbd584741601eb658007339ea730b082cc61f3554cf2e8f39bf693a11b49073", [:mix], [], "hexpm", "e03990b4db988df56262852f20de0f659871c35154691427a5047f4967a16a62"},
8+
"castore": {:hex, :castore, "1.0.15", "8aa930c890fe18b6fe0a0cff27b27d0d4d231867897bd23ea772dee561f032a3", [:mix], [], "hexpm", "96ce4c69d7d5d7a0761420ef743e2f4096253931a3ba69e5ff8ef1844fe446d3"},
99
"cors_plug": {:hex, :cors_plug, "2.0.3", "316f806d10316e6d10f09473f19052d20ba0a0ce2a1d910ddf57d663dac402ae", [:mix], [{:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ee4ae1418e6ce117fc42c2ba3e6cbdca4e95ecd2fe59a05ec6884ca16d469aea"},
1010
"cowboy": {:hex, :cowboy, "2.13.0", "09d770dd5f6a22cc60c071f432cd7cb87776164527f205c5a6b0f24ff6b38990", [:make, :rebar3], [{:cowlib, ">= 2.14.0 and < 3.0.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, ">= 1.8.0 and < 3.0.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "e724d3a70995025d654c1992c7b11dbfea95205c047d86ff9bf1cda92ddc5614"},
1111
"cowboy_telemetry": {:hex, :cowboy_telemetry, "0.3.1", "ebd1a1d7aff97f27c66654e78ece187abdc646992714164380d8a041eda16754", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3a6efd3366130eab84ca372cbd4a7d3c3a97bdfcfb4911233b035d117063f0af"},

apps/astarte_appengine_api/test/support/mocks.ex

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
# SPDX-License-Identifier: Apache-2.0
1919
#
2020

21-
Mox.defmock(MockRPCClient, for: Astarte.RPC.Client)
22-
2321
Mox.defmock(Astarte.AppEngine.API.RPC.DataUpdaterPlant.ClientMock,
2422
for: Astarte.AppEngine.API.RPC.DataUpdaterPlant.Behaviour
2523
)

apps/astarte_data_updater_plant/config/test.exs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ config :logger, :console,
1010
metadata: [:realm, :device_id, :function]
1111

1212
config :astarte_data_updater_plant, :astarte_instance_id, "test"
13-
config :astarte_data_updater_plant, :rpc_client, MockRPCClient
1413

1514
config :astarte_data_updater_plant,
1615
:vernemq_plugin_rpc_client,

apps/astarte_data_updater_plant/lib/astarte_data_updater_plant/config.ex

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -206,15 +206,6 @@ defmodule Astarte.DataUpdaterPlant.Config do
206206
type: :integer,
207207
default: 4000
208208

209-
@envdoc """
210-
The RPC client, defaulting to AMQP.Client. Used for Mox during testing.
211-
"""
212-
app_env :rpc_client, :astarte_data_updater_plant, :rpc_client,
213-
os_env: "DATA_UPDATER_PLANT_RPC_CLIENT",
214-
binding_skip: [:system],
215-
type: :module,
216-
default: Astarte.RPC.AMQP.Client
217-
218209
@envdoc "The interval between two heartbeats sent from the VernqMQ device process."
219210
app_env :device_heartbeat_interval_ms,
220211
:astarte_data_updater_plant,

apps/astarte_data_updater_plant/mix.exs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ defmodule Astarte.DataUpdaterPlant.Mixfile do
2323
[
2424
app: :astarte_data_updater_plant,
2525
elixir: "~> 1.15",
26-
version: "1.2.1-alpha.0",
26+
version: "1.2.1-rc.0",
2727
build_embedded: Mix.env() == :prod,
2828
start_permanent: Mix.env() == :prod,
2929
elixirc_paths: elixirc_paths(Mix.env()),
@@ -61,20 +61,19 @@ defmodule Astarte.DataUpdaterPlant.Mixfile do
6161
defp astarte_required_modules("true") do
6262
[
6363
{:astarte_core, in_umbrella: true},
64-
{:astarte_data_access, in_umbrella: true},
65-
{:astarte_rpc, in_umbrella: true}
64+
{:astarte_data_access, in_umbrella: true}
6665
]
6766
end
6867

6968
defp astarte_required_modules(_) do
7069
[
71-
{:astarte_core, github: "astarte-platform/astarte_core", branch: "release-1.2"},
70+
{:astarte_core,
71+
github: "astarte-platform/astarte_core", branch: "release-1.2", override: true},
7272
{:astarte_data_access,
7373
github: "astarte-platform/astarte_data_access", branch: "release-1.2"},
7474
{:astarte_generators, github: "astarte-platform/astarte_generators", only: [:dev, :test]},
7575
{:astarte_realm_management,
76-
path: "../astarte_realm_management", only: [:dev, :test], runtime: false},
77-
{:astarte_rpc, "~> 1.2"}
76+
path: "../astarte_realm_management", only: [:dev, :test], runtime: false}
7877
]
7978
end
8079

0 commit comments

Comments
 (0)