Merge gg/master: ownership checks, Credo, worker fixes, its dependency round

65c16bb · gmorell · 2026-11-09 06:39

250 files +8266 -4186
Message
{commit_body(@commit)}

Files changed

added .credo.exs
+36 −0
@@ -0,0 +1,36 @@
1 +# Credo's default checks, with two changes: functions may nest one level
2 +# deeper than the default, and @moduledoc isn't required. ExSlop adds its
3 +# recommended checks (https://github.com/elixir-vibe/ex_slop).
4 +# CI runs `mix credo` as a warning (.forgejo/workflows/credo.yml).
5 +%{
6 + configs: [
7 + %{
8 + name: "default",
9 + plugins: [{ExSlop, []}],
10 + files: %{
11 + included: [
12 + "lib/",
13 + "src/",
14 + "test/",
15 + "web/",
16 + "apps/*/lib/",
17 + "apps/*/src/",
18 + "apps/*/test/",
19 + "apps/*/web/"
20 + ],
21 + excluded: [~r"/_build/", ~r"/deps/", ~r"/node_modules/"]
22 + },
23 + checks: %{
24 + extra: [
25 + {Credo.Check.Refactor.Nesting, [max_nesting: 3]},
26 + # Speed checks, which tests don't need: `assert length(x) == 2`
27 + # says more when it fails than a pattern match does.
28 + {ExSlop.Check.Refactor.LengthComparison, [files: %{excluded: [~r"(^|/)test/"]}]},
29 + {ExSlop.Check.Warning.RepoAllThenFilter, [files: %{excluded: [~r"(^|/)test/"]}]},
30 + {ExSlop.Check.Warning.PathExpandPriv, [files: %{excluded: [~r"(^|/)test/"]}]}
31 + ],
32 + disabled: [{Credo.Check.Readability.ModuleDoc, []}]
33 + }
34 + }
35 + ]
36 +}
modified .forgejo/workflows/android.yml
+7 −0
@@ -19,6 +19,13 @@ on:
19 19 push:
20 20 branches: [master]
21 21
22 +# A newer push supersedes this run: on a branch or PR the run in
23 +# progress is cancelled; on master it finishes, and only a run still
24 +# waiting is replaced.
25 +concurrency:
26 + group: ${{ github.workflow }}-${{ github.ref }}
27 + cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
28 +
22 29 jobs:
23 30 android:
24 31 runs-on: self-hosted
added .forgejo/workflows/audit.yml
+85 −0

Click to load diff…

added .forgejo/workflows/credo.yml
+60 −0

Click to load diff…

added .forgejo/workflows/dependency-updates.yml
+84 −0

Click to load diff…

modified .forgejo/workflows/image.yml
+7 −0

Click to load diff…

modified Dockerfile
+6 −4

Click to load diff…

modified apps/room_air_quality/lib/room_air_quality/aqi_worker.ex
+231 −227

Click to load diff…

modified apps/room_air_quality/mix.exs
+1 −1

Click to load diff…

modified apps/room_bourse/lib/room_bourse/worker.ex
+19 −6

Click to load diff…

modified apps/room_bourse/mix.exs
+2 −2

Click to load diff…

modified apps/room_drought/lib/room_drought/worker.ex
+43 −36

Click to load diff…

modified apps/room_drought/mix.exs
+2 −2

Click to load diff…

modified apps/room_ephem/lib/room_ephem/ephem_worker.ex
+35 −35

Click to load diff…

modified apps/room_ephem/mix.exs
+4 −1

Click to load diff…

modified apps/room_gbfs/lib/room_gbfs/gbfs_worker.ex
+388 −386

Click to load diff…

modified apps/room_gbfs/mix.exs
+1 −6

Click to load diff…

added apps/room_gbfs/test/room_gbfs/worker_decode_test.exs
+25 −0

Click to load diff…

modified apps/room_github/lib/room_github/worker.ex
+98 −54

Click to load diff…

modified apps/room_github/mix.exs
+5 −1

Click to load diff…

added apps/room_github/test/test_helper.exs
+1 −0

Click to load diff…

added apps/room_github/test/worker_test.exs
+108 −0

Click to load diff…

modified apps/room_gitlab/lib/room_gitlab/gitlab_worker.ex
+126 −121

Click to load diff…

modified apps/room_gitlab/mix.exs
+5 −1

Click to load diff…

added apps/room_gitlab/test/gitlab_worker_test.exs
+158 −0

Click to load diff…

modified apps/room_gtfs/lib/gtfs_realtime_pb.ex
+308 −238

Click to load diff…

modified apps/room_gtfs/lib/room_gtfs/application.ex
+7 −0

Click to load diff…

modified apps/room_gtfs/lib/room_gtfs/feed_health.ex
+4 −1

