現状
tests/ref/ には、Typst のテストで「正しい組版結果」として比較に使う画像が入っています。翻訳では触らないファイルなので、本来は取り込んだ上流のバージョンと完全に一致しているはずのものです。
ところが上流 v0.14.2 と比べると、約1,900枚のうち900枚が一致していません。
- 上流で更新されたのに古いまま残っている画像: 860枚
- 上流では削除・移動済みなのに残っている画像: 40枚
同じ理由で、Cargo.lock と tests/suite/ の3ファイル(layout/place.typ、model/footnote.typ、pdf/embed.typ)も上流とずれています。
原因
以前のマージワークフローは履歴を最新の1コミット分しか取得していなかったため、git が main と上流の「共通の出発点」を見つけられず、内容の違うファイルを軒並みコンフリクト扱いにしていました。画像はテキストと違ってコンフリクトの印を書き込めないので、fork 側の古い版が何の痕跡も残さずに確定し、それがリリースのたびに積み重なっていました。
この仕組みは #426 で直っているので、今後新たにずれることはありません。
放っておいても直らない理由
直ったワークフローは、共通の出発点(前回取り込んだ上流のバージョン)から「どちらの側が変えたか」を見て、採る内容を決めます。この見方では、古いまま残った画像は fork 側が意図して書き換えたファイル に見えてしまいます。
- 次のリリースで上流がその画像を更新した場合: 両側が変えたことになるのでコンフリクトになり、ワークフローが上流の版を採るので直ります
- 上流が触らなかった場合: fork 側の変更として扱われ、古い版が黙って残ります
そのため、バージョンを上げるたびに一部は直りますが、いつまで待ってもゼロにはなりません。
提案
tests/ref/、tests/suite/ の上記3ファイル、Cargo.lock を、上流 v0.14.2 の内容でまるごと置き換える PR を1本出します。上流に存在しないファイルは削除します。
一度揃えてしまえば、以降の取り込みでは「fork 側は何も変えていない」状態になるので、上流の更新・追加・削除がコンフリクトなしでそのまま入るようになります。
実施のタイミング
#435(v0.14.2 の取り込み)のマージ後、v0.15.0 の取り込みより前に行う必要があります。次回の取り込みは v0.14.2 を出発点にして差分を見るので、v0.14.2 に揃えておくことで効果が出ます。
受入条件
tests/ref/、tests/suite/、Cargo.lock が、上流 v0.14.2(b33de9de1)と完全に一致する
方針に問題がなければ、私から PR を出すこともできます。
現状
tests/ref/には、Typst のテストで「正しい組版結果」として比較に使う画像が入っています。翻訳では触らないファイルなので、本来は取り込んだ上流のバージョンと完全に一致しているはずのものです。ところが上流 v0.14.2 と比べると、約1,900枚のうち900枚が一致していません。
同じ理由で、
Cargo.lockとtests/suite/の3ファイル(layout/place.typ、model/footnote.typ、pdf/embed.typ)も上流とずれています。原因
以前のマージワークフローは履歴を最新の1コミット分しか取得していなかったため、git が main と上流の「共通の出発点」を見つけられず、内容の違うファイルを軒並みコンフリクト扱いにしていました。画像はテキストと違ってコンフリクトの印を書き込めないので、fork 側の古い版が何の痕跡も残さずに確定し、それがリリースのたびに積み重なっていました。
この仕組みは #426 で直っているので、今後新たにずれることはありません。
放っておいても直らない理由
直ったワークフローは、共通の出発点(前回取り込んだ上流のバージョン)から「どちらの側が変えたか」を見て、採る内容を決めます。この見方では、古いまま残った画像は fork 側が意図して書き換えたファイル に見えてしまいます。
そのため、バージョンを上げるたびに一部は直りますが、いつまで待ってもゼロにはなりません。
提案
tests/ref/、tests/suite/の上記3ファイル、Cargo.lockを、上流 v0.14.2 の内容でまるごと置き換える PR を1本出します。上流に存在しないファイルは削除します。一度揃えてしまえば、以降の取り込みでは「fork 側は何も変えていない」状態になるので、上流の更新・追加・削除がコンフリクトなしでそのまま入るようになります。
実施のタイミング
#435(v0.14.2 の取り込み)のマージ後、v0.15.0 の取り込みより前に行う必要があります。次回の取り込みは v0.14.2 を出発点にして差分を見るので、v0.14.2 に揃えておくことで効果が出ます。
受入条件
tests/ref/、tests/suite/、Cargo.lockが、上流 v0.14.2(b33de9de1)と完全に一致する方針に問題がなければ、私から PR を出すこともできます。