build: Serverpod v4.0.3

Moves every Serverpod package, and the four overrides for serverpod_offline_sync, from v4.0.2 to v4.0.3 before the first synced table's migration exists, so that migration is created on the version that stays.

v4.0.3 contains fixes only. Checked before moving: serverpod_database gained only backwards-compatible changes, none of which the sync package calls into. Server-side session keys are hashed as before (the cheaper argon2 applies to JWT refresh tokens, which we don't use), so no session ends. The auth module's profile image relation is now deferred, which fixes restoring a Postgres dump; step 7's migration carries that change.

argon2 now runs in serverpod_argon2 (BSD-3), a new dependency of the server only: a prebuilt, statically linked library that needs no glibc, bundled by dart build cli like the SQLite libraries, so the Docker build is unchanged. It doesn't reach the app.

The code generator still fails on Dart v3.13's primary constructors in endpoint files (tried again), so the server keeps the four syntax lints off. The regenerated test tools gain withServerpod's ephemeralDatabase option.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-09-30 10:42:34 +02:00
commit 12fa00de17
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -6,10 +6,11 @@ analyzer:
- lib/src/generated/**
- test/integration/test_tools/serverpod_test_tools.dart
# Serverpod v4.0.2's code generator reads this package with an analyzer that doesn't
# know Dart v3.13's primary constructors yet, and fails on them ("requires the
# 'primary-constructors' language feature"). So the server keeps the classic
# constructor and class-body syntax; switch these back on once Serverpod parses it.
# Serverpod's code generator reads this package with an analyzer that doesn't know
# Dart v3.13's primary constructors yet, and fails on them in endpoint files ("requires
# the 'primary-constructors' language feature"; checked again with v4.0.3). So the
# server keeps the classic constructor and class-body syntax; switch these back on once
# Serverpod parses it.
linter:
rules:
empty_container_bodies: false