Click to load diff…

modified apps/room_gtfs/lib/room_gtfs/feed_tester.ex
+36 −19

Click to load diff…

modified apps/room_gtfs/lib/room_gtfs/gtfs_worker.ex
+485 −439

Click to load diff…

modified apps/room_gtfs/mix.exs
+1 −0

Click to load diff…

modified apps/room_gtfs/test/feed_tester_findings_test.exs
+1 −1

Click to load diff…

modified apps/room_hermes/lib/room_hermes/mail/imap.ex
+39 −26

Click to load diff…

modified apps/room_hermes/lib/room_hermes/mail/imap_worker.ex
+25 −18

Click to load diff…

modified apps/room_hermes/lib/room_hermes/mail/server.ex
+16 −6

Click to load diff…

modified apps/room_hermes/lib/room_hermes/mail/smtp.ex
+5 −5

Click to load diff…

modified apps/room_hermes/lib/room_hermes_web/controllers/resource_controller.ex
+16 −27

Click to load diff…

modified apps/room_icarus/lib/room_icarus/flight.ex
+10 −9

Click to load diff…

modified apps/room_icarus/lib/room_icarus/worker.ex
+16 −12

Click to load diff…

modified apps/room_icarus/mix.exs
+2 −2

Click to load diff…

modified apps/room_observatory/mix.exs
+5 −7

Click to load diff…

modified apps/room_packages/lib/room_packages/package_worker.ex
+36 −26

Click to load diff…

modified apps/room_packages/lib/room_packages/usps.ex
+7 −7

Click to load diff…

modified apps/room_packages/mix.exs
+5 −2

Click to load diff…

added apps/room_packages/test/package_worker_test.exs
+105 −0

Click to load diff…

modified apps/room_pollen/lib/room_pollen/worker.ex
+30 −26

Click to load diff…

modified apps/room_pollen/mix.exs
+2 −2

Click to load diff…

modified apps/room_sanctum/assets/package-lock.json
+171 −121

Click to load diff…

modified apps/room_sanctum/assets/package.json
+3 −0

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/accounts.ex
+33 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/condensers/basic_mqtt.ex
+242 −250

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/condensers/plus_mqtt.ex
+15 −16

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/configuration.ex
+152 −26

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/configuration/keryx.ex
+5 −0

Click to load diff…

added apps/room_sanctum/lib/room_sanctum/configuration/ownership.ex
+68 −0

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/configuration/plani.ex
+9 −0

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/configuration/pythiae.ex
+10 −0

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/configuration/query.ex
+6 −0

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/configuration/scribus.ex
+8 −0

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/configuration/source.ex
+5 −0

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/configuration/vision.ex
+61 −14

Click to load diff…

added apps/room_sanctum/lib/room_sanctum/json.ex
+49 −0

Click to load diff…

deleted apps/room_sanctum/lib/room_sanctum/poison.ex
+0 −11

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/queues/mail.ex
+38 −51

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/queues/webhooks.ex
+27 −16

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/storage.ex
+149 −119

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/storage/gbfs/v1/vehicle_types.ex
+20 −19

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/workers/ankyra_worker.ex
+36 −18

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/workers/keryx_item_cache.ex
+104 −89

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/workers/keryx_worker.ex
+136 −137

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/workers/plani_worker.ex
+113 −105

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/workers/pythiae_worker.ex
+3 −3

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/workers/vision_worker.ex
+61 −79

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/components/query_geospatial_map.ex
+254 −190

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/controllers/data_controller.ex
+23 −22

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/icon_helpers.ex
+51 −128

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_ankyra/index.ex
+6 −3

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_ankyra/show.ex
+5 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_foci_live/form_component.ex
+3 −7

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_foci_live/form_component_coords.ex
+29 −22

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_foci_live/index.ex
+6 −3

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_foci_live/show.ex
+12 −5

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_plani_live/index.ex
+5 −2

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_plani_live/show.ex
+16 −4

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_pythiae_live/form_component.ex
+8 −12

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_pythiae_live/index.ex
+5 −2

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_pythiae_live/public.ex
+12 −6

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_pythiae_live/show.ex
+35 −19

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_pythiae_live/show.html.heex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_query_live/index.ex
+174 −148

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_query_live/show.ex
+149 −171

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_query_live/show.html.heex
+2 −2

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_scribus_live/form_component.ex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_scribus_live/index.ex
+6 −3

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_scribus_live/public.ex
+26 −26

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_scribus_live/show.ex
+3 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/form_component.ex
+92 −76

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/import_component.ex
+16 −14

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/index.ex
+65 −53

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/show.ex
+228 −149

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/show.html.heex
+4 −4

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/work.ex
+23 −9

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/work.html.heex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_vision_live/index.ex
+5 −2

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_vision_live/show.ex
+15 −8

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_vision_live/show.html.heex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/helpers/map_streaming.ex
+55 −50

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/keryx_live/form_component.ex
+11 −8

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/keryx_live/index.ex
+5 −2

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/keryx_live/show.ex
+8 −2

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/landing_live/index.ex
+7 −7

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/live_preview.ex
+62 −55

