From f803860ea98df3729e6ccb0e6034fe635c620061 Mon Sep 17 00:00:00 2001 From: Rick van Dijk Date: Tue, 15 Sep 2026 12:11:25 -0700 Subject: [PATCH 1/2] Bump CI Flutter version to 3.47.4 Updates the pinned Flutter version in both workflows from 3.44.4 to 3.47.4 (latest stable, ships Dart 3.13.3), and refreshes the AGENTS.md prerequisite and the unreleased CHANGELOG bullets that quote it. Dart 3.13 tightens `use_super_parameters`, which flagged two existing constructors and would have failed CI's `flutter analyze` step. Both now use super parameters; `HttpExceptionWithStatus` keeps an identical public signature, since `HttpException` declares `const HttpException(this.message, {this.uri})` with `String message` / `Uri? uri`. Dropping the explicit `WebHelper?` parameter in the test helper left its `src/web/web_helper.dart` import unused, so that import is removed too. Package SDK floors are deliberately untouched, so the published packages stay usable on older Flutter. Co-Authored-By: Claude --- .github/workflows/build-firebase.yaml | 2 +- .github/workflows/build.yaml | 2 +- AGENTS.md | 2 +- flutter_cache_manager/CHANGELOG.md | 3 ++- flutter_cache_manager/lib/src/web/web_helper.dart | 3 +-- flutter_cache_manager/test/cache_manager_test.dart | 9 ++------- flutter_cache_manager_firebase/CHANGELOG.md | 2 +- 7 files changed, 9 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-firebase.yaml b/.github/workflows/build-firebase.yaml index bc308492..2dccd77c 100644 --- a/.github/workflows/build-firebase.yaml +++ b/.github/workflows/build-firebase.yaml @@ -24,7 +24,7 @@ concurrency: cancel-in-progress: true env: - FLUTTER_VERSION: "3.44.4" + FLUTTER_VERSION: "3.47.4" jobs: quality: diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index d9f4a1c0..2e20aca9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,7 +24,7 @@ concurrency: cancel-in-progress: true env: - FLUTTER_VERSION: "3.44.4" + FLUTTER_VERSION: "3.47.4" jobs: quality: diff --git a/AGENTS.md b/AGENTS.md index d8628107..ab52b806 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,7 +16,7 @@ Conduct](CODE_OF_CONDUCT.md) (report unacceptable behavior to ### Prerequisites - Basic Dart and Flutter knowledge -- A working Flutter SDK installation (stable channel, matching CI — currently Flutter **3.44.4** in workflows) +- A working Flutter SDK installation (stable channel, matching CI — currently Flutter **3.47.4** in workflows) - Comfort with filesystem / HTTP caching concepts helps, but is not required to start - For running or building the example on iOS/macOS, access to a Mac is required - Android example builds require JDK 17 diff --git a/flutter_cache_manager/CHANGELOG.md b/flutter_cache_manager/CHANGELOG.md index 195d5f6b..7549a997 100644 --- a/flutter_cache_manager/CHANGELOG.md +++ b/flutter_cache_manager/CHANGELOG.md @@ -1,7 +1,8 @@ ## [Unreleased] * Fixes `JsonCacheInfoRepository` losing metadata when the app exits within 3 seconds of a cache change by writing through promptly with serialized, atomic file writes ([#491](https://github.com/Baseflow/flutter_cache_manager/issues/491)) -* Modernizes GitHub Actions CI (combined quality job, pinned Flutter 3.44.4, Dependabot for actions) +* Modernizes GitHub Actions CI (combined quality job, pinned Flutter 3.47.4, Dependabot for actions) +* Adopts super parameters in `HttpExceptionWithStatus` to satisfy the stricter `use_super_parameters` lint in Dart 3.13 (no API or behavior change) * Updates example Android project to AGP 9.0.1 / Gradle 9.1 / Kotlin 2.3.20 * Migrates example Android app to built-in Kotlin * Pins example `path_provider_android` to 2.2.22 to avoid transitive `jni` / `jni_flutter` AGP 9 issues diff --git a/flutter_cache_manager/lib/src/web/web_helper.dart b/flutter_cache_manager/lib/src/web/web_helper.dart index 126a2c8f..2144a492 100644 --- a/flutter_cache_manager/lib/src/web/web_helper.dart +++ b/flutter_cache_manager/lib/src/web/web_helper.dart @@ -239,8 +239,7 @@ class WebHelper { } class HttpExceptionWithStatus extends HttpException { - const HttpExceptionWithStatus(this.statusCode, String message, {Uri? uri}) - : super(message, uri: uri); + const HttpExceptionWithStatus(this.statusCode, super.message, {super.uri}); final int statusCode; } diff --git a/flutter_cache_manager/test/cache_manager_test.dart b/flutter_cache_manager/test/cache_manager_test.dart index 95242aa0..89e94737 100644 --- a/flutter_cache_manager/test/cache_manager_test.dart +++ b/flutter_cache_manager/test/cache_manager_test.dart @@ -5,7 +5,6 @@ import 'package:clock/clock.dart'; import 'package:file/memory.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:flutter_cache_manager/src/cache_store.dart'; -import 'package:flutter_cache_manager/src/web/web_helper.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/mockito.dart'; @@ -623,10 +622,6 @@ void main() { } class TestCacheManager extends CacheManager with ImageCacheManager { - TestCacheManager(Config? config, {CacheStore? store, WebHelper? webHelper}) - : super.custom( - config ?? createTestConfig(), - cacheStore: store, - webHelper: webHelper, - ); + TestCacheManager(Config? config, {CacheStore? store, super.webHelper}) + : super.custom(config ?? createTestConfig(), cacheStore: store); } diff --git a/flutter_cache_manager_firebase/CHANGELOG.md b/flutter_cache_manager_firebase/CHANGELOG.md index db63f744..bf0b5020 100644 --- a/flutter_cache_manager_firebase/CHANGELOG.md +++ b/flutter_cache_manager_firebase/CHANGELOG.md @@ -1,6 +1,6 @@ ## [Unreleased] -* Modernizes GitHub Actions CI (combined quality job, pinned Flutter 3.44.4, Dependabot for actions) +* Modernizes GitHub Actions CI (combined quality job, pinned Flutter 3.47.4, Dependabot for actions) * Adds a smoke unit test so CI `flutter test` no longer exits with “No tests were found” ## [2.1.3] - 2026-07-21 From 676c9f51a9feb49d31052fdb0a90d2c6e2e429ce Mon Sep 17 00:00:00 2001 From: Rick van Dijk Date: Tue, 15 Sep 2026 15:25:48 -0700 Subject: [PATCH 2/2] Add PR description style guidance to AGENTS.md Codifies feedback from reviewing this branch's own PR description: state facts instead of narrating the editing process, skip repeating file paths already visible in the diff, answer yes/no questions plainly (with a short breaking-change explanation only when the answer is yes), and keep testing recommendations to what a reviewer needs to act on. Co-Authored-By: Claude Sonnet 5 --- AGENTS.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index ab52b806..3b211554 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -175,6 +175,15 @@ This repo uses the **forking workflow**: contributors work on their own fork and Keep public API changes additive and non-breaking where possible; breaking changes need a clear major-version plan and README/CHANGELOG callouts. +### PR description style + +Fill out the [PR template](.github/PULL_REQUEST_TEMPLATE.md), but keep each section tight: + +- State what changed and why. Don't narrate your own editing process or explain why one obvious, in-scope edit was made alongside another (e.g. "also updated X because it references Y") — that's a given fact of the PR, not something a reviewer needs spelled out. +- Don't repeat file paths in prose; the diff already shows them. +- Answer yes/no questions with a plain yes/no; add a sentence only when the answer is non-obvious. "Does this introduce a breaking change?" is the exception: answer "No" alone when it's not, but when it is, give a short explanation of what breaks and for whom. +- Keep "Recommendations for testing" to what a reviewer needs to act on: what ran, what didn't and why, and what to check on CI — one or two sentences, not a full incident writeup. + ### PR checklist - [ ] Project builds for the changed package(s)