Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to messages #762

Merged
merged 9 commits into from
Jan 8, 2024
Merged

Updates to messages #762

merged 9 commits into from
Jan 8, 2024

Conversation

mosuem
Copy link
Member

@mosuem mosuem commented Dec 15, 2023

Remove IntlObject, as we only need its plural selection. Define a PluralSelector typedef instead of an interface, which alleviates issues around packaging (where should an interface live?).

We support intl4x and intl out of the box, but users can also specify their own plural selectors if they want to.

cc @parlough - this should clarify some of your questions from dart-lang/dart-pad#2748


  • I’ve reviewed the contributor guide and applied the relevant portions to this PR.
Contribution guidelines:

Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.

Copy link

github-actions bot commented Jan 2, 2024

PR Health

Breaking changes ✔️

Details
Package Change Current Version New Version Needed Version Looking good?
intl4x Non-Breaking 0.7.0 0.7.1 0.7.1 ✔️
messages Breaking 0.1.1 0.2.0 0.2.0 ✔️
messages_builder Breaking 0.1.1 0.2.0 0.2.0 ✔️
messages_serializer Breaking 0.1.0 0.2.0 0.2.0 ✔️
messages_shrinker None 0.1.0 0.2.0 0.1.0 ✔️

Changelog Entry ✔️

Details
Package Changed Files

Changes to files need to be accounted for in their respective changelogs.

Coverage ⚠️

Details
File Coverage
pkgs/intl4x/lib/intl4x.dart 💔 Not covered
pkgs/messages/example_json/bin/example.dart 💔 Not covered
pkgs/messages/example_json/lib/testarb.g.dart 💔 Not covered
pkgs/messages/example_json/lib/testarbctx2.g.dart 💔 Not covered
pkgs/messages/lib/messages.dart 💔 Not covered
pkgs/messages/lib/src/deserializer/deserializer.dart 💔 Not covered
pkgs/messages/lib/src/deserializer/deserializer_json.dart 💚 94 % ⬆️ 22 %
pkgs/messages/lib/src/message.dart 💚 66 % ⬆️ 23 %
pkgs/messages/lib/src/message_format.dart 💔 Not covered
pkgs/messages/lib/src/message_list_json.dart 💚 67 %
pkgs/messages/lib/src/plural_selector.dart 💔 Not covered
pkgs/messages_builder/lib/code_generation/constructor_generation.dart 💔 Not covered
pkgs/messages_builder/lib/code_generation/field_generation.dart 💔 Not covered
pkgs/messages_builder/lib/code_generation/import_generation.dart 💔 Not covered
pkgs/messages_builder/lib/code_generation/method_generation.dart 💔 Not covered
pkgs/messages_builder/lib/generation_options.dart 💔 Not covered
pkgs/messages_builder/lib/message_parser/plural_parser.dart 💔 98 % ⬇️ 0 %
pkgs/messages_serializer/lib/src/serializer_json.dart 💚 94 % ⬆️ 25 %
pkgs/messages_shrinker/lib/messages_shrinker.dart 💔 90 % ⬇️ 7 %

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

License Headers ⚠️

Details
// Copyright (c) 2024, 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
pkgs/messages/example_json/lib/testarb.g.dart
pkgs/messages/example_json/lib/testarbctx2.g.dart

All source files should start with a license header.

Unrelated files missing license headers
Files
pkgs/intl_translation/test/generate_localized/code_map_messages_fr.dart
pkgs/intl_translation/test/generate_localized/code_map_messages_all_locales.dart
pkgs/intl_translation/test/generate_localized/code_map_messages_all.dart
pkgs/intl_translation/test/two_components/component_messages_all.dart
pkgs/intl_translation/test/two_components/app_messages_fr.dart
pkgs/intl_translation/test/two_components/component_messages_fr_xyz123.dart
pkgs/intl_translation/test/two_components/component_messages_all_locales.dart
pkgs/intl_translation/test/two_components/app_messages_all_locales.dart
pkgs/intl_translation/test/two_components/app_messages_all.dart
pkgs/intl_translation/example/lib/generated/messages_de_CH.dart
pkgs/intl_translation/example/lib/generated/messages_all_locales.dart
pkgs/intl_translation/example/lib/generated/messages_en.dart
pkgs/intl_translation/example/lib/generated/messages_iw.dart
pkgs/intl_translation/example/lib/generated/messages_es.dart
pkgs/intl_translation/example/lib/generated/messages_de.dart
pkgs/intl_translation/example/lib/generated/messages_all.dart
pkgs/messages_shrinker/bin/messages_shrinker.dart

This check can be disabled by tagging the PR with skip-license-check

Package publish validation ✔️

Details
Package Version Status
package:intl4x 0.7.1 ready to publish
package:messages 0.2.0 ready to publish
package:messages_builder 0.2.0 ready to publish
package:messages_serializer 0.2.0 ready to publish
package:messages_shrinker 0.2.0 ready to publish
package:intl 0.19.0 already published at pub.dev
package:intl_translation 0.19.0-wip WIP (no publish necessary)

Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

Copy link

github-actions bot commented Jan 2, 2024

Package publishing

Package Version Status Publish tag (post-merge)
package:intl4x 0.7.1 ready to publish intl4x-v0.7.1
package:messages 0.2.0 ready to publish messages-v0.2.0
package:messages_builder 0.2.0 ready to publish messages_builder-v0.2.0
package:messages_serializer 0.2.0 ready to publish messages_serializer-v0.2.0
package:messages_shrinker 0.2.0 ready to publish messages_shrinker-v0.2.0
package:intl 0.19.0 already published at pub.dev
package:intl_translation 0.19.0-wip WIP (no publish necessary)

Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

@mosuem mosuem requested a review from devoncarew January 3, 2024 15:27
Copy link
Member

@devoncarew devoncarew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Getting my head around this PR, it looks like the generated message code delegates to one of a few intl libraries to perform pluralization.

Using a typedef here makes sense. I'm curious if we'll we need any other abstractions over the underlying intl library?

pkgs/messages_builder/lib/generation_options.dart Outdated Show resolved Hide resolved
pkgs/messages/lib/src/deserializer/deserializer_json.dart Outdated Show resolved Hide resolved
pkgs/messages/lib/src/message_list_json.dart Outdated Show resolved Hide resolved
Copy link
Member

@parlough parlough left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like great cleanup and I understand much more now. Thanks for pinging me on this!

A few minor suggestions to consider:

pkgs/messages_shrinker/lib/messages_shrinker.dart Outdated Show resolved Hide resolved
pkgs/messages_serializer/lib/src/serializer_json.dart Outdated Show resolved Hide resolved
pkgs/messages_builder/lib/generation_options.dart Outdated Show resolved Hide resolved
pkgs/messages/lib/src/message_format.dart Outdated Show resolved Hide resolved
pkgs/messages/lib/src/deserializer/deserializer_json.dart Outdated Show resolved Hide resolved
@mosuem mosuem merged commit 8cde33a into main Jan 8, 2024
22 checks passed
@mosuem mosuem deleted the updatesToMessages branch January 8, 2024 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants