From 05b7015439911a817be4ffa5a98abd43ae40c055 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Tue, 9 Jun 2026 17:10:04 -0700 Subject: [PATCH 01/14] Update publishing.md --- docs/contributing/publishing.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/contributing/publishing.md b/docs/contributing/publishing.md index 825f7b744..4ebb0250b 100644 --- a/docs/contributing/publishing.md +++ b/docs/contributing/publishing.md @@ -70,6 +70,28 @@ major number for breaking changes. TODO(polinach): update this section after fix of https://github.com/dart-lang/ecosystem/issues/418. +## On-call responsibilities + +Weekly: + +1. Make sure each releasable dart package is released (TODO: [auto-create P0 bug](https://github.com/dart-lang/ecosystem/issues/423)) + 1.1. Check the ‘Package publishing‘ table in the latest merged PR, has all non-wip versions marked ‘already published’. + 1.2. For not published, publish them by running ‘flutter pub publish’ (if you do not have permissions ask at the team chat to make you admin on the admin page of the package). + +2. Make sure publishable changes are not under ‘wip’ in CHANGELOG.md (should be [auto-validated](https://github.com/dart-lang/ecosystem/issues/422) in future). + + If publishable changes are under ‘wip’ in CHANGELOG.md: + + 2.1. Convert wip version to a non-wip version in CHANGELOG.md. + + 2.2. Publish the new version + + 2.3. Comment on the PR that merged publishable changes under 'wip': + + > This PR had wrongly put publishable changes under ‘wip’ version’, that is corrected in the PR . See guidelines [here](https://github.com/flutter/genui/blob/main/docs/contributing/publishing.md#-wip-vs-non--wip-production-ready-versions). + + 2.4 Make sure the PR author and reviewers acknowledged the comment + ## How upgrade of dependencies happens? ### For run in workspace From cf77f7aeb16b7db98e05c42292ca0e5ff78bcba6 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Tue, 9 Jun 2026 17:12:27 -0700 Subject: [PATCH 02/14] Update docs/contributing/publishing.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- docs/contributing/publishing.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/contributing/publishing.md b/docs/contributing/publishing.md index 4ebb0250b..5d70b8ec3 100644 --- a/docs/contributing/publishing.md +++ b/docs/contributing/publishing.md @@ -75,22 +75,22 @@ TODO(polinach): update this section after fix of https://github.com/dart-lang/ec Weekly: 1. Make sure each releasable dart package is released (TODO: [auto-create P0 bug](https://github.com/dart-lang/ecosystem/issues/423)) - 1.1. Check the ‘Package publishing‘ table in the latest merged PR, has all non-wip versions marked ‘already published’. - 1.2. For not published, publish them by running ‘flutter pub publish’ (if you do not have permissions ask at the team chat to make you admin on the admin page of the package). + 1.1. Check the `Package publishing` table in the latest merged PR to see if all non-wip versions are marked `already published`. + 1.2. For packages not yet published, publish them by running `flutter pub publish` (if you do not have permissions, ask in the team chat to be made an admin on the admin page of the package). -2. Make sure publishable changes are not under ‘wip’ in CHANGELOG.md (should be [auto-validated](https://github.com/dart-lang/ecosystem/issues/422) in future). +2. Make sure publishable changes are not under `wip` in `CHANGELOG.md` (should be [auto-validated](https://github.com/dart-lang/ecosystem/issues/422) in future). - If publishable changes are under ‘wip’ in CHANGELOG.md: + If publishable changes are under `wip` in `CHANGELOG.md`: - 2.1. Convert wip version to a non-wip version in CHANGELOG.md. + 2.1. Convert the wip version to a non-wip version in `CHANGELOG.md`. - 2.2. Publish the new version + 2.2. Publish the new version. - 2.3. Comment on the PR that merged publishable changes under 'wip': + 2.3. Comment on the PR that merged publishable changes under `wip`: - > This PR had wrongly put publishable changes under ‘wip’ version’, that is corrected in the PR . See guidelines [here](https://github.com/flutter/genui/blob/main/docs/contributing/publishing.md#-wip-vs-non--wip-production-ready-versions). + > This PR wrongly placed publishable changes under a `wip` version. This is corrected in PR . See guidelines [here](https://github.com/flutter/genui/blob/main/docs/contributing/publishing.md#-wip-vs-non--wip-production-ready-versions). - 2.4 Make sure the PR author and reviewers acknowledged the comment + 2.4. Make sure the PR author and reviewers acknowledged the comment. ## How upgrade of dependencies happens? From 93750dd6bbf8a91ea5723bdab7c678e8c91e90ef Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Wed, 10 Jun 2026 14:16:38 -0700 Subject: [PATCH 03/14] - --- packages/genai_primitives/CHANGELOG.md | 2 +- packages/genai_primitives/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/genai_primitives/CHANGELOG.md b/packages/genai_primitives/CHANGELOG.md index 059f6c68a..8b3187ad5 100644 --- a/packages/genai_primitives/CHANGELOG.md +++ b/packages/genai_primitives/CHANGELOG.md @@ -1,6 +1,6 @@ # `genai_primitives` Changelog -## 0.2.4-wip001 +## 0.2.4 - **Feature**: Use `log` instead of `print` in example ([#546dab9be](https://github.com/flutter/genui/commit/546dab9be)). diff --git a/packages/genai_primitives/pubspec.yaml b/packages/genai_primitives/pubspec.yaml index 4f46ee409..176937a19 100644 --- a/packages/genai_primitives/pubspec.yaml +++ b/packages/genai_primitives/pubspec.yaml @@ -4,7 +4,7 @@ name: genai_primitives description: A set of primitives for working with generative AI. -version: 0.2.4-wip001 +version: 0.2.4 homepage: https://github.com/flutter/genui/tree/main/packages/genai_primitives license: BSD-3-Clause issue_tracker: https://github.com/flutter/genui/issues From 5dfe9910fbfb4dcd4ee97eb69721e0d55546955f Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Thu, 11 Jun 2026 16:39:20 -0700 Subject: [PATCH 04/14] Update publishing.md --- docs/contributing/publishing.md | 36 ++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/docs/contributing/publishing.md b/docs/contributing/publishing.md index 5d70b8ec3..52c1706ff 100644 --- a/docs/contributing/publishing.md +++ b/docs/contributing/publishing.md @@ -19,8 +19,8 @@ To make sure your PR passes this validation, follow [firehose rules](https://git Packages in this repo fall into the following categories: -1. **Not published**: `pubspec.yaml` contains `publish_to: none`. Workspace tools and example apps that are never pushed to pub.dev. -2. **Not yet published**: the package's `version:` ends with a `-wip` suffix (see "`-wip` vs non-`-wip`" below). Published to pub.dev to reserve the name or to test the package; not ready for general use yet. +1. **Not planned to be published**: `pubspec.yaml` contains `publish_to: none`. Workspace tools and example apps that are never pushed to pub.dev. +2. **Not yet published**: the package's `version:` ends with a `-wip` suffix (see "Versioning" below). Not-ready-for-production versions are pushed to pub.dev to reserve the name and maybe to try the package in dev purposes. 3. **Published**: any other package. Each has its own version cadence on pub.dev. ## About `resolution: workspace` @@ -33,21 +33,7 @@ Packages in this repo fall into the following categories: Note that a package can opt out (by omitting `resolution: workspace`) to have separate dependency resolution. -## `-wip` vs non-`-wip` (production ready) versions -The packages code should be always release ready. That means: - -1. Use `-wip` version (format `0.1.0-wip002`) if **at least one** of the following statements is true: - - 1.1. The package is planned to be released in the future. In this case it is published with `-wip` suffix in order to reserve the package name. - - 1.2. The package's last changes touch only non-publishable code or docs (like tests, tools, or not-publishable docs). - - You can publish `-wip` versions (where `` is a three-digit, zero padded integer like `-wip003`), if you need it for development. - -2. Remove `-wip` suffix from a version in `pubspec.yaml`, if your change in this package is publishable. - -3. If your feature is partially implemented, hide the feature's code behind a false-by-default flag, and use **release-ready** version. (There is no detailed guidance how to define this flag yet. It should be outlined when it is needed. Please create an issue if you need it soon.) ## Versioning @@ -60,6 +46,24 @@ major number for breaking changes. [Semver]: https://semver.org/ +The versions may have postfixes: + +- **`-wip`**: not ready for production +- **`-noop`**: used in CHANGELOG.md and pubspec.yaml to indicate that the code does not contain publishable changes comparing to the previously published version and thus should not be published to pub.dev. +- **no postfix**: release ready version, that should be pushed to pub.dev right after merging the PR that introduced the changes. + +The packages code should be always release ready. That means: + +1. Use `-wip` version (format `0.1.0-wip002`) if **at least one** the package is planned to be released in the future. + +2. Use `-noop` version if your PR touches only non-publishable code or docs (like tests, tools, or not-publishable docs). + +3. You can publish `-wip` versions (where `` is a three-digit, zero padded integer like `-wip003`), if you need it for development, but do not merge `wip` versions for prod-ready published packages. + +4. Remove `-noop` suffix from a version in `pubspec.yaml`, if your change is publishable. + +5. If your feature is partially implemented, hide the feature's code behind a false-by-default flag, and use **release-ready** version. (There is no detailed guidance how to define this flag yet. It should be outlined when it is needed. Please create an issue if you need it soon.) + ## How publishing happens? 1. **Auto**: The workflow job `publish / validate` will: From 0ad23ad1130e889608d0c8473285acbd607754bf Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 13:09:16 -0700 Subject: [PATCH 05/14] - --- .../workflows/publish_to_pub_dev/health.yaml | 17 +++++++++++++++++ .../post_summaries.yaml | 0 .../{ => publish_to_pub_dev}/publish.yaml | 0 3 files changed, 17 insertions(+) create mode 100644 .github/workflows/publish_to_pub_dev/health.yaml rename .github/workflows/{ => publish_to_pub_dev}/post_summaries.yaml (100%) rename .github/workflows/{ => publish_to_pub_dev}/publish.yaml (100%) diff --git a/.github/workflows/publish_to_pub_dev/health.yaml b/.github/workflows/publish_to_pub_dev/health.yaml new file mode 100644 index 000000000..c53c31b2f --- /dev/null +++ b/.github/workflows/publish_to_pub_dev/health.yaml @@ -0,0 +1,17 @@ +name: Health +on: + pull_request: + branches: [ main ] + types: [opened, synchronize, reopened, labeled, unlabeled] + +jobs: + health: + uses: dart-lang/ecosystem/.github/workflows/health.yaml@main + with: + # TODO: Add breaking check once we have a real version published to + # compare against. + checks: "version,changelog,do-not-submit" + flutter_packages: "pkgs/dart_mcp_server/test_fixtures/counter_app" + sdk: dev + permissions: + pull-requests: write diff --git a/.github/workflows/post_summaries.yaml b/.github/workflows/publish_to_pub_dev/post_summaries.yaml similarity index 100% rename from .github/workflows/post_summaries.yaml rename to .github/workflows/publish_to_pub_dev/post_summaries.yaml diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish_to_pub_dev/publish.yaml similarity index 100% rename from .github/workflows/publish.yaml rename to .github/workflows/publish_to_pub_dev/publish.yaml From 4f5118e02a00602f449ee1d492f77d2b601859cb Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 13:32:42 -0700 Subject: [PATCH 06/14] Update health.yaml --- .github/workflows/publish_to_pub_dev/health.yaml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish_to_pub_dev/health.yaml b/.github/workflows/publish_to_pub_dev/health.yaml index c53c31b2f..2549a852c 100644 --- a/.github/workflows/publish_to_pub_dev/health.yaml +++ b/.github/workflows/publish_to_pub_dev/health.yaml @@ -1,17 +1,18 @@ +# Copyright 2025 The Flutter Authors. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Checks changelog and versions are correct. + name: Health on: pull_request: - branches: [ main ] + branches: [ main, master ] types: [opened, synchronize, reopened, labeled, unlabeled] - jobs: health: uses: dart-lang/ecosystem/.github/workflows/health.yaml@main with: - # TODO: Add breaking check once we have a real version published to - # compare against. checks: "version,changelog,do-not-submit" - flutter_packages: "pkgs/dart_mcp_server/test_fixtures/counter_app" - sdk: dev permissions: pull-requests: write From aec683a6a3ddda56279e19858dce023840285c59 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 13:35:30 -0700 Subject: [PATCH 07/14] - --- .../workflows/{publish_to_pub_dev/health.yaml => pub_health.yaml} | 0 .../post_summaries.yaml => pub_post_summaries.yaml} | 0 .../{publish_to_pub_dev/publish.yaml => pub_publish.yaml} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{publish_to_pub_dev/health.yaml => pub_health.yaml} (100%) rename .github/workflows/{publish_to_pub_dev/post_summaries.yaml => pub_post_summaries.yaml} (100%) rename .github/workflows/{publish_to_pub_dev/publish.yaml => pub_publish.yaml} (100%) diff --git a/.github/workflows/publish_to_pub_dev/health.yaml b/.github/workflows/pub_health.yaml similarity index 100% rename from .github/workflows/publish_to_pub_dev/health.yaml rename to .github/workflows/pub_health.yaml diff --git a/.github/workflows/publish_to_pub_dev/post_summaries.yaml b/.github/workflows/pub_post_summaries.yaml similarity index 100% rename from .github/workflows/publish_to_pub_dev/post_summaries.yaml rename to .github/workflows/pub_post_summaries.yaml diff --git a/.github/workflows/publish_to_pub_dev/publish.yaml b/.github/workflows/pub_publish.yaml similarity index 100% rename from .github/workflows/publish_to_pub_dev/publish.yaml rename to .github/workflows/pub_publish.yaml From 825ea074a457d0ac27c1d4882077aaeaa106fcf0 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 13:38:05 -0700 Subject: [PATCH 08/14] Update pub_health.yaml --- .github/workflows/pub_health.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pub_health.yaml b/.github/workflows/pub_health.yaml index 2549a852c..da43af46e 100644 --- a/.github/workflows/pub_health.yaml +++ b/.github/workflows/pub_health.yaml @@ -7,7 +7,7 @@ name: Health on: pull_request: - branches: [ main, master ] + branches: [ main ] types: [opened, synchronize, reopened, labeled, unlabeled] jobs: health: From 6c929ecf58440592b0e987e77d4560e7877717ee Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 13:42:30 -0700 Subject: [PATCH 09/14] Update pub_health.yaml --- .github/workflows/pub_health.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pub_health.yaml b/.github/workflows/pub_health.yaml index da43af46e..d304fc5c0 100644 --- a/.github/workflows/pub_health.yaml +++ b/.github/workflows/pub_health.yaml @@ -13,6 +13,6 @@ jobs: health: uses: dart-lang/ecosystem/.github/workflows/health.yaml@main with: - checks: "version,changelog,do-not-submit" + checks: "changelog" permissions: pull-requests: write From ccda324fcf10adf57152203dacae407e725753a0 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 13:44:11 -0700 Subject: [PATCH 10/14] Update pub_health.yaml --- .github/workflows/pub_health.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pub_health.yaml b/.github/workflows/pub_health.yaml index d304fc5c0..3cf203786 100644 --- a/.github/workflows/pub_health.yaml +++ b/.github/workflows/pub_health.yaml @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# Checks changelog and versions are correct. +# Checks changelog has been modified for changed packages. name: Health on: From a415838e5c55132f9233663de05fc72d4df2ad97 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 13:56:18 -0700 Subject: [PATCH 11/14] - --- .github/workflows/pub_health.yaml | 3 +++ docs/contributing/publishing.md | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pub_health.yaml b/.github/workflows/pub_health.yaml index 3cf203786..721a98ea1 100644 --- a/.github/workflows/pub_health.yaml +++ b/.github/workflows/pub_health.yaml @@ -4,6 +4,9 @@ # Checks changelog has been modified for changed packages. +# TODO(polina-c): add `dart-lang/ecosystem/.github/workflows/post_summaries.yaml@*,` +# to the org termissions, to enable this workflow + name: Health on: pull_request: diff --git a/docs/contributing/publishing.md b/docs/contributing/publishing.md index 52c1706ff..4d11cfdaa 100644 --- a/docs/contributing/publishing.md +++ b/docs/contributing/publishing.md @@ -135,8 +135,9 @@ In https://github.com/organizations/flutter/settings/actions: peter-evans/create-or-update-comment@*, peter-evans/create-pull-request@*, peter-evans/repository-dispatch@*, - dart-lang/ecosystem/.github/workflows/publish.yaml@*, + dart-lang/ecosystem/.github/workflows/health.yaml@*, dart-lang/ecosystem/.github/workflows/post_summaries.yaml@*, + dart-lang/ecosystem/.github/workflows/publish.yaml@*, ``` ### Configure pub.dev for each package From e795adc4d37c6784716d55e128621092ca2bf1f4 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 14:07:39 -0700 Subject: [PATCH 12/14] Update publishing.md --- docs/contributing/publishing.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/contributing/publishing.md b/docs/contributing/publishing.md index 4d11cfdaa..37234c81c 100644 --- a/docs/contributing/publishing.md +++ b/docs/contributing/publishing.md @@ -33,8 +33,6 @@ Packages in this repo fall into the following categories: Note that a package can opt out (by omitting `resolution: workspace`) to have separate dependency resolution. - - ## Versioning We use [Semver] for package versioning, although before 1.0.0, we will be @@ -54,11 +52,11 @@ The versions may have postfixes: The packages code should be always release ready. That means: -1. Use `-wip` version (format `0.1.0-wip002`) if **at least one** the package is planned to be released in the future. +1. Use `-wip` version (format `0.1.0-wip002`) if ready versions for this packages were never published yet, and are planned to be published in the future. 2. Use `-noop` version if your PR touches only non-publishable code or docs (like tests, tools, or not-publishable docs). -3. You can publish `-wip` versions (where `` is a three-digit, zero padded integer like `-wip003`), if you need it for development, but do not merge `wip` versions for prod-ready published packages. +3. You can publish `-wip` versions, if you need it for development, but do not merge `wip` versions for prod-ready published packages. 4. Remove `-noop` suffix from a version in `pubspec.yaml`, if your change is publishable. From 987b52933e5fcd27b0c4a317747f2dad98782549 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 14:08:50 -0700 Subject: [PATCH 13/14] Update publishing.md --- docs/contributing/publishing.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/contributing/publishing.md b/docs/contributing/publishing.md index 37234c81c..71223721f 100644 --- a/docs/contributing/publishing.md +++ b/docs/contributing/publishing.md @@ -70,7 +70,9 @@ The packages code should be always release ready. That means: 2. **Manual**: After reviewing and merging the PR, for each 'ready to publish' version the author of the PR should run `flutter pub publish` or `dart pub publish`. -TODO(polinach): update this section after fix of https://github.com/dart-lang/ecosystem/issues/418. +TODO(polina-c): add validation that all PRs include CHANGELOG.md entries after updating the repo's settings. + +TODO(polina-c): update this section after fix of https://github.com/dart-lang/ecosystem/issues/418. ## On-call responsibilities From d326f11391e4e328d0ee8b573ebd1cdc8312c04d Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Mon, 15 Jun 2026 14:19:38 -0700 Subject: [PATCH 14/14] Update publishing.md --- docs/contributing/publishing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contributing/publishing.md b/docs/contributing/publishing.md index 71223721f..03fea9bd3 100644 --- a/docs/contributing/publishing.md +++ b/docs/contributing/publishing.md @@ -70,7 +70,7 @@ The packages code should be always release ready. That means: 2. **Manual**: After reviewing and merging the PR, for each 'ready to publish' version the author of the PR should run `flutter pub publish` or `dart pub publish`. -TODO(polina-c): add validation that all PRs include CHANGELOG.md entries after updating the repo's settings. +TODO(polina-c): add validation that all PRs include CHANGELOG.md entries: https://github.com/flutter/genui/issues/967. TODO(polina-c): update this section after fix of https://github.com/dart-lang/ecosystem/issues/418.