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

LanguageNormalizer.ts を 2023年8月の言語アップデートで増えた新形式の言語選択肢に対応しました。 #1431

Closed
wants to merge 2 commits into from
Closed

LanguageNormalizer.ts を 2023年8月の言語アップデートで増えた新形式の言語選択肢に対応しました。 #1431

wants to merge 2 commits into from

Conversation

defplus
Copy link

@defplus defplus commented Sep 16, 2023

2023年8月の言語アップデートによって、言語選択肢の括弧書きの外側にバージョン番号が入るケースがみられるようになりました。(例:"C++ 20 (gcc 12.2)", "C# 11.9 (.NET 7.0.7)" など)

これらの言語選択肢は、RankingのLanguage Ownersなどで利用されている 既存の LanguageNormalizer によって、
"C++ 20 (gcc 12.2)" -> "C++ " // 末尾に半角スペースが残っている
"C# 11.9 (.NET 7.0.7)" -> "C# 11."
と正規化され、ランキングもその形式で集計・表示が行われています。
https://kenkoooo.com/atcoder/#/lang

LanguageNormalizer で用いられている正規表現に変更を加えることで、これらの形式の言語選択肢を
"C++ 20 (gcc 12.2)" -> "C++"
"C# 11.9 (.NET 7.0.7)" -> "C#"
と、(おそらく)望ましく正規化するようにしました。

合わせて、LanguageNormalizer.testに、この修正によって正規化が変更される言語選択肢のテストを追加しました。
旧言語のテストもそのままにしてあるので後方互換性の検証も同様に行われます。

この変更は、 Issue #1424 の解決を含みます。

2023年のAtCoder言語アップデートで 言語選択肢に "C++ 20 (gcc 12.2)" や "C# 11.9 (.NET 7.0.7)" など、言語名とカッコ書きの間にバージョン番号が入るケースがあり、既存のコードでは、これらが"C++ ", "C# 11." などに正規化されていました。これらを"C++", "C#" などに正規化するよう、replaceで用いている正規表現に修正を加えました。
LanguageNormalizer の変更によって、正規化の結果が修正される言語選択肢についての、テストを作成しました。
@kenkoooo
Copy link
Owner

ランキングの集計はバックエンドで行われているので、フロントエンドのロジックを修正しても完全には解決しなさそうですね

@defplus
Copy link
Author

defplus commented Oct 15, 2023

@kenkoooo さん
まず、手元でCIを走らせることなしにlint(おそらく一行あたりの文字数制限)に引っかかるものをお送りして申し訳ないです。

@roumcha さんが、このプルリクエストの上位互換となるものを作成中だそうで、そちらにはバックエンドの処理も含まれているようですので、このプルリクエストはCloseして、そちらに対応をお任せしようと思います。

@defplus defplus closed this Oct 15, 2023
@defplus defplus deleted the language-normalizer-for-atcoder-lang-update-202308 branch October 15, 2023 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants