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

クロスチャンネル対応のワークフロー構築 #84

Open
marsf opened this Issue Dec 31, 2017 · 11 comments

Comments

Projects
None yet
2 participants
@marsf
Copy link
Contributor

marsf commented Dec 31, 2017

57.0 以降の l10n リポジトリーはクロスチャンネルに移行しています。
つまり、一つのリポジトリーで、ブランチすることなく、すべてのバージョンに対応するリソースとして扱われます。
57.0 リリース前に検討し始めなければならなかったのですが、時間が取れず申し訳ありません。

現在のこの gecko-l10n リポジトリーでは、バージョンごとにブランチを切り、対応するリポジトリー (l10n-central/ja or /l10n/mozilla-beta/ja) にコミットすることを前提としています。
mozilla-aurora は 54.0 で、mozilla-beta は 56.0 でそれぞれ役目を終えたため、コミット先のリポジトリーは l10n-central だけになりました。

コミットしたリソースは、57.0 以降のすべてのバージョンで使用されるため、追加・変更はあっても削除することはできません。今後、どこかのタイミングで削除されることがあるかどうかは不明です。

また、同期対象の en-US リソースも、mozilla-central ではなく、クロスチャンネル対応のリポジトリーである gecko-strings になりました。こちらは、central にコミットされたリソースがレビューされた後に反映されます。
(central のリソースが直接反映される gecko-strings-quarantine もあります。)

@marsf

This comment has been minimized.

Copy link
Contributor

marsf commented Dec 31, 2017

で、現在の問題点としては、

  • クロスチャンネルリポジトリーで string freeze 自体が必要なくなったため、現在の作業対象バージョンのリビジョンが分かりづらい。従来のバージョン単位の作業が合わなくなってきている。
  • もうすぐ移行される Fluent (=L20n) に lot が対応していない。(※クロスチャンネルは、L20n 導入を前提としたものです。)
  • 本家で ja/ja-JP-mac を統合する動きがある。 (Bug 1424953)
  • コミットのレビュー体制があいまい。→ pull req 制にして必ずレビューするようにしてはどうか、との意見あり。

というわけで、現在のワークフローは近々破綻します。
ご意見、ご提案、その他なんでも結構ですのでコメントください。
よろしくお願いします。

@hATrayflood

This comment has been minimized.

Copy link
Contributor

hATrayflood commented Dec 31, 2017

今回の作業では、https://hg.mozilla.org/l10n/gecko-strings/shortlog をある程度さかのぼって、"Merge mozilla-central to beta. a=merge, l10n=me" に一致したものを引っ張り出して差分だした結果を https://l10n.mozilla.org/dashboard/compare?run=878635 と比較してバージョンを特定しました。
gecko-stringsのコミットログにはバージョンが明記されておらず、またタグやブランチも一切ないので、確かにこれは特定がほぼ作業者の勘だよりなところがあります。

fluentについても悩みどころですが、githubリポジトリ見てみるとpython、js、rustのライブラリがあって、それらを使えばパースが可能なようですね。
しかし今のlotはant/groovyなので対応が難しく、またlot自体を新規に作り直すのはなかなか大変そうですが、いずれはそうせざるをえない気がしています。
無理に現行のlotをなんとかしようとせず、今のlotとは別にfluentのみを処理するプログラムを考えるのが確実かもしれません。

@marsf

This comment has been minimized.

Copy link
Contributor

marsf commented Jan 2, 2018

ここでは、作業範囲と手順をどうするかについて決めたいと思います。

Fluent 対応に関しては、ツール周りということで別途 lot の issue で扱いませんか。

@marsf

This comment has been minimized.

Copy link
Contributor

marsf commented Jan 2, 2018

lot リポジトリーのほうに issue を登録しました。
クロスチャンネルおよび L20n 対応 · Issue #4 · mozilla-japan/lot

@marsf

This comment has been minimized.

Copy link
Contributor

marsf commented Jan 2, 2018

FYI:
Cross-channel is ready, here's what you need to know - mozilla.dev.l10n

Francesco Lodolo [:flod] | 2017/10/06

On the other hand, *if you work directly on Mercurial*, you need to keep
in mind a few changes.

*1) Stop using mozilla-central and comm-central as references for your
localization.*

If a changeset removes a string in mozilla-central, it will still be
needed in mozilla-beta and mozilla-release, and it should not be
removed. You should base your work on the cross-channel repository instead.

