Skip to content

Modernize Flutter/FastAPI template tooling#3

Merged
comfuture merged 12 commits into
mainfrom
feat/modernize-template
Jun 30, 2026
Merged

Modernize Flutter/FastAPI template tooling#3
comfuture merged 12 commits into
mainfrom
feat/modernize-template

Conversation

@comfuture

@comfuture comfuture commented Jun 30, 2026

Copy link
Copy Markdown
Owner

Summary

  • Migrate backend package management to uv, track uv.lock, and refresh FastAPI dependencies.
  • Modernize the devcontainer around current devcontainer features, uv, Java/Python setup, Flutter web setup, and a Codespaces-oriented Flutter/Android base image without forcing --platform=linux/amd64.
  • Refresh Flutter, Android Gradle, and CI build configuration, including Windows artifact upload support.
  • Use major-only GitHub Action versions where upstream actions publish major tags, while pinning astral-sh/setup-uv to v8.2.0 because it does not publish a v8 tag.
  • Harden the sample Flutter API button against failed or malformed backend responses and remove stale Android manifest package declarations.
  • Update setup documentation for uv, Flutter, devcontainer, Codespaces, and local Apple Silicon/arm64 guidance.

Why

This brings the four-year-old template closer to current Flutter/FastAPI development practice while keeping GitHub Codespaces as the baseline devcontainer environment. The devcontainer intentionally avoids Cirrus Labs because that image line is being sunset, and it does not force a Docker platform; Apple Silicon/arm64 users are expected to use a local toolchain instead of the devcontainer.

Commits

  • f8455c1 chore: migrate backend dependencies to uv
  • 1c01a13 chore: modernize devcontainer setup
  • 0faeb92 feat: update Flutter template dependencies
  • c34279e chore: modernize Android Gradle configuration
  • 8587ba5 ci: refresh Flutter and uv workflows
  • f119df4 docs: update setup instructions
  • e918ab2 fix: align devcontainer target with Codespaces
  • 02e81b8 ci: use major GitHub Action versions
  • 5b4efb2 ci: pin setup-uv action version
  • fff4f4f fix: guard API counter response
  • 12de35a chore: remove Android manifest package declarations
  • 5f4d03b chore: enable Flutter web in devcontainer

CI Fix

The failed job at https://github.com/comfuture/flutter_fastapi/actions/runs/28455329537/job/84328425152 failed while resolving astral-sh/setup-uv@v8. The astral-sh/setup-uv repository has v8.0.0, v8.1.0, and v8.2.0 tags, but no v8 tag, so this PR pins that action to v8.2.0.

Review Follow-up

  • Guarded api.inc() response handling before reading n.
  • Removed manifest package attributes so the Gradle namespace remains the Android package source of truth.
  • Enabled Flutter web and precached web artifacts during devcontainer creation for the checked-in web-server launch configuration.

Validation

  • flutter analyze
  • flutter test
  • flutter build apk --debug
  • uv sync --frozen
  • uv run python -c "from server import app; print(app.title)"
  • Workflow YAML parsing
  • Devcontainer JSON parsing
  • Android manifest XML parsing
  • git diff --check
  • Docker manifest/runtime spot check for gmeligio/flutter-android:3.44.4
  • Devcontainer image check: flutter config --enable-web && flutter precache --web works as the flutter user

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request modernizes the project's development environment and dependencies. It replaces the custom Dockerfile setup with a standard Dev Container configuration, adopts uv for Python dependency management, updates Android build configurations to Kotlin DSL, and refactors Dart code to use modern syntax and updated packages. The review feedback highlights a safety issue in lib/app/app_view.dart, where r.body['n'] is accessed directly without checking if the API request succeeded or if the response body is null, which could lead to application crashes.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread lib/app/app_view.dart

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 02e81b813e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread android/settings.gradle.kts
Comment thread .github/workflows/build.yml Outdated
Comment thread .devcontainer/devcontainer.json Outdated
@comfuture comfuture merged commit 92969b3 into main Jun 30, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant