chore(release): 0.2.0 - #23
Conversation
Cuts 0.2.0, carrying the delete-affordance repair merged in #21 and the QA round merged in #22. Minor rather than patch: three breaking changes, listed in CHANGELOG.md. Two are API shape and one is behaviour that changes on upgrade with no code edit at all. - NotificationsListView.onDelete becomes Future<bool>. A host passing a Future<void> callback no longer compiles. The widget had no way to learn whether the row left, and the list is a separately paginated fetch, so it reloaded after every tap: a host that asks for confirmation spent a GET /notifications every time somebody declined. - deleteNotification rethrows a failed request instead of completing normally, so a caller can finally tell a delete that worked from one that did not. - notifications.database.polling_interval now takes effect. It was validated by the CLI, reported by notifications:doctor and shipped in every install stub while the runtime read nobody, so every install effectively polled every 30 seconds. Both directions move on upgrade: an app configured at 5 issues six times the requests, and one configured at 3600 is clamped to 600. Two host keys are newly required, notifications.channel_sms and notifications.delete; both render as the raw key without them and both are called out in the changelog. Six version sites, swept by SHAPE rather than by the old number, which is the same lesson 0.1.0 recorded: doc/getting-started/installation.md needed no change last time because it was already ahead, so a grep for the current version finds the wrong set. The provider constant is a sixth site the release command's own table does not list, and every previous release has bumped it. The ^0.0.1 in test/cli/commands/uninstall_getter_test.dart is deliberately untouched: it is fixture data for a temp app's pubspec, not a version site. 602 tests, analyze clean, format clean.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Note Kodizm (AI-generated). May contain mistakes; verify before acting. A clean six-site version sweep with nothing stale left behind; every claim in the description that I could execute, I executed, and all of them hold. Minor
PR description — The body says "Two host keys are newly required" and names Notes
Tests
Checks I ran
I did not verify the downstream |
|
Both checked. One holds, one does not. The third host key is real and my description undercounted it. The date is right, and the disagreement is a timezone. Right now it is Worth recording for whoever reads this next: the two clocks are three hours apart here, and just after local midnight they name different days. Print both in the same command before concluding a date is wrong. |
Cuts 0.2.0, carrying the delete-affordance repair merged in #21 and the QA round merged in #22.
Minor rather than patch: three breaking changes, listed in
CHANGELOG.md. Two are API shape and the third is behaviour that moves on upgrade with no code edit at all, which is the one worth reading twice.NotificationsListView.onDeletebecomesFuture<bool>. A host passing aFuture<void>callback no longer compiles. The widget had no way to learn whether the row left, and the list is a separately paginated fetch, so it reloaded after every tap: a host that asks for confirmation spent aGET /notificationsevery time somebody declined one.deleteNotificationrethrows a failed request instead of completing normally, so a caller can finally tell a delete that worked from one that did not.notifications.database.polling_intervalnow takes effect. It was validated by the CLI, reported bynotifications:doctorand shipped in every install stub while the runtime read nobody, so every install effectively polled every 30 seconds whatever the config said. Both directions move: an app configured at5issues six times the requests it did yesterday, and one configured at3600is clamped to 600, so its bell can be ten minutes stale where it used to be thirty seconds.Three host keys are newly required:
notifications.channel_smsandnotifications.deletefrom #22, andnotifications.delete_failedfrom #21. Each renders as the raw key without it, and all three are called out in the changelog, which is what the release notes copy.Six version sites, swept by shape rather than by the old number, which is the lesson 0.1.0 already recorded:
pubspec.yaml,CHANGELOG.md,CLAUDE.md,README.md,doc/getting-started/installation.md, and themagicNotificationsVersionconstant behind the command banners. Last release the doc was already ahead and needed no change, so a grep for the current version finds the wrong set in both directions. The constant is a site the release command's own table does not list and every previous release has bumped;install_command_test.dart:835pins it to the pubspec, so the suite verifies that one rather than my having asserted it. The^0.0.1intest/cli/commands/uninstall_getter_test.dartis deliberately untouched: it is fixture data for a temp app's pubspec, not a version site.Downstream, in order, and one of these is urgent.
magic_starter's default branch can no longer compile against this package's default branch, because its_confirmThenDeletestill returnsFuture<void>. Measured before merging #22, by pointing that repo's override at the branch:uptizminherits it, since it resolves both packages by path and compilesmagic_starterfrom source. Neither is showing red yet, and that is not reassurance: CI in those repos runs on their own pushes, not on a sibling's change, so both are stale-green and the break surfaces on their next run. fluttersdk/magic_starter#122 is the fix and is drafted with its pin already at^0.2.0, so the order is: merge this, publish 0.2.0, confirm it is live on pub.dev, then mark #122 ready (itspublishedCI job is the only gate that can catch an unresolvable pin) and merge.602 tests,
dart analyzeclean,dart formatclean.dart pub publish --dry-runreports zero warnings, and there is nopubspec_overrides.yamlin this worktree, so that dry-run is already the state the publish workflow sees rather than a friendlier one.Author: Anılcan Çakır anilcan.cakir@gmail.com