|
| 1 | +# settings_ui v3.0.0 — Release Plan |
| 2 | + |
| 3 | +Target: `3.0.0` on pub.dev |
| 4 | +Flutter: 3.41.x stable / Dart 3.x |
| 5 | +Status: **READY TO PUBLISH** |
| 6 | + |
| 7 | +This file tracks every task needed before and after the release. |
| 8 | +Check off items (`- [x]`) as they are completed. |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +## Phase 1 — Codebase Health & Deprecation Fixes ✅ |
| 13 | + |
| 14 | +- [x] **1.1** Bump `pubspec.yaml` SDK constraint to `>=3.5.0 <4.0.0` and Flutter to `>=3.16.0` |
| 15 | +- [x] **1.2** Replace `MediaQuery.of(context).textScaleFactor` with `MediaQuery.textScalerOf(context).scale(value)` |
| 16 | +- [x] **1.3** Replace `Key? key` super-constructor patterns with `super.key` |
| 17 | +- [x] **1.4** Update `dev_dependencies`: `flutter_lints: ^5.0.0` |
| 18 | +- [x] **1.5** `flutter analyze` — zero issues |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## Phase 2 — Bug Fixes ✅ |
| 23 | + |
| 24 | +- [x] **2.1** iOS value text overflow — `Flexible` in inner Row of `buildTileContent` *(Issue #186)* |
| 25 | +- [x] **2.2** RTL chevron — `chevron_back` in RTL locales *(Issue #170)* |
| 26 | +- [x] **2.3** Web platform tag — `platforms:` block in `pubspec.yaml` *(Issue #179)* |
| 27 | +- [x] **2.4** `enabled` ignored on Web tile — `inactiveTitleColor` applied *(Issue #174)* |
| 28 | +- [x] **2.5** Web switch `activeColor` — hardcoded fallback removed *(Issue #188)* |
| 29 | +- [x] **2.6** `switchTheme` ignored on Web — no more hardcoded blue override *(Issue #188)* |
| 30 | +- [x] **2.7** `trailing` missing on Web switch tile — fixed |
| 31 | +- [x] **2.9** Platform override ignored on macOS host — `theme.platform` used instead of re-detecting *(Issue #139)* |
| 32 | +- [x] Replace deprecated `Switch.activeColor` → `Switch.activeThumbColor` |
| 33 | +- [x] Replace deprecated `CupertinoSwitch.activeColor` → `CupertinoSwitch.activeTrackColor` |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +## Phase 3 — Material 3 Theme Overhaul ✅ |
| 38 | + |
| 39 | +- [x] **3.1/3.2** Android light + dark — derived from `ColorScheme` |
| 40 | +- [x] **3.3** iOS themes — Cupertino hardcoded values retained |
| 41 | +- [x] **3.4** Web theme — derived from `ColorScheme` |
| 42 | +- [x] **3.5** `ThemeProvider.getTheme` reads `Theme.of(context).colorScheme` |
| 43 | +- [x] **3.6** `inactiveSwitchColor` added to `SettingsThemeData` |
| 44 | + |
| 45 | +--- |
| 46 | + |
| 47 | +## Phase 4 — New Features ✅ |
| 48 | + |
| 49 | +- [x] **4.1** `compact: bool` on `SettingsTile` *(PR #178)* |
| 50 | +- [x] **4.2** `crossAxisAlignment` on `SettingsList` *(Issue #189)* |
| 51 | +- [x] **4.3** `titleTextStyle`, `tileTextStyle`, `tileDescriptionTextStyle` in `SettingsThemeData` *(Issue #185)* |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +## Phase 5 — Example App ✅ |
| 56 | + |
| 57 | +- [x] **5.1** Bump example SDK + Flutter constraints |
| 58 | +- [x] **5.2** Removed `device_preview` (incompatible with Dart 3.x); cleaned up `main.dart` |
| 59 | +- [x] **5.3** `cupertino_icons: ^1.0.8` |
| 60 | +- [x] **5.4** Android Gradle updated (Gradle 8.7, AGP 8.3.2, Kotlin 1.9.24, Java 17) — builds and runs |
| 61 | +- [x] **5.5** `Material3DemoScreen` added to gallery |
| 62 | +- [x] **5.6** All deprecated API usage fixed; `flutter analyze` zero issues |
| 63 | + |
| 64 | +--- |
| 65 | + |
| 66 | +## Phase 6 — Tests ✅ |
| 67 | + |
| 68 | +- [x] **6.1** Test color assertions updated to use `colorScheme` |
| 69 | +- [x] **6.2** iOS value overflow test |
| 70 | +- [x] **6.3** RTL chevron tests (LTR + RTL) |
| 71 | +- [x] **6.4** Web enabled/switch color tests |
| 72 | +- [x] **6.5** Compact tile tests (Android, iOS, Web) |
| 73 | +- [x] **6.6** Coverage gate raised 35% → 60%; actual coverage: **92%** |
| 74 | +- [x] **6.7** 108 unit tests passing; 17 integration tests passing on Android emulator |
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +## Phase 7 — CI & Release Prep ✅ |
| 79 | + |
| 80 | +- [x] **7.1** `actions/checkout@v4` in CI; coverage gate 60% |
| 81 | +- [x] **7.3** `version: 3.0.0` in `pubspec.yaml` |
| 82 | +- [x] **7.4** `CHANGELOG.md` entry for `3.0.0` |
| 83 | +- [x] **7.5** `flutter pub publish --dry-run` — passes (2 soft warnings: uncommitted files + .iml git state) |
| 84 | +- [ ] **7.6** Commit → merge `dev` → `master` → tag `v3.0.0` |
| 85 | +- [ ] **7.7** `flutter pub publish` |
| 86 | + |
| 87 | +--- |
| 88 | + |
| 89 | +## Phase 8 — Post-Release: Issues & PRs |
| 90 | + |
| 91 | +Do this **after** `3.0.0` is live on pub.dev. |
| 92 | + |
| 93 | +### PRs to merge / close |
| 94 | +| PR | Title | Action | |
| 95 | +|----|-------|--------| |
| 96 | +| #193 | fix long IOSSettingsTile value text | Close — fixed in 2.1 | |
| 97 | +| #192 | flip RTL arrow | Close — fixed in 2.2 | |
| 98 | +| #191 | web platform pub.dev tag | Close — fixed in 2.3 | |
| 99 | +| #178 | compact SettingsTile | Close — implemented in 4.1 | |
| 100 | + |
| 101 | +### Issues to close |
| 102 | +| Issue | Title | Response | |
| 103 | +|-------|-------|----------| |
| 104 | +| #199 | Future Updates | Announce v3.0.0 | |
| 105 | +| #198 | White screen in release APK | Likely unrelated to package; ask for minimal repro, link v3 | |
| 106 | +| #197 | Make a new release | Announce v3.0.0 | |
| 107 | +| #196 | Chevron missing | Fixed in v3 (RTL fix) | |
| 108 | +| #194 | inactiveColour for switchTile | Fixed in 3.6 | |
| 109 | +| #189 | SettingsList alignment override | Fixed in 4.2 | |
| 110 | +| #188 | Switch ignores switchTheme | Fixed in 2.6 | |
| 111 | +| #186 | Title/value wrapping | Fixed in 2.1 | |
| 112 | +| #185 | Custom font support | Fixed in 4.3 | |
| 113 | +| #184 | iOS dirty dependencies | Verify in v3 | |
| 114 | +| #180 | trailing missing on Web switch | Fixed in 2.7 | |
| 115 | +| #179 | Chrome/web support | Fixed in 2.3 | |
| 116 | +| #176 | Scrollbar on wide screens | Verify fix still works; close | |
| 117 | +| #174 | enabled ignored on Web | Fixed in 2.4 | |
| 118 | +| #173 | Switch color on Web | Fixed in 2.5 | |
| 119 | +| #170 | RTL navigation arrow | Fixed in 2.2 | |
| 120 | +| #168 | Alternative for background/subtitle | Document in v3 release notes | |
| 121 | +| #160 | Windows layout | Improved | |
| 122 | +| #148 | macOS layout | Improved | |
| 123 | +| #139 | platform override ignored on macOS | Fixed in 2.9 | |
| 124 | +| #110 | Switch not toggling | Ask if still present in v3 | |
| 125 | + |
| 126 | +--- |
| 127 | + |
| 128 | +## Session Log |
| 129 | + |
| 130 | +| Date | Session | What was done | |
| 131 | +|------|---------|---------------| |
| 132 | +| 2026-04-10 | 1 | Repo audit, CLAUDE.md written, V3_PLAN.md created | |
| 133 | +| 2026-04-10 | 2 | Phases 1–7 completed; all tests passing; ready to publish | |
0 commit comments