20 Phabricator
Itms edited this page 2024-03-28 20:41:11 +01:00

We used Phabricator (https://www.phacility.com/phabricator/) as our development platform from 2017 to 2023.

Phabricator allowed us to follow a generally recognized review process (submit a patch, improve it iteratively, get it committed) while keeping SVN as our only version control system.

However, Phabricator is no longer maintained, and the cost of entry for new contributors when using SVN+Phabricator was generally considered too high.

We have now migrated to git and we use Gitea to host our code and handle pull requests (that we usually keep calling patches).

Our Phabricator instance is still up because migrating submitted Phabricator revisions to Gitea pull requests cannot be automated. This document serves as a guide to perform that migration over time.

Additionally, we need to keep our Phabricator instance online (read-only) for documentation purposes (discussions on patches and commits) and for a couple useful Pastes.

Warning You can assume that Phabricator will stay online, but at some point, when we consider all relevant diffs to have been migrated and all important discussions concluded, we will disable logging in to Phabricator.

Warning If, in the future, Phabricator becomes a security liability because of its unmaintained status, we will shut it down. Migration to maintained forks such as Phorge will only be considered if the migration process is easy enough and does not divert too many resources.

Uninstalling arcanist

0 A.D. developers probably have spent a lot of time setting up arcanist to upload SVN patches as diffs. Now that Phabricator is unmaintained, it is probably safer to uninstall that tool and clean up the customizations related to it.

On Windows

Windows users should probably:

  1. Delete their clone of the arcanist repository
  2. Delete their copy of the PHP5 or PHP7 binary release
  3. Delete arcanist\bin and php from their PATH
  4. Remove customization of their svn diff command. In %appdata%\Subversion\config, if the # diff-cmd = was modified, comment it out and delete the file it points to.

On Unix-like

Other OS users should probably:

  1. Delete their clone of the arcanist repository
  2. Remove aliases to arc in their shell rc files

Salvaging an open Differential

You are encouraged to port opened Differentials to git and open a pull request on Gitea.

  • Please prioritize your own diffs.
  • If you are reviewing a (new) contributor's patch, ask them to port the patch over to Gitea and help them perform that migration as part of the review process.
  • We should go through abandoned diffs and decide whether they should be officially Abandoned; or rebased and ported. If the latter is decided but the amount of needed work is high, an issue should be opened.
  • Always post an update wherever relevant. A quick comment "I opened PR #xxxx to cover this diff" is enough, and signals to other contributors that they do not have to perform duplicate work.