Click to load diff…

modified apps/room_sanctum/mix.exs
+5 −2

Click to load diff…

added apps/room_sanctum/priv/repo/migrations/20261104221416_strip_dangling_vision_query_ids.exs
+65 −0

Click to load diff…

added apps/room_sanctum/priv/repo/migrations/20261104224340_add_user_id_to_cfg_scribus.exs
+46 −0

Click to load diff…

modified apps/room_sanctum/test/room_sanctum/configuration_test.exs
+4 −2

Click to load diff…

added apps/room_sanctum/test/room_sanctum/delete_query_visions_test.exs
+204 −0

Click to load diff…

added apps/room_sanctum/test/room_sanctum/delete_rabbit_user_test.exs
+48 −0

Click to load diff…

modified apps/room_sanctum/test/room_sanctum/france_import_bundle_test.exs
+1 −1

Click to load diff…

modified apps/room_sanctum/test/room_sanctum/gbfs_query_test.exs
+1 −1

Click to load diff…

added apps/room_sanctum/test/room_sanctum/json_test.exs
+55 −0

Click to load diff…

modified apps/room_sanctum/test/room_sanctum/query_cache_test.exs
+12 −2

Click to load diff…

added apps/room_sanctum/test/room_sanctum/query_owned_ids_test.exs
+59 −0

Click to load diff…

added apps/room_sanctum/test/room_sanctum/scribus_owner_migration_test.exs
+89 −0

Click to load diff…

added apps/room_sanctum/test/room_sanctum/source_mailbox_owner_test.exs
+59 −0

Click to load diff…

modified apps/room_sanctum/test/room_sanctum/vision_distinct_queries_test.exs
+19 −11

Click to load diff…

modified apps/room_sanctum/test/room_sanctum/vision_query_batch_test.exs
+1 −2

Click to load diff…

added apps/room_sanctum/test/room_sanctum/vision_query_ids_test.exs
+143 −0

Click to load diff…

modified apps/room_sanctum/test/room_sanctum_web/live/add_to_vision_test.exs
+8 −8

Click to load diff…

added apps/room_sanctum/test/room_sanctum_web/live/keryx_owned_ids_test.exs
+67 −0

Click to load diff…

added apps/room_sanctum/test/room_sanctum_web/live/ownership_test.exs
+643 −0

Click to load diff…

added apps/room_sanctum/test/room_sanctum_web/live/plani_owned_ids_test.exs
+77 −0

Click to load diff…

added apps/room_sanctum/test/room_sanctum_web/live/pythiae_owned_ids_test.exs
+85 −0

Click to load diff…

added apps/room_sanctum/test/room_sanctum_web/live/query_show_ownership_test.exs
+147 −0

Click to load diff…

added apps/room_sanctum/test/room_sanctum_web/live/source_live_map_query_test.exs
+61 −0

Click to load diff…

modified apps/room_sanctum/test/support/fixtures/configuration_fixtures.ex
+13 −7

Click to load diff…

added apps/room_sanctum/test/support/fixtures/ownership_fixtures.ex
+109 −0

Click to load diff…

modified apps/room_scribes/lib/room_scribes/scribe_worker.ex
+31 −23

Click to load diff…

modified apps/room_scribes/lib/room_scribes/scribus_timer.ex
+13 −10

Click to load diff…

modified apps/room_scribes/mix.exs
+1 −0

Click to load diff…

modified apps/room_tidal/lib/room_tidal/tidal_worker.ex
+1 −1

Click to load diff…

modified apps/room_tidal/mix.exs
+2 −0

Click to load diff…

modified apps/room_treasury/lib/room_treasury/worker.ex
+17 −19

Click to load diff…

modified apps/room_treasury/mix.exs
+2 −2

Click to load diff…

modified apps/room_weather/lib/room_weather/weather_worker.ex
+3 −7

Click to load diff…

modified apps/room_weather/mix.exs
+1 −0

Click to load diff…

modified apps/room_zeus/lib/supervision_worker.ex
+22 −22

Click to load diff…

modified mix.exs
+11 −8

Click to load diff…

modified mix.lock
+13 −10

Click to load diff…

added scripts/dependency-update
+402 −0

Click to load diff…

added scripts/osv-diff
+77 −0

Click to load diff…

Parents: e651996 eeea624