GHC(Haskell)の上流リポジトリ等がGitLabに移行しました

はじめに
=======

HaskellのコンパイラであるGHCの開発では、Gitの上流リポジトリ等を、GitLabに移行しました。
以下では、簡単に関連情報を記載します。


GitLabへの移行について
======================

2018年末から2019年3月にかけて、GHC開発では、Gitの上流リポジトリやIssue(Ticket)管理等を、[Trac](https://ghc.haskell.org/trac/ghc/browser/ghc)および[Phabricator](https://phabricator.haskell.org/)から、GitLabに移行しました。

新しい、GHC用のGitLabサイトは以下になります。

* https://gitlab.haskell.org/ghc/ghc


移行時のアナウンス情報等は、こちらになります。

* [Welcome to GitLab!](https://mail.haskell.org/pipermail/ghc-devs/2018-December/016716.html)
* [[GHC Contributing] Welcome to GitLab!](https://www.reddit.com/r/haskell/comments/a9wqk7/)


GitLabへ移行した内容
======================

GHC開発では従来、Gitの上流リポジトリはTracに配置し、Issue(バグなどのTicket）管理はTracで行い、コードレビューはPhabricatorで行っていました。
今回を機に、それらが、以下のようにGitLabに移行されました。

* Gitリポジトリ（2018年末に移行済み）
  * [Trac](https://ghc.haskell.org/trac/ghc/browser/ghc) → [GitLab](https://gitlab.haskell.org/ghc/ghc)
* パッチ送付およびコードレビュー（2018年末に移行済み）
  * [Phabricator](https://phabricator.haskell.org/) → [GitLab](https://gitlab.haskell.org/ghc/ghc/merge_requests)
* Issue(Ticket)管理（2019年3月に移行済み）
  * [Trac](https://ghc.haskell.org/trac/ghc/query?status=new&status=assigned&status=reopened&group=milestone&order=priority) → [GitLab](https://gitlab.haskell.org/ghc/ghc/issues)
* GHC Wiki（2019年3月に移行済み）
  * [Trac](https://ghc.haskell.org/trac/ghc/wiki) → [GitLab](https://gitlab.haskell.org/ghc/ghc/wikis/home)

なお今後も引き続き、"[GitHub](https://github.com/ghc/ghc)"は、Gitの"mirror"用のリポジトリとして使用されます。



パッチの送付（Merge Request）およびコードレビュー
===================================================

従来、正式なパッチの送付およびコードレビューは、Phabricatorを用いて行われていました。

2018年末からは、正式なパッチの送付およびコードレビューは、GitLabのMerge Requestsの機能を用いて行われるように変更されました。（Merge Request機能は、GitHubのPull Request機能相当のものです。）

以下は、GHC開発における、GitLab用のMerge Requestsのページです。

* https://gitlab.haskell.org/ghc/ghc/merge_requests

Merge Reuestの詳細手順などについては以下に説明があります。

* https://gitlab.haskell.org/ghc/ghc/wikis/contributing

Issue(Ticket)管理
=================

Issue(バグなどのTicket）管理についても2019年3月に、TracからGitLabへの移行作業が完了しました。

以下は、GHC開発用のIssue管理のページです。

* https://gitlab.haskell.org/ghc/ghc/issues

Issueに関する詳細手順などについては以下に説明があります。

* https://gitlab.haskell.org/ghc/ghc/wikis/gitlab/issues

GHC Wiki
========

GHC Wikiについても2019年3月に、TracからGitLabへの移行作業が完了しました。
（なお、Wikiシステムのフォーマット差にともなう記述更新などは、現在も続けられています。）

以下は、GHC開発用のWikiのページです。

* https://gitlab.haskell.org/ghc/ghc/wikis


CI（継続的インテグレーション）
========================

GitLabへの移行によって、GHC開発におけるCIが強化されています。

GitLabへのMerge Requestを行うことにより、自動的にValidationのジョブが起動されます。Validationは、複数のプラットフォーム条件（OS, CPU, ビルド条件）に対して行われまます。

以下は、GHCのGitLabにおける、CI関連のページです。

* https://gitlab.haskell.org/ghc/ghc/pipelines


GitLabへの移行の背景について、少し補足
================================

GitLabへの移行の背景は多岐に渡ります。以下のメーリングリストに、主なやりとりのスレッドがあります。

* [Phabricator workflow vs. GitHub](https://mail.haskell.org/pipermail/ghc-devs/2018-October/016269.html)
* [The future of Phabricator](https://mail.haskell.org/pipermail/ghc-devs/2018-October/016425.html)
* [Moving to GitLab...](https://mail.haskell.org/pipermail/ghc-devs/2018-December/016613.html)

例えば、主な動機は以下のようなものです。

* GHCへのContributionを容易にすること（Phabricator使用よりも参入障壁を下げること）
* Phabricatorの無償サポートの終了へ対応すること
* CIを強化すること

GitLabでの各種アクティビティの表示についての補足
==============================================

Issue管理やコードレビューが１つのシステム上に統合されたため、開発の状況を従来よりも追いやすくなっています。

例えば、以下のページでは、Issueやコードレビューについての開発者のやりとりを、まとめてリアルタイムに表示できます。
（なお、#nnnnnはIssue番号、!nnnはMerge Request番号を示しています。）

* https://gitlab.haskell.org/ghc/ghc/activity



　
では、Happy GHC contributing!　

以上です。