Copilot commented on code in PR #59136: URL: https://github.com/apache/airflow/pull/59136#discussion_r2595075103
########## airflow-core/src/airflow/ui/public/i18n/README.md: ########## @@ -366,11 +366,11 @@ breeze ui check-translation-completeness --verbose --all-files ## 11. Freeze time -Few weeks before a minor or major release, a freeze time for accepting new translations -MUST be announced in the dev list, to allow time for testing and verification of translations. +Few weeks before a minor or major release, a freeze time for accepting new translations, might be announced in the dev list by the Release Manager. Review Comment: Grammar improvements needed: Add "A" at the beginning and remove the unnecessary comma after "translations". The sentence should read: "A few weeks before a minor or major release, a freeze time for accepting new translations might be announced..." ```suggestion A few weeks before a minor or major release, a freeze time for accepting new translations might be announced in the dev list by the Release Manager. ``` ########## dev/README_RELEASE_AIRFLOW.md: ########## @@ -86,20 +86,74 @@ The first step of a release is to work out what is being included. This differs - For a *patch* release, you will be selecting specific commits to cherry-pick and backport into the existing release branch. -## Validating completeness of i18n locale files and announcing i18n freeze time +## i18n workflow > [!NOTE] -> It is recommended to delegate all operations in this task to another committer. +> +> 1. The instructions in this section should be applied only for major/minor releases. +> 2. It is recommended to delegate all operations in this task to another committer. +> 3. Except for the dev list announcements, it is recommended to communicate them via the #i18n Slack channel as well. -Before cutting the release candidate (RC), you should announce a freeze time for i18n changes to allow translators to complete translations for the upcoming release without being overloaded by new terms, or other significant changes. -The freeze should last at least one week, and until the RC is cut. -It is recommended to announce the freeze at least two weeks before it starts. -To prepare for the announcement, generate an output of completeness for all locale files - follow the instructions in section 8.1 of the [internationalization (i18n) policy](../airflow-core/src/airflow/ui/public/i18n/README.md#81-checking-completeness-of-i18n-files) for doing so. -The reminder should be sent via [email protected] mailing list - you may accompany it with a GitHub issue for tracking purposes. +### Validating completeness of locale files -> [!NOTE] -> When applicable - you should mention, within the output, translations that have been incomplete in the past release, -> and warn that they might be removed if they are not completed by the release date. +Before cutting the release candidate (RC), you should verify the completeness of all merged locale files. +Generate a completeness output for all locale files – follow the instructions in section 8.1 of the [internationalization (i18n) policy](../airflow-core/src/airflow/ui/public/i18n/README.md#81-checking-completeness-of-i18n-files) to do so. +If the median completeness across all supported languages is below 90%, or upon other justifying circumstances (e.g., release of a critical UI feature), you should consider skipping the following instructions and applying an i18n translation freeze instead (see subsection below). +Otherwise, you should announce the completeness status to the [email protected] mailing list. + +Subject: + +```shell script +[ANNOUNCEMENT] i18n completeness check for Airflow ${VERSION} RC +``` + +Body (assuming delegation to another committer): + + +```shell script +cat <<EOF +Hey fellow Airflowers, + +I'm sending this message on behalf of the release managers. +The release managers are planning to cut the Airflow ${VERSION} RC soon/by <RELEASE_DATE>. + +After running the i18n completeness script, this is the coverage state of all merged locales as of <CURRENT_DATE>: + +<OUTPUT_OF_I18N_COMPLETENESS_SCRIPT> + +Code owners, translation owners, and engaged translators whose locales are currently below 90% coverage are kindly asked to complete their translations prior to the RC being cut. +This will help ensure that all languages included in the upcoming release remain complete and consistent. + +Contributors are also encouraged to plan their PRs accordingly and avoid introducing large sets of new English terms close to the release date, to prevent unexpected translation work for code owners. + +Important notes: +1. Locales that remain incomplete for two consecutive major or minor releases may be removed from the project, according to the i18n policy. +2. Any changes merged after the final release won't be included, and missing terms will fall back to English. +3. Code owners are responsible for ensuring that their assigned locales reach at least 90% coverage before the RC is cut. +4. Requests for assistance, coordination, or early heads-up on expected terminology changes may be shared in the #i18n Slack channel. +5. PRs introducing new translations may continue to be merged as usual, provided that coverage remains complete by the RC date. + +Thanks for your cooperation! +<your name> +EOF +``` + +When it is time to cut the RC, you should: + +1. Generate an additional completeness output: + a. If there are incomplete locales that were also incomplete in the previous RC major/minor release, please contact the code owner and ask them to act according to section "Relinquishing translation/code ownership" in the i18n policy (section 6.4). Review Comment: The phrase "previous RC major/minor release" is unclear. It should be "previous major/minor release" since RC (release candidate) is not part of the release type classification. The sentence should read: "...in the previous major/minor release..." ```suggestion a. If there are incomplete locales that were also incomplete in the previous major/minor release, please contact the code owner and ask them to act according to section "Relinquishing translation/code ownership" in the i18n policy (section 6.4). ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
