Skip to content

Commit 81ef50d

Browse files
fix(root): upgrade outdated dependencies across api and mobile
Update api dependencies (fastapi, sqlalchemy, redis, otel, ruff, mypy, etc.) and mobile dependencies (dio, firebase, flutter_riverpod, forui 0.20, go_router, etc.). Bump Flutter SDK to 3.41.6 and fix forui 0.20 breaking changes. Generated with oh-my-agent Co-Authored-By: First Fluke <our.first.fluke@gmail.com>
1 parent bf5fdce commit 81ef50d

12 files changed

Lines changed: 318 additions & 294 deletions

File tree

apps/api/pyproject.toml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,36 @@ description = "FastAPI backend API"
55
readme = "README.md"
66
requires-python = ">=3.12"
77
dependencies = [
8-
"fastapi[standard]>=0.128.0",
9-
"sqlalchemy[asyncio]>=2.0.40",
10-
"alembic>=1.17.2",
11-
"pydantic-settings>=2.12.0",
8+
"fastapi[standard]>=0.135.3",
9+
"sqlalchemy[asyncio]>=2.0.49",
10+
"alembic>=1.18.4",
11+
"pydantic-settings>=2.13.1",
1212
"asyncpg>=0.30.0",
13-
"python-multipart>=0.0.20",
13+
"python-multipart>=0.0.22",
1414
"httpx>=0.28.1",
15-
"tenacity>=9.1.2",
16-
"redis>=5.0.0",
15+
"tenacity>=9.1.4",
16+
"redis>=7.4.0",
1717
"structlog>=25.0.0",
18-
"opentelemetry-api>=1.28.0",
19-
"opentelemetry-sdk>=1.28.0",
20-
"opentelemetry-instrumentation-fastapi>=0.49b0",
21-
"opentelemetry-instrumentation-sqlalchemy>=0.49b0",
22-
"opentelemetry-instrumentation-httpx>=0.49b0",
23-
"opentelemetry-instrumentation-redis>=0.49b0",
24-
"opentelemetry-exporter-otlp>=1.28.0",
18+
"opentelemetry-api>=1.40.0",
19+
"opentelemetry-sdk>=1.40.0",
20+
"opentelemetry-instrumentation-fastapi>=0.61b0",
21+
"opentelemetry-instrumentation-sqlalchemy>=0.61b0",
22+
"opentelemetry-instrumentation-httpx>=0.61b0",
23+
"opentelemetry-instrumentation-redis>=0.61b0",
24+
"opentelemetry-exporter-otlp>=1.40.0",
2525
"jwcrypto>=1.5.6",
2626
"psycopg2-binary>=2.9.9",
2727
"bcrypt>=5.0.0",
2828
]
2929

3030
[dependency-groups]
3131
dev = [
32-
"ruff>=0.11.12",
33-
"poethepoet>=0.35.0",
34-
"mypy>=1.17.0",
32+
"ruff>=0.15.9",
33+
"poethepoet>=0.43.0",
34+
"mypy>=1.20.0",
3535
"pytest>=8.4.0",
3636
"pytest-asyncio>=0.26.0",
37-
"pytest-cov>=6.1.1",
37+
"pytest-cov>=7.1.0",
3838
"factory-boy>=3.3.3",
3939
"aiosqlite>=0.22.1",
4040
]

apps/api/src/lib/rate_limit.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,7 @@ async def _get_redis(self) -> "redis_module.Redis":
8686
if self._redis is None:
8787
import redis.asyncio as redis
8888

89-
self._redis = cast(
90-
redis_module.Redis,
91-
redis.from_url(settings.REDIS_URL), # type: ignore[no-untyped-call]
92-
)
89+
self._redis = redis.from_url(settings.REDIS_URL or "")
9390
return self._redis
9491

9592
async def is_allowed(self, key: str) -> tuple[bool, int, int]:

apps/api/src/main.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from collections.abc import AsyncIterator, Awaitable, Callable
22
from contextlib import asynccontextmanager
3-
from typing import TYPE_CHECKING, Literal, cast
3+
from typing import Literal
44
from uuid import uuid4
55

66
import structlog
@@ -16,9 +16,6 @@
1616
from src.lib.logging import configure_logging, get_logger
1717
from src.lib.telemetry import configure_telemetry, instrument_app
1818

19-
if TYPE_CHECKING:
20-
import redis.asyncio as redis_module
21-
2219
# Configure logging first
2320
configure_logging()
2421
logger = get_logger(__name__)
@@ -169,7 +166,7 @@ async def check_redis() -> ServiceStatus | None:
169166
try:
170167
import redis.asyncio as redis
171168

