Renovate Bot
15ebbe1c6d
chore(deps): update asdf tool versions
continuous-integration/drone/push Build is failing
2026-07-01 00:09:23 +00:00
a629bfb617
Merge pull request 'fix existing flakiness + cut runtime closes #533 ' ( #544 ) from issue/mitgliederverwaltung-533 into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #544
2026-06-16 18:30:14 +02:00
84e1cf1cb8
Merge branch 'main' into issue/mitgliederverwaltung-533
...
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
# Conflicts:
# test/mv_web/member_live/index_test.exs
2026-06-16 18:13:03 +02:00
6d7ece20a8
docs(changelog): record member-creation deadlock fix under Unreleased
2026-06-16 17:55:24 +02:00
3d792e8b04
docs(testing): document create_member deadlock fix and async-test-safety
2026-06-16 17:54:32 +02:00
c0f40a13ce
test(member-live): keep deadlock-prone member tests synchronous
...
These member/group/custom-field LiveView tests stay async: false. With the
foreign keys now deferrable the create_member deadlock no longer forces it, so
the rationale is updated: they remain synchronous as a deferred scope decision,
and index_groups_url_params/member_filter_component additionally have separate
async-isolation issues that must be fixed before they can run in parallel.
2026-06-16 17:53:59 +02:00
5e84c342b7
test(repo): assert member/user foreign keys are deferrable
2026-06-16 17:53:25 +02:00
ef94d2ef10
fix(repo): make member/user foreign keys deferrable to avoid create_member deadlock
...
Concurrent create_member transactions took FK FOR KEY SHARE (MultiXact) locks
on shared rows across members/users/membership_fee_types and could form a
cross-transaction cycle, producing intermittent PostgreSQL deadlocks (40P01)
under load. Making the three foreign keys DEFERRABLE INITIALLY DEFERRED moves
the check to commit time and breaks the cycle, without weakening integrity
(NOT NULL and ON DELETE RESTRICT are unaffected).
2026-06-16 17:52:51 +02:00
cb54c2c46e
test(member-live): build date-filter property bounds without a reject-filter
...
The bound-pair generator filtered out ~1/4 of generated values, so unlucky
seeds hit StreamData's FilterTooNarrowError under full property runs.
Construct an at-least-one-bound-set pair directly instead, preserving the
exact domain with no rejection.
2026-06-16 17:52:17 +02:00
655fd80524
test: wait on observable state instead of blind sleeps
...
Replace the fixed Process.sleep waits in the import, members-PDF and
field-visibility tests with event-based / bounded-poll waits on the
observable condition, removing a known flakiness vector.
2026-06-16 17:51:43 +02:00
ccd1f81e3e
test(member-live): assert rendered behavior instead of socket internals in the index view
...
Replace :sys.get_state assertions on the LiveView socket with assertions on
rendered output, so the tests pin user-visible behavior rather than internal
state; the few sites with no observable equivalent are kept and annotated.
2026-06-16 17:50:57 +02:00
3bd55fbfec
test(seeds): drop the dead per-process seeds-run guard
2026-06-16 17:50:24 +02:00
18fb954f73
test(membership-fees): share create_fee_type and create_cycle fixtures
...
Replace the create_fee_type/create_cycle helpers duplicated across 18/8
membership-fee test files with a single shared definition in Mv.Fixtures,
reconciling the divergent local signatures (including the reversed
argument order) into one superset so behavior is unchanged.
2026-06-16 17:49:50 +02:00
82effde6a1
Merge pull request 'Mechanical cleanup, quick fixes & deduplication closes #531 ' ( #543 ) from issue/mitgliederverwaltung-531 into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #543
2026-06-16 16:06:52 +02:00
4f3050cc35
docs(changelog): record cleanup and quick fixes under Unreleased
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-06-16 15:51:07 +02:00
a12fedcb5b
ci(credo): enforce StrictModuleLayout and additional zero-violation checks
2026-06-16 15:51:07 +02:00
fe534319ee
style: order module directives per StrictModuleLayout
2026-06-16 15:51:07 +02:00
3f073d4365
refactor(membership-fees): share fee-type delete handling between LiveViews
2026-06-16 15:51:07 +02:00
18bf4dab2b
refactor(web): use canonical DateFormatter for all date display
2026-06-16 15:51:07 +02:00
ea105186a5
refactor(vereinfacht): reuse EmailSync.Loader for linked-member lookup
2026-06-16 15:51:07 +02:00
0cf27c95ca
refactor(membership-fees): fold cycle-generation run/0 into run/1
2026-06-16 15:51:07 +02:00
ef70dd2935
refactor(settings): unify JSONB single-field update between member-field changes
2026-06-16 15:51:07 +02:00
e66fb5d3d9
refactor(email): share build/deliver skeleton across join emails
2026-06-16 15:51:07 +02:00
1adf6aa664
refactor(web): extract shared current_actor controller helper
2026-06-16 15:51:07 +02:00
561779e704
refactor(web): share member-dropdown keyboard navigation between LiveViews
2026-06-16 15:51:07 +02:00
164826d3aa
refactor(authorization): unify own_data read check across linked resources
2026-06-16 15:51:07 +02:00
924dbd3bb8
refactor(oidc): drop OidcRoleSyncConfig passthrough and use Mv.Config directly
2026-06-16 15:51:07 +02:00
c4a695329c
refactor(member-export): remove dead fetch/2 export chain
2026-06-16 15:51:07 +02:00
a9932776cc
chore(accounts): remove orphaned UserIdentity resource file
2026-06-16 15:51:07 +02:00
2a3a152b13
perf(member): drop per-render timing log on the member-list hot path
2026-06-16 15:51:07 +02:00
7f9d9646a5
fix(auth): boot AshAuthentication children under the :mv otp_app
2026-06-16 15:51:07 +02:00
39df300735
Merge pull request 'release v1.3.0' ( #542 ) from release-1.3.0 into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #542
2026-06-16 10:47:10 +02:00
18639e8c67
chore: release v1.3.0
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-16 10:02:02 +02:00
c3a3de23a8
feat(justfile): add lean server recipe (db + phx.server, no mailcrab/rauthy)
continuous-integration/drone/push Build is passing
2026-06-15 23:57:39 +02:00
9aa5bdb6a7
Merge pull request 'Cleanup of the docs closes #507 ' ( #530 ) from issue/mitgliederverwaltung-507 into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #530
2026-06-15 22:00:43 +02:00
43f463997d
docs: add a documentation index and fix dangling references
continuous-integration/drone/push Build is passing
2026-06-15 21:53:36 +02:00
6fddb5285b
docs(project): condense progress log, roadmap and test/infra docs
2026-06-15 21:53:36 +02:00
3797bc8fae
docs(ui): condense and translate email, UI and PDF docs to English
2026-06-15 21:53:36 +02:00
0b36a43edc
docs(db): refresh, condense and align database and groups docs
2026-06-15 21:53:36 +02:00
5d8f173529
docs(membership): condense membership, onboarding and import docs and align with the code
2026-06-15 21:53:36 +02:00
8d783276d0
docs(roles): condense roles/permissions/auth docs and align with the code
2026-06-15 21:53:36 +02:00
07503fc6fe
Merge pull request 'parallel dev isolation' ( #529 ) from feat/parallel-dev-isolation into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #529
2026-06-15 18:03:00 +02:00
2363ef69e3
feat(justfile): add start-test-db recipe for an isolated test database
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build was killed
2026-06-15 17:48:53 +02:00
c332a4dde2
feat(dialyzer): allow overriding PLT paths via PLT_CORE_PATH/PLT_LOCAL_PATH
2026-06-15 17:48:53 +02:00
0a53e11cc4
feat(config): read database host port from DB_PORT in dev and test
2026-06-15 17:48:53 +02:00
365ff10fd8
feat(docker): parametrize host ports and project name for parallel dev stacks
...
Several isolated stacks can now coexist: host ports come from DB_PORT/RAUTHY_PORT/MAILCRAB_PORT (defaulting to today's values) and the container namespace from COMPOSE_PROJECT_NAME. Drops the fixed rauthy-dev container_name that blocked a second stack.
2026-06-15 17:48:53 +02:00
19377be909
Merge pull request 'Fix sort by custom date closes #496 ' ( #528 ) from issue/mitgliederverwaltung-496 into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #528
2026-06-15 16:34:40 +02:00
346291cc0d
docs(changelog): record custom-date sorting fix under Unreleased
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-06-15 16:18:42 +02:00
2eda661e37
fix(export): order member export chronologically by custom :date fields
2026-06-15 16:18:13 +02:00
6d4629ef5b
fix(member): order member list chronologically by custom :date fields
2026-06-15 16:14:14 +02:00