Skip to content

release: fluttersdk_artisan 0.0.10 - #42

Merged
anilcancakir merged 3 commits into
masterfrom
release/0.0.10
Aug 20, 2026
Merged

release: fluttersdk_artisan 0.0.10#42
anilcancakir merged 3 commits into
masterfrom
release/0.0.10

Conversation

@anilcancakir

Copy link
Copy Markdown
Contributor

What

Cuts 0.0.10 from the work merged in #40.

  • pubspec.yaml 0.0.9 -> 0.0.10
  • CHANGELOG.md [Unreleased] promoted to [0.0.10] - 2026-08-20
  • The three other version stamps: the MCP handshake string, example/pubspec.yaml, and the SKILL.md stamp comment
  • New guard: test/mcp/mcp_server_version_test.dart

Why the guard

The MCP handshake version is a hand-edited literal beside a comment asking the next person to remember. Nobody did on the 0.0.9 cut, so every client read 0.0.8 while the package on disk was 0.0.9; version gating and bug reports both keyed on the wrong number, and correcting it cost a separate release (#36).

The test drives a real initialize handshake and asserts serverInfo.version against the version parsed out of pubspec.yaml. It reads the value off the wire because the wire value is what was wrong, and it reads the expectation out of the pubspec rather than hardcoding it, because a second hardcoded copy would just move the drift. Verified red-green: with pubspec.yaml bumped and mcp_server.dart untouched it fails and names the file to edit.

Housekeeping folded in

  • ### Quality -> ### Documentation. Not a Keep-a-Changelog category; every entry under it is a docs or skill correction, and 0.0.8 set the Documentation precedent in this same file.
  • Footer compare links for all ten releases. The release procedure in CLAUDE.md has called for one per version from the start and the file carried none, so a lone 0.0.10 link would have looked broken.
  • The caret constraint quoted in three doc pages moved off ^0.0.1, which told a reader the package had never moved.
  • CLAUDE.md Release section now names all four version-carrying files and which of them has a guard.

Testing

dart format zero diff, dart analyze zero issues, 1219 tests green, dart pub publish --dry-run clean on a committed tree.

After merge

git tag 0.0.10 && git push origin 0.0.10 triggers publish.yml (validate -> pub.dev via OIDC -> GitHub Release, notes extracted from the [0.0.10] CHANGELOG section).

Promotes `## [Unreleased]` to `## [0.0.10] - 2026-08-20` and bumps every
stamp that carries the version.

Three of those stamps are hand-edited and one of them has already been
missed: the MCP handshake string shipped 0.0.8 through the whole 0.0.9
release, so clients read a version behind and it took a follow-up release to
correct. `test/mcp/mcp_server_version_test.dart` now reads the version off
the initialize handshake, compares it to `pubspec.yaml`, and names the file
to edit when they differ, so that particular drift cannot happen a third
time.

Also in this cut:

- `### Quality` renamed to `### Documentation`. Every entry under it is a
  docs or skill correction, `Quality` is not a Keep-a-Changelog category,
  and 0.0.8 already set the `Documentation` precedent in this file.
- Footer compare links for all ten releases. The release procedure has
  called for one per version since the beginning and the file has never
  carried any, so adding a lone 0.0.10 link would have read as broken.
- The caret constraint quoted in the installation, install and plugin
  authoring pages moved off `^0.0.1`, which told a reader the package had
  never moved.
… missed it

CI caught what the release commit did not: `example/packages/awesome_plugin/
pubspec.yaml` also carries a `path:` dep on this package with an explicit
`version:`, so bumping `example/pubspec.yaml` alone made `flutter pub get`
fail with `version solving failed`.

That makes five hand-edited version stamps, not the four the CLAUDE.md note
claimed one commit ago. The note now names all five and says which of them
are guarded: the MCP string by its new test, and the two example pubspecs by
pub's own resolver, which is what just failed. The SKILL.md stamp is the only
one nothing checks.

`example/pubspec.lock` records the path dep's version too, so it moves with
every release whether or not anything else changed. The analysis_options
excludes are what `flutter pub get` writes on the current SDK; committing
what the tool writes keeps `dart pub publish --dry-run` from failing on a
modified checked-in file.
The current stable Flutter SDK writes an `analyzer: exclude:` block into
every `analysis_options.yaml` it resolves. CI runs `flutter pub get` before
`dart pub publish --dry-run`, so the file is modified by the time the archive
is validated and the dry-run exits 65 on "1 checked-in file is modified in
git".

Not caused by this branch: master would fail the same way on its next run,
for the same reason dusk did. Committing what the tool writes is the fix that
holds, since reverting it just means the next `pub get` writes it again.
@anilcancakir
anilcancakir merged commit f36eb9a into master Aug 20, 2026
3 checks passed
@anilcancakir
anilcancakir deleted the release/0.0.10 branch August 20, 2026 17:27
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