name: prepare-flet-release description: Use when asked to prepare new Flet release by bumping versions and author release notes.
Inputs
- Previous Flet version from repo tags.
- Whether it's minor or major release.
Related Skills
Always use flet-deprecation during release prep
to audit deprecations for the target version. Also use it when release prep includes:
- adding new deprecations in this release,
- removing APIs whose
delete_versionequals this release version, - auditing changelog entries that mention deprecations/removals.
Use write-changelog-entry for drafting or refining individual changelog items.
That skill is the source of truth for item wording, scope selection, and what should or should not be mentioned in a single entry.
Steps
- Take latest Flet release version from the repo and increment third (patch) digit to get the next version if it's a minor release or second (minor) digit if it's a major release.
- Pull the latest
mainand create a new branch namedprepare-release-{new_version}frommain. - Set new version in packages/flet/pubspec.yaml.
- Run pub get in /client dir to refresh pubspec.lock with new version.
- Add new entries into
packages/flet/CHANGELOG.mdand/CHANGELOG.mdfrom the git log since the last release.- Use
write-changelog-entryfor every individual item. - Build the candidate set from relevant commits, PRs, and issues since the last release.
- Ensure that all inferred PRs and issues in the changelog have the
{version}milestone attached on GitHub. - If a related issue or PR is missing the
{version}milestone, update the milestone on GitHub and keep the link in the changelog. - When selecting candidates for
packages/flet/CHANGELOG.md, prefer items with meaningful Flutter-side impact. - When selecting candidates for
sdk/python/packages/*/CHANGELOG.md, prefer published Python-facing changes; do not include extension-internal Flutter implementation work unless it materially changes user-visible Python behavior.
- Use
- If the release includes breaking changes, API removals, or deprecations,
update
website/docs/release/release-notes.mdandwebsite/docs/release/breaking-changes/index.md.- Use
flet-deprecationfor deprecation guide requirements and sidebar placement. - Group related deprecations into one migration guide page where possible,
and add guide pages under the release version in
website/sidebars.yml.
- Use
- Scan all changelogs for
Unreleasedsections, not only the root ones:/CHANGELOG.mdpackages/flet/CHANGELOG.mdsdk/python/packages/*/CHANGELOG.mdRecommended check command:rg -n "^##\\s*\\[?Unreleased\\]?|^##\\s*Unreleased" -S CHANGELOG.md packages/flet/CHANGELOG.md sdk/python/packages/*/CHANGELOG.md
- If any changelog has an
Unreleasedsection, convert that section into the new release section (## {new_version}), preserving and re-sorting its items. Do not leave duplicate release content in bothUnreleasedand{new_version}. This conversion must be done for every matched changelog from the scan above. - Sort items in changelogs as follows, omitting empty sections:
- New features
- Improvements
- Breaking changes
- Deprecations
- Bug fixes
- Documentation
- Other changes (chore, refactor, etc.)
Put removals of previously deprecated APIs under
Breaking changes, and keep newly deprecated-but-still-working APIs underDeprecations.
- Templates are in
sdk/python/templates/and automatically packaged as zip artifacts with the GitHub Release. No manual branch creation in external repos is needed.