Skip to content

chore(release): 0.0.1-alpha.27 (magic_notifications ^0.3.0) - #127

Closed
anilcancakir wants to merge 1 commit into
mainfrom
chore/release-0.0.1-alpha.27
Closed

anilcancakir wants to merge 1 commit into
mainfrom
chore/release-0.0.1-alpha.27

Conversation

@anilcancakir

Copy link
Copy Markdown
Member

Prepares alpha.27 for publish. The version itself was already cut by #126; what was missing is the dependency floor that release has to carry, the translation keys that floor implies, and the half of the version sweep #126 left behind.

Draft on purpose: this must not merge before magic_notifications 0.3.0 is on pub.dev. That release is merged and dated on its own master and is waiting for a tag. Until it exists, flutter pub get cannot resolve ^0.3.0, so CI here goes red and dart pub publish --dry-run cannot be clean. The pubspec comment beside the constraint states the same rule: the floor only ever names a version pub.dev already has.

The floor is a reachability move, not a compilation one

Nothing in this package needs an API that 0.3.0 added. What it needs is to stop excluding it. A caret raises the MINOR whenever the major is zero, so ^0.2.0 reads >=0.2.0 <0.3.0, and an app that asks for magic_notifications: ^0.3.0 alongside this package leaves pub with no intersection. Pub does not report that as a conflict: it walks magic_starter back to an older release that fits and exits zero. magic_example lost two starter releases to exactly this and nothing in its CI could see it (fluttersdk/magic_example#13).

Five translation keys

magic_notifications ships no catalogue and Translator.get answers a missing key with the key itself, so each of these is visible machine text on a screen an adopter has already translated.

Key Where it renders Since
notifications.bulk_title heads the bulk card above the preference matrix 0.3.0
notifications.bulk_description the same card's subtitle 0.3.0
notifications.delete accessible name of the list row's delete glyph 0.2.0
notifications.delete_failed shown through Magic.error when the server refuses a delete 0.2.0
notifications.channel_sms the SMS row on the preferences screen 0.2.0

The bottom three have been missing since the 0.2.0 floor landed in alpha.26 and are caught here rather than left for another release. An app installed before this release owns its own copy of the catalogue and has to add all five by hand; the CHANGELOG entry says so.

Version sites

#126 moved pubspec.yaml, CHANGELOG.md and the magicStarterVersion constant to alpha.27 and stopped there. CLAUDE.md, README.md and doc/getting-started/installation.md still said alpha.26. All six now agree. The CHANGELOG heading is re-dated to today, since alpha.27 was never tagged and this is the day it goes out.

Verification

Run with a temporary, gitignored pubspec_overrides.yaml pointing magic_notifications at the sibling checkout at its 0.3.0 master, because that release is not published yet. The override was removed before committing.

  • flutter test: 1418 passed
  • dart analyze: no issues
  • dart format --output=none --set-exit-if-changed .: 0 of 331 changed
  • dart pub publish --dry-run: 1 warning (uncommitted files, expected at that point) and 1 hint (the override above). Both are artefacts of running it before the commit and against an unpublished dependency; it has to be re-run clean once 0.3.0 is live, and that is part of undrafting this.

test/skill_reference_stamp_test.dart passes: magic/skills/magic-framework/references/plugin-starter.md is already stamped v0.0.1-alpha.27.

Merge order

  1. Tag magic_notifications 0.3.0 and let it publish.
  2. Re-run dart pub publish --dry-run here, undraft, merge.
  3. Release 0.0.1-alpha.27 from main, per .claude/commands/release.md (no v prefix on the tag).

Author: Anılcan Çakır anilcan.cakir@gmail.com

The floor moves for reachability rather than for compilation. A caret raises the
minor whenever the major is zero, so ^0.2.0 reads >=0.2.0 <0.3.0, and an app
asking for magic_notifications ^0.3.0 alongside this package leaves pub no
intersection to satisfy. Pub does not report that as a conflict: it walks
magic_starter back to an older release that fits and exits zero, so an adopter
upgrading notifications on their own gets a silently downgraded starter. The
same shape cost magic_example two starter releases before anybody noticed.

The install stub gains the five notifications.* keys the package's own screens
ask the host for. bulk_title and bulk_description arrive with 0.3.0's bulk card;
delete, delete_failed and channel_sms have been missing since the 0.2.0 floor
landed in alpha.26, and Translator.get answers a missing key with the key
itself, so all three render as visible machine text today.

Also carries the version sweep #126 left half done: CLAUDE.md, README.md and
doc/getting-started/installation.md still said alpha.26 against a pubspec at
alpha.27.
@codecov

codecov Bot commented Sep 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@anilcancakir

Copy link
Copy Markdown
Member Author

Superseded by #129, which carries these two commits plus the move off the alpha rail: the release goes out as 0.0.27 rather than 0.0.1-alpha.27, so the branch name and every version site had to move with it.

@anilcancakir
anilcancakir deleted the chore/release-0.0.1-alpha.27 branch September 10, 2026 23:49
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