172-
client = cast(redis_module.Redis, redis.from_url(settings.REDIS_URL)) # type: ignore[no-untyped-call]
169+
client = redis.from_url(settings.REDIS_URL)
173170
await client.ping() # type: ignore[misc]
174171
await client.aclose()
175172
latency = (time.perf_counter() - start) * 1000

apps/api/uv.lock

Lines changed: 236 additions & 206 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
sdk.dir=/Users/gracefullight/Library/Android/sdk
2-
flutter.sdk=/Users/gracefullight/.local/share/mise/installs/flutter/3.41.2
2+
flutter.sdk=/Users/gracefullight/.local/share/mise/installs/flutter/3.41.6-stable

apps/mobile/ios/Flutter/Generated.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// This is a generated file; do not edit or check into version control.
2-
FLUTTER_ROOT=/Users/gracefullight/.local/share/mise/installs/flutter/3.41.2
2+
FLUTTER_ROOT=/Users/gracefullight/.local/share/mise/installs/flutter/3.41.6-stable
33
FLUTTER_APPLICATION_PATH=/Users/gracefullight/workspace/fullstack-starter/apps/mobile
44
COCOAPODS_PARALLEL_CODE_SIGN=true
55
FLUTTER_TARGET=lib/main.dart

apps/mobile/ios/Flutter/flutter_export_environment.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/sh
22
# This is a generated file; do not edit or check into version control.
3-
export "FLUTTER_ROOT=/Users/gracefullight/.local/share/mise/installs/flutter/3.41.2"
3+
export "FLUTTER_ROOT=/Users/gracefullight/.local/share/mise/installs/flutter/3.41.6-stable"
44
export "FLUTTER_APPLICATION_PATH=/Users/gracefullight/workspace/fullstack-starter/apps/mobile"
55
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
66
export "FLUTTER_TARGET=lib/main.dart"

apps/mobile/lib/core/theme/generated_theme.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import 'dart:ui' show Color, ColorSpace;
55

66
import 'package:forui/forui.dart';
77

