Repository navigation
Conversation
|
Note Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported. |
PR HealthPublish ✔️
Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation. This check can be disabled by tagging the PR with Changelog Entry ✔️
Changes to files need to be accounted for in their respective changelogs. This check can be disabled by tagging the PR with Breaking changes ✔️
This check can be disabled by tagging the PR with
API leaks
|
| Package | Leaked API symbol | Leaking sources |
|---|---|---|
| intl | StringStack | intl/date_format.dart::_DateFormatField::parse::input intl/date_format.dart::_DateFormatField::parseLoose::input intl/date_format.dart::_DateFormatField::parseLiteral::input intl/date_format.dart::_DateFormatField::parseLiteralLoose::input intl/date_format.dart::_DateFormatField::throwFormatException::stack intl/number_parser_base.dart::NumberParserBase::input intl/number_parser_base.dart::NumberParserBase::parseNumber::input |
| intl | DateBuilder | intl/date_format.dart::_DateFormatField::parse::dateFields intl/date_format.dart::_DateFormatField::parseLoose::dateFields |
This check can be disabled by tagging the PR with skip-leaking-check.
Unused Dependencies ⚠️
| Package | Status |
|---|---|
| intl | ❗ Show IssuesValidating dependencies for intl... |
| intl4x | ✔️ All dependencies utilized correctly. |
| intl_translation | ✔️ All dependencies utilized correctly. |
| messages_shrinker | ❗ Show IssuesThese packages are only used outside lib/ and should be downgraded to dev_dependencies: |
For details on how to fix these, see dependency_validator.
This check can be disabled by tagging the PR with skip-unused-dependencies-check.
License Headers ✔️
// Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
| Files |
|---|
| no missing headers |
All source files should start with a license header.
This check can be disabled by tagging the PR with skip-license-check.
Coverage ⚠️
| File | Coverage |
|---|---|
| pkgs/intl/benchmark/string_char_conversion_benchmark.dart | 💔 Not covered |
| pkgs/intl/example/bin/example.dart | 💔 Not covered |
| pkgs/intl/lib/date_symbol_data_custom.dart | 💔 Not covered |
| pkgs/intl/lib/date_symbol_data_file.dart | 💔 Not covered |
| pkgs/intl/lib/date_symbol_data_http_request.dart | 💔 Not covered |
| pkgs/intl/lib/date_symbol_data_local.dart | 💔 Not covered |
| pkgs/intl/lib/date_symbols.dart | 💔 Not covered |
| pkgs/intl/lib/date_time_patterns.dart | 💔 Not covered |
| pkgs/intl/lib/find_locale.dart | 💔 Not covered |
| pkgs/intl/lib/intl.dart | 💔 Not covered |
| pkgs/intl/lib/intl_browser.dart | 💔 Not covered |
| pkgs/intl/lib/intl_default.dart | 💔 Not covered |
| pkgs/intl/lib/intl_standalone.dart | 💔 Not covered |
| pkgs/intl/lib/locale.dart | 💔 Not covered |
| pkgs/intl/lib/message_format.dart | 💔 Not covered |
| pkgs/intl/lib/message_lookup_by_library.dart | 💔 Not covered |
| pkgs/intl/lib/number_symbols.dart | 💔 Not covered |
| pkgs/intl/lib/number_symbols_data.dart | 💔 Not covered |
| pkgs/intl/lib/src/data/dates/locale_list.dart | 💔 Not covered |
| pkgs/intl/lib/src/date_format_internal.dart | 💔 Not covered |
| pkgs/intl/lib/src/file_data_reader.dart | 💔 Not covered |
| pkgs/intl/lib/src/global_state.dart | 💔 Not covered |
| pkgs/intl/lib/src/http_request_data_reader.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/bidi.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/bidi_formatter.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/compact_number_format.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/constants.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/date_builder.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/date_computation.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/date_format.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/date_format_field.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/micro_money.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/number_format.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/number_format_parser.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/number_parser.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/number_parser_base.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/regexp.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/string_stack.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl/text_direction.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl_default.dart | 💔 Not covered |
| pkgs/intl/lib/src/intl_helpers.dart | 💔 Not covered |
| pkgs/intl/lib/src/lazy_locale_data.dart | 💔 Not covered |
| pkgs/intl/lib/src/locale.dart | 💔 Not covered |
| pkgs/intl/lib/src/locale/locale_deprecations.dart | 💔 Not covered |
| pkgs/intl/lib/src/locale/locale_extensions.dart | 💔 Not covered |
| pkgs/intl/lib/src/locale/locale_implementation.dart | 💔 Not covered |
| pkgs/intl/lib/src/locale/locale_parser.dart | 💔 Not covered |
| pkgs/intl/lib/src/plural_rules.dart | 💔 Not covered |
| pkgs/intl/lib/src/web.dart | 💔 Not covered |
| pkgs/intl/tool/generate_locale_data_files.dart | 💔 Not covered |
| pkgs/intl4x/example/docs/case_mapping.dart | 💔 Not covered |
| pkgs/intl4x/example/docs/collation.dart | 💔 Not covered |
| pkgs/intl4x/example/docs/datetime_format.dart | 💔 Not covered |
| pkgs/intl4x/example/docs/display_names.dart | 💔 Not covered |
| pkgs/intl4x/example/docs/list_format.dart | 💔 Not covered |
| pkgs/intl4x/example/docs/number_format.dart | 💔 Not covered |
| pkgs/intl4x/example/docs/plural_rules.dart | 💔 Not covered |
| pkgs/intl4x/example/example.dart | 💔 Not covered |
| pkgs/intl4x/lib/calendar.dart | 💔 Not covered |
| pkgs/intl4x/lib/case_mapping.dart | 💚 100 % |
| pkgs/intl4x/lib/collation.dart | 💚 100 % |
| pkgs/intl4x/lib/datetime_format.dart | 💔 Not covered |
| pkgs/intl4x/lib/display_names.dart | 💔 Not covered |
| pkgs/intl4x/lib/list_format.dart | 💚 100 % |
| pkgs/intl4x/lib/locale.dart | 💔 Not covered |
| pkgs/intl4x/lib/number_format.dart | 💔 Not covered |
| pkgs/intl4x/lib/plural_rules.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/case_mapping/case_mapping.dart | 💚 100 % |
| pkgs/intl4x/lib/src/case_mapping/case_mapping_4x.dart | 💚 100 % |
| pkgs/intl4x/lib/src/case_mapping/case_mapping_ecma.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/case_mapping/case_mapping_impl.dart | 💚 100 % |
| pkgs/intl4x/lib/src/case_mapping/case_mapping_stub.dart | 💔 0 % ⬇️ NaN % |
| pkgs/intl4x/lib/src/case_mapping/case_mapping_stub_4x.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/collation/collation.dart | 💚 88 % |
| pkgs/intl4x/lib/src/collation/collation_4x.dart | 💚 85 % |
| pkgs/intl4x/lib/src/collation/collation_ecma.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/collation/collation_impl.dart | 💚 100 % |
| pkgs/intl4x/lib/src/collation/collation_options.dart | 💚 100 % |
| pkgs/intl4x/lib/src/collation/collation_stub.dart | 💔 0 % ⬇️ NaN % |
| pkgs/intl4x/lib/src/collation/collation_stub_4x.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/datetime_format/datetime_format.dart | 💚 78 % |
| pkgs/intl4x/lib/src/datetime_format/datetime_format_ecma.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/datetime_format/datetime_format_impl.dart | 💚 92 % |
| pkgs/intl4x/lib/src/datetime_format/datetime_format_options.dart | 💚 40 % |
| pkgs/intl4x/lib/src/datetime_format/datetime_format_stub.dart | 💔 0 % ⬇️ NaN % |
| pkgs/intl4x/lib/src/datetime_format/datetime_format_stub_4x.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/datetime_format/icu4x/date_formatter.dart | 💚 93 % |
| pkgs/intl4x/lib/src/datetime_format/icu4x/date_time_formatter.dart | 💚 100 % |
| pkgs/intl4x/lib/src/datetime_format/icu4x/datetime_format_4x.dart | 💚 97 % |
| pkgs/intl4x/lib/src/datetime_format/icu4x/time_formatter.dart | 💚 9 % |
| pkgs/intl4x/lib/src/display_names/display_names.dart | 💚 80 % |
| pkgs/intl4x/lib/src/display_names/display_names_4x.dart | 💚 95 % |
| pkgs/intl4x/lib/src/display_names/display_names_ecma.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/display_names/display_names_impl.dart | 💚 100 % |
| pkgs/intl4x/lib/src/display_names/display_names_options.dart | 💚 100 % |
| pkgs/intl4x/lib/src/display_names/display_names_stub.dart | 💔 0 % ⬇️ NaN % |
| pkgs/intl4x/lib/src/display_names/display_names_stub_4x.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/ecma/ecma_native.dart | 💚 100 % |
| pkgs/intl4x/lib/src/ecma/ecma_web.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/find_locale.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/first_day_of_week/first_day_of_week.dart | 💚 100 % |
| pkgs/intl4x/lib/src/first_day_of_week/first_day_of_week_4x.dart | 💚 100 % |
| pkgs/intl4x/lib/src/first_day_of_week/first_day_of_week_ecma.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/first_day_of_week/first_day_of_week_stub.dart | 💔 0 % ⬇️ NaN % |
| pkgs/intl4x/lib/src/first_day_of_week/first_day_of_week_stub_4x.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/intl_browser.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/intl_standalone.dart | 💔 0 % ⬇️ NaN % |
| pkgs/intl4x/lib/src/list_format/list_format.dart | 💚 75 % |
| pkgs/intl4x/lib/src/list_format/list_format_4x.dart | 💚 100 % |
| pkgs/intl4x/lib/src/list_format/list_format_ecma.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/list_format/list_format_impl.dart | 💚 100 % |
| pkgs/intl4x/lib/src/list_format/list_format_options.dart | 💚 100 % |
| pkgs/intl4x/lib/src/list_format/list_format_stub.dart | 💔 0 % ⬇️ NaN % |
| pkgs/intl4x/lib/src/list_format/list_format_stub_4x.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/locale/locale.dart | 💚 76 % |
| pkgs/intl4x/lib/src/locale/locale_4x.dart | 💚 100 % |
| pkgs/intl4x/lib/src/locale/locale_ecma.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/number_format/number_format.dart | 💚 30 % |
| pkgs/intl4x/lib/src/number_format/number_format_4x.dart | 💚 91 % |
| pkgs/intl4x/lib/src/number_format/number_format_ecma.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/number_format/number_format_impl.dart | 💚 100 % |
| pkgs/intl4x/lib/src/number_format/number_format_options.dart | 💚 38 % |
| pkgs/intl4x/lib/src/number_format/number_format_stub.dart | 💔 0 % ⬇️ NaN % |
| pkgs/intl4x/lib/src/number_format/number_format_stub_4x.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/options.dart | 💚 100 % |
| pkgs/intl4x/lib/src/plural_rules/plural_rules.dart | 💚 92 % |
| pkgs/intl4x/lib/src/plural_rules/plural_rules_4x.dart | 💚 100 % |
| pkgs/intl4x/lib/src/plural_rules/plural_rules_ecma.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/plural_rules/plural_rules_impl.dart | 💚 100 % |
| pkgs/intl4x/lib/src/plural_rules/plural_rules_options.dart | 💚 100 % |
| pkgs/intl4x/lib/src/plural_rules/plural_rules_stub.dart | 💔 0 % ⬇️ NaN % |
| pkgs/intl4x/lib/src/plural_rules/plural_rules_stub_4x.dart | 💔 Not covered |
| pkgs/intl4x/lib/src/test_checker.dart | 💚 100 % |
| pkgs/intl4x/lib/src/utils.dart | 💚 100 % |
| pkgs/intl_translation/bin/extract_to_arb.dart | 💔 Not covered |
| pkgs/intl_translation/bin/generate_from_arb.dart | 💔 Not covered |
| pkgs/intl_translation/bin/make_examples_const.dart | 💔 Not covered |
| pkgs/intl_translation/bin/rewrite_intl_messages.dart | 💔 Not covered |
| pkgs/intl_translation/example/lib/example_messages.dart | 💔 Not covered |
| pkgs/intl_translation/example/lib/generated/messages_all.dart | 💔 Not covered |
| pkgs/intl_translation/example/lib/generated/messages_all_locales.dart | 💔 Not covered |
| pkgs/intl_translation/example/lib/generated/messages_de.dart | 💔 Not covered |
| pkgs/intl_translation/example/lib/generated/messages_de_CH.dart | 💔 Not covered |
| pkgs/intl_translation/example/lib/generated/messages_en.dart | 💔 Not covered |
| pkgs/intl_translation/example/lib/generated/messages_es.dart | 💔 Not covered |
| pkgs/intl_translation/example/lib/generated/messages_iw.dart | 💔 Not covered |
| pkgs/intl_translation/lib/extract_messages.dart | 💚 82 % |
| pkgs/intl_translation/lib/generate_localized.dart | 💔 Not covered |
| pkgs/intl_translation/lib/src/arb_generation.dart | 💔 Not covered |
| pkgs/intl_translation/lib/src/directory_utils.dart | 💔 Not covered |
| pkgs/intl_translation/lib/src/language_version.dart | 💔 Not covered |
| pkgs/intl_translation/lib/src/message_parser.dart | 💚 95 % |
| pkgs/intl_translation/lib/src/message_rewriter.dart | 💚 18 % |
| pkgs/intl_translation/lib/src/messages/complex_message.dart | 💚 100 % |
| pkgs/intl_translation/lib/src/messages/composite_message.dart | 💚 42 % |
| pkgs/intl_translation/lib/src/messages/constant_evaluator.dart | 💚 100 % |
| pkgs/intl_translation/lib/src/messages/literal_string_message.dart | 💚 33 % |
| pkgs/intl_translation/lib/src/messages/main_message.dart | 💚 52 % |
| pkgs/intl_translation/lib/src/messages/message.dart | 💚 89 % |
| pkgs/intl_translation/lib/src/messages/message_extraction_exception.dart | 💚 100 % |
| pkgs/intl_translation/lib/src/messages/pair_message.dart | 💚 14 % |
| pkgs/intl_translation/lib/src/messages/submessages/gender.dart | 💚 92 % |
| pkgs/intl_translation/lib/src/messages/submessages/plural.dart | 💚 79 % |
| pkgs/intl_translation/lib/src/messages/submessages/select.dart | 💚 66 % |
| pkgs/intl_translation/lib/src/messages/submessages/submessage.dart | 💚 60 % |
| pkgs/intl_translation/lib/src/messages/variable_substitution_message.dart | 💚 41 % |
| pkgs/intl_translation/lib/visitors/interpolation_visitor.dart | 💚 90 % |
| pkgs/intl_translation/lib/visitors/message_finding_visitor.dart | 💚 93 % |
| pkgs/intl_translation/lib/visitors/plural_gender_visitor.dart | 💚 65 % |
| pkgs/messages_shrinker/bin/messages_shrinker.dart | 💔 Not covered |
| pkgs/messages_shrinker/lib/messages_shrinker.dart | 💚 90 % |
This check for test coverage is informational (issues shown here will not fail the PR).
This check can be disabled by tagging the PR with skip-coverage-check.
Note
This PR was generated by an AI coding agent (Jetski) on behalf of @mosuem.
Migrates publishing validation and tag-triggered publishing to the split workflow architecture from
dart-lang/ecosystem#454:.github/workflows/health.yaml: Repin todart-lang/ecosystemmain(enabling thepublishcheck) and includepublishinfail_on..github/workflows/post_summaries.yaml: Pin todart-lang/ecosystemmainand removePublishfromworkflow_run.workflows..github/workflows/publish_<pkg>.yaml: Remove.github/workflows/publish.yamland add per-package tag-triggered publishing workflows (publish_intl.yaml,publish_intl4x.yaml,publish_intl_translation.yaml,publish_messages_shrinker.yaml) delegating todart-lang/setup-dart/.github/workflows/publish.yml(use-flutter: false).Important
dart-lang/i18ncurrently listspublish / validateas a required branch protection check onmain. When merging this PR, update branch protection onmainto replacepublish / validatewithhealth / publish / run publish health check.