はじめに
HaskellのコンパイラであるGHCの開発では、Gitの上流リポジトリ等を、GitLabに移行しました。
以下では、簡単に関連情報を記載します。
GitLabへの移行について
2018年末から2019年3月にかけて、GHC開発では、Gitの上流リポジトリやIssue(Ticket)管理等を、TracおよびPhabricatorから、GitLabに移行しました。
新しい、GHC用のGitLabサイトは以下になります。
移行時のアナウンス情報等は、こちらになります。
GitLabへ移行した内容
GHC開発では従来、Gitの上流リポジトリはTracに配置し、Issue(バグなどのTicket)管理はTracで行い、コードレビューはPhabricatorで行っていました。
今回を機に、それらが、以下のようにGitLabに移行されました。
- Gitリポジトリ(2018年末に移行済み)
- パッチ送付およびコードレビュー(2018年末に移行済み)
- Issue(Ticket)管理(2019年3月に移行済み)
- GHC Wiki(2019年3月に移行済み)
なお今後も引き続き、"GitHub"は、Gitの"mirror"用のリポジトリとして使用されます。
パッチの送付(Merge Request)およびコードレビュー
従来、正式なパッチの送付およびコードレビューは、Phabricatorを用いて行われていました。
2018年末からは、正式なパッチの送付およびコードレビューは、GitLabのMerge Requestsの機能を用いて行われるように変更されました。(Merge Request機能は、GitHubのPull Request機能相当のものです。)
以下は、GHC開発における、GitLab用のMerge Requestsのページです。
Merge Reuestの詳細手順などについては以下に説明があります。
Issue(Ticket)管理
Issue(バグなどのTicket)管理についても2019年3月に、TracからGitLabへの移行作業が完了しました。
以下は、GHC開発用のIssue管理のページです。
Issueに関する詳細手順などについては以下に説明があります。
GHC Wiki
GHC Wikiについても2019年3月に、TracからGitLabへの移行作業が完了しました。
(なお、Wikiシステムのフォーマット差にともなう記述更新などは、現在も続けられています。)
以下は、GHC開発用のWikiのページです。
CI(継続的インテグレーション)
GitLabへの移行によって、GHC開発におけるCIが強化されています。
GitLabへのMerge Requestを行うことにより、自動的にValidationのジョブが起動されます。Validationは、複数のプラットフォーム条件(OS, CPU, ビルド条件)に対して行われまます。
以下は、GHCのGitLabにおける、CI関連のページです。
GitLabへの移行の背景について、少し補足
GitLabへの移行の背景は多岐に渡ります。以下のメーリングリストに、主なやりとりのスレッドがあります。
例えば、主な動機は以下のようなものです。
- GHCへのContributionを容易にすること(Phabricator使用よりも参入障壁を下げること)
- Phabricatorの無償サポートの終了へ対応すること
- CIを強化すること
GitLabでの各種アクティビティの表示についての補足
Issue管理やコードレビューが1つのシステム上に統合されたため、開発の状況を従来よりも追いやすくなっています。
例えば、以下のページでは、Issueやコードレビューについての開発者のやりとりを、まとめてリアルタイムに表示できます。
(なお、#nnnnnはIssue番号、!nnnはMerge Request番号を示しています。)
では、Happy GHC contributing!
以上です。