8-
final generatedLightTheme = FThemes.zinc.light.copyWith(
9-
colors: FThemes.zinc.light.colors.copyWith(
8+
final generatedLightTheme = FThemes.zinc.light.touch.copyWith(
9+
colors: FThemes.zinc.light.touch.colors.copyWith(
1010
barrier: Color.from(
1111
alpha: 1.000,
1212
red: 0.8982,
@@ -111,8 +111,8 @@ final generatedLightTheme = FThemes.zinc.light.copyWith(
111111
),
112112
);
113113

114-
final generatedDarkTheme = FThemes.zinc.dark.copyWith(
115-
colors: FThemes.zinc.dark.colors.copyWith(
114+
final generatedDarkTheme = FThemes.zinc.dark.touch.copyWith(
115+
colors: FThemes.zinc.dark.touch.colors.copyWith(
116116
barrier: Color.from(
117117
alpha: 0.100,
118118
red: 1.0000,

apps/mobile/lib/main.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class MyApp extends ConsumerWidget {
6161
final router = ref.watch(routerProvider);
6262
final brightness = MediaQuery.platformBrightnessOf(context);
6363
final isDark = brightness == Brightness.dark;
64-
final fTheme = isDark ? FThemes.zinc.dark : FThemes.zinc.light;
64+
final fTheme = isDark ? FThemes.zinc.dark.touch : FThemes.zinc.light.touch;
6565

6666
return FTheme(
6767
data: fTheme,

apps/mobile/pubspec.lock

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ packages:
1313
dependency: transitive
1414
description:
1515
name: _flutterfire_internals
16-
sha256: cd83f7d6bd4e4c0b0b4fef802e8796784032e1cc23d7b0e982cf5d05d9bbe182
16+
sha256: f698de6eb8a0dd7a9a931bbfe13568e8b77e702eb2deb13dd83480c5373e7746
1717
url: "https://pub.dev"
1818
source: hosted
19-
version: "1.3.66"
19+
version: "1.3.68"
2020
analyzer:
2121
dependency: transitive
2222
description:
@@ -77,10 +77,10 @@ packages:
7777
dependency: transitive
7878
description:
7979
name: build_config
80-
sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187"
80+
sha256: "4070d2a59f8eec34c97c86ceb44403834899075f66e8a9d59706f8e7834f6f71"
8181
url: "https://pub.dev"
8282
source: hosted
83-
version: "1.2.0"
83+
version: "1.3.0"
8484
build_daemon:
8585
dependency: transitive
8686
description:
@@ -93,10 +93,10 @@ packages:
9393
dependency: "direct dev"
9494
description:
9595
name: build_runner
96-
sha256: "39ad4ca8a2876779737c60e4228b4bcd35d4352ef7e14e47514093edc012c734"
96+
sha256: "521daf8d189deb79ba474e43a696b41c49fb3987818dbacf3308f1e03673a75e"
9797
url: "https://pub.dev"
9898
source: hosted
99-
version: "2.11.1"
99+
version: "2.13.1"
100100
built_collection:
101101
dependency: transitive
102102
description:
@@ -189,10 +189,10 @@ packages:
189189
dependency: "direct main"
190190
description:
191191
name: cupertino_icons
192-
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
192+
sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd"
193193
url: "https://pub.dev"
194194
source: hosted
195-
version: "1.0.8"
195+
version: "1.0.9"
196196
dart_style:
197197
dependency: transitive
198198
description:
@@ -205,10 +205,10 @@ packages:
205205
dependency: "direct main"
206206
description:
207207
name: dio
208-
sha256: b9d46faecab38fc8cc286f80bc4d61a3bb5d4ac49e51ed877b4d6706efe57b25
208+
sha256: aff32c08f92787a557dd5c0145ac91536481831a01b4648136373cddb0e64f8c
209209
url: "https://pub.dev"
210210
source: hosted
211-
version: "5.9.1"
211+
version: "5.9.2"
212212
dio_web_adapter:
213213
dependency: transitive
214214
description:
@@ -245,42 +245,42 @@ packages:
245245
dependency: "direct main"
246246
description:
247247
name: firebase_core
248-
sha256: "923085c881663ef685269b013e241b428e1fb03cdd0ebde265d9b40ff18abf80"
248+
sha256: "2f988dab915efde3b3105268dbd69efce0e8570d767a218ccd914afd0c10c8cc"
249249
url: "https://pub.dev"
250250
source: hosted
251-
version: "4.4.0"
251+
version: "4.6.0"
252252
firebase_core_platform_interface:
253253
dependency: transitive
254254
description:
255255
name: firebase_core_platform_interface
256-
sha256: cccb4f572325dc14904c02fcc7db6323ad62ba02536833dddb5c02cac7341c64
256+
sha256: "0ecda14c1bfc9ed8cac303dd0f8d04a320811b479362a9a4efb14fd331a473ce"
257257
url: "https://pub.dev"
258258
source: hosted
259-
version: "6.0.2"
259+
version: "6.0.3"
260260
firebase_core_web:
261261
dependency: transitive
262262
description:
263263
name: firebase_core_web
264-
sha256: "83e7356c704131ca4d8d8dd57e360d8acecbca38b1a3705c7ae46cc34c708084"
264+
sha256: "1399ab1f0ac3b503d8a9be64a4c997fc066bbf33f701f42866e5569f26205ebe"
265265
url: "https://pub.dev"
266266
source: hosted
267-
version: "3.4.0"
267+
version: "3.5.1"
268268
firebase_crashlytics:
269269
dependency: "direct main"
270270
description:
271271
name: firebase_crashlytics
272-
sha256: a6e6cb8b2ea1214533a54e4c1b11b19c40f6a29333f3ab0854a479fdc3237c5b
272+
sha256: "9f9831b4ca1282421f4387181bfb8e6c4ee82049e616e433272c4fd13dfd5484"
273273
url: "https://pub.dev"
274274
source: hosted
275-
version: "5.0.7"
275+
version: "5.1.0"
276276
firebase_crashlytics_platform_interface:
277277
dependency: transitive
278278
description:
279279
name: firebase_crashlytics_platform_interface
280-
sha256: fc6837c4c64c48fa94cab8a872a632b9194fa9208ca76a822f424b3da945584d
280+
sha256: "310f6ecc2bb27e36025c6777bef9d2e7dd32562a7cae3d914ea88ad5a2d536e4"
281281
url: "https://pub.dev"
282282
source: hosted
283-
version: "3.8.17"
283+
version: "3.8.19"
284284
fixnum:
285285
dependency: transitive
286286
description:
@@ -303,10 +303,10 @@ packages:
303303
dependency: "direct main"
304304
description:
305305
name: flutter_riverpod
306-
sha256: e2026c72738a925a60db30258ff1f29974e40716749f3c9850aabf34ffc1a14c
306+
sha256: "4e166be88e1dbbaa34a280bdb744aeae73b7ef25fdf8db7a3bb776760a3648e2"
307307
url: "https://pub.dev"
308308
source: hosted
309-
version: "3.2.1"
309+
version: "3.3.1"
310310
flutter_test:
311311
dependency: "direct dev"
312312
description: flutter
@@ -321,18 +321,18 @@ packages:
321321
dependency: "direct main"
322322
description:
323323
name: forui
324-
sha256: "68e35cc6e989d960bcc4d31e49f22464e80f4c1f2d40c7ad63c1ba74386c209c"
324+
sha256: "0a1611a215b07fff150c94da48cd2b01c8b036636fc58c2177d916cb6ebaaa92"
325325
url: "https://pub.dev"
326326
source: hosted
327-
version: "0.19.0"
327+
version: "0.20.4"
328328
forui_assets:
329329
dependency: transitive
330330
description:
331331
name: forui_assets
332-
sha256: ba80eeee720f517468bc06974a83905a183fa148ab34ea080b8fe7909806218c
332+
sha256: "503378699c4cd77c5a5d66c86af8376b0bced0c1335d805b7af65c11008d5345"
333333
url: "https://pub.dev"
334334
source: hosted
335-
version: "0.19.0"
335+
version: "0.20.1"
336336
freezed:
337337
dependency: "direct dev"
338338
description:
@@ -377,10 +377,10 @@ packages:
377377
dependency: "direct main"
378378
description:
379379
name: go_router
380-
sha256: "7974313e217a7771557add6ff2238acb63f635317c35fa590d348fb238f00896"
380+
sha256: "48fb2f42ad057476fa4b733cb95e9f9ea7b0b010bb349ea491dca7dbdb18ffc4"
381381
url: "https://pub.dev"
382382
source: hosted
383-
version: "17.1.0"
383+
version: "17.2.0"
384384
graphs:
385385
dependency: transitive
386386
description:
@@ -425,10 +425,10 @@ packages:
425425
dependency: "direct dev"
426426
description:
427427
name: injectable_generator
428-
sha256: "5168f8189e8a3a5ec6cbaeb5249e99f53d51b6594f9abbc3e482f95ae1d96bfb"
428+
sha256: fcc0d1edcef2c863dec846b0dec27cb2390d9e9b62e61da5cfc2b9a06b9533c2
429429
url: "https://pub.dev"
430430
source: hosted
431-
version: "2.12.0"
431+
version: "2.12.1"
432432
intl:
433433
dependency: "direct main"
434434
description:
@@ -513,10 +513,10 @@ packages:
513513
dependency: transitive
514514
description:
515515
name: matcher
516-
sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6"
516+
sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
517517
url: "https://pub.dev"
518518
source: hosted
519-
version: "0.12.18"
519+
version: "0.12.19"
520520
material_color_utilities:
521521
dependency: transitive
522522
description:
@@ -822,10 +822,10 @@ packages:
822822
dependency: "direct dev"
823823
description:
824824
name: swagger_parser
825-
sha256: "625734b8b811c892f5dc6f980b865644e375d47edd0baae6a423ec6ae326a357"
825+
sha256: "14e70fd2208eef73ba69d3ad3ff0b8faf0e4d42bc27be6a491646a2288593f85"
826826
url: "https://pub.dev"
827827
source: hosted
828-
version: "1.42.0"
828+
version: "1.43.0"
829829
term_glyph:
830830
dependency: transitive
831831
description:
@@ -838,26 +838,26 @@ packages:
838838
dependency: transitive
839839
description:
840840
name: test
841-
sha256: "54c516bbb7cee2754d327ad4fca637f78abfc3cbcc5ace83b3eda117e42cd71a"
841+
sha256: "280d6d890011ca966ad08df7e8a4ddfab0fb3aa49f96ed6de56e3521347a9ae7"
842842
url: "https://pub.dev"
843843
source: hosted
844-
version: "1.29.0"
844+
version: "1.30.0"
845845
test_api:
846846
dependency: transitive
847847
description:
848848
name: test_api
849-
sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636"
849+
sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a"
850850
url: "https://pub.dev"
851851
source: hosted
852-
version: "0.7.9"
852+
version: "0.7.10"
853853
test_core:
854854
dependency: transitive
855855
description:
856856
name: test_core
857-
sha256: "394f07d21f0f2255ec9e3989f21e54d3c7dc0e6e9dbce160e5a9c1a6be0e2943"
857+
sha256: "0381bd1585d1a924763c308100f2138205252fb90c9d4eeaf28489ee65ccde51"
858858
url: "https://pub.dev"
859859
source: hosted
860-
version: "0.6.15"
860+
version: "0.6.16"
861861
typed_data:
862862
dependency: transitive
863863
description:
@@ -948,4 +948,4 @@ packages:
948948
version: "3.1.3"
949949
sdks:
950950
dart: ">=3.11.0 <4.0.0"
951-
flutter: ">=3.41.2 <4.0.0"
951+
flutter: ">=3.41.6 <4.0.0"

0 commit comments

Comments
 (0)