For now, repositories are in a temporary localization, while we make
sure that everything works as expected during updates.

This repository is updated every 2-3 days, and contains only strings
that have been reviewed and vetted (for Firefox and Firefox for Android,
there's currently no review for Thunderbird or SeaMonkey). It's also the
repository that Pontoon uses to expose strings.
https://hg.mozilla.org/users/axel_mozilla.com/gecko-strings

This repository is updated at least daily, and contains unfiltered
strings from mozilla-central, comm-central, etc.
https://hg.mozilla.org/users/axel_mozilla.com/gecko-strings-quarantine

If you're interested in contributing to review and report bugs (bad
strings, changes without new IDs, etc.) you should use the latter.

The next steps are to automate updates to gecko-strings-quarantine, and
move repositories to a more official location.

*2) Install and use compare-locales on your machine.*

Very few localizers use compare-locales locally. But, if you work on
Mercurial directly, you really should start using it: it lets you see if
there are more missing strings, or errors in your localization before
committing them to the repository. 
@marsf

This comment has been minimized.

Copy link
Contributor

marsf commented Jan 13, 2018

コミットしたリソースは、57.0 以降のすべてのバージョンで使用されるため、追加・変更はあっても削除することはできません。今後、どこかのタイミングで削除されることがあるかどうかは不明です。

l10n-central の作業対象から外れたので 57.0 向けの 58.0 で不要になったリソースが削除されました。
Remove obsolete files after 2018-01-11 merge (57 becomes unsupported by cross-channel)

現在、58.0 for release, 59.0 beta, 60.0 nightly

@marsf

This comment has been minimized.

Copy link
Contributor

marsf commented Feb 26, 2018

クロスチャンネルのリポジトリーは、現行 Release, Beta, Nightly の 3 バージョンを対象にしているようで、過去のリリースは対象にしていません。

この gecko-l10n リポジトリーでの作業対象は、

  • できるだけ、gecko-strings の最新リビジョン (Nightly) に同期する
  • 最新ではない場合、必ず Beta 以降のリビジョン (merge mozilla-central to beta 以降) を対象にする
  • 少なくとも月に 1 回以上更新する

ということでいかがでしょうか。
現在の状況は、Release 58.0, Beta 59.0, Nightly 60.0 (ESR) です。

@marsf

This comment has been minimized.

Copy link
Contributor

marsf commented Mar 5, 2018

特にコメントが無いようなので、作業対象については上のコメントの通りとします。

これまで gecko-l10n ではバージョンごとにブランチを切っていましたが、もはや意味がなくなりました。というか作業の妨げになっているので、以下のルールも追加したいと思います。
(現状は、Release 59.0, Beta 60.0 (ESR), Nightly 61.0 です。)

  • コミットログでは、Beta のバージョン番号以降を対象にする

例: 60.0+: sync browser with en-US rev:9999:12345678abcd (2018-02-30)

60.0 以降ということで、「+」を付ける。
日付部分は gecko-strings の pushlog date
Release にも影響してるはずですが、マイナーバージョンで変更が適用されているのか?とか、いつ適用されるかはリリース状況に依るので、対象外にしておきます。

@marsf

This comment has been minimized.

@marsf

This comment has been minimized.

Copy link
Contributor

marsf commented May 20, 2018

ここまでのまとめ:

  1. 従来のバージョン単位の作業が合わなくなってきている
  • できるだけ、gecko-strings の最新リビジョン (Nightly) に同期する
  • 最新ではない場合、必ず Beta 以降のリビジョン (merge mozilla-central to beta 以降) を対象にする
  • 少なくとも月に 1 回以上更新する
  • コミットログでは、Beta のバージョン番号以降を対象にする
  1. Fluent (=L20n) に lot が対応していない
  1. 本家で ja/ja-JP-mac を統合する動きがある
  • ja-JP-mac は Fluent 内部で ja-JP-macos として特例扱いになった。 (Bug 1450656 参照)。
  1. コミットのレビュー体制があいまい
  • Pull request 制にした。
  • hg.m.o からのフォールバックについては直接コミットして同期。
@marsf

This comment has been minimized.

Copy link
Contributor

marsf commented May 20, 2018

Wiki ページにドキュメント化しておきたい。
もちろんコメントも歓迎。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment