With Phacility winding down operations, maintenance of Phabricator no longer receiving regular updates, and Phabricator being an open source project, there are a number of discussions around creating forks.
The Phabricator application contains a large number of references to the product and organization names which are both trademarked. To make rebranding easier I've been investigating what these changes might look like and would like to discuss the approach with Phacility, and if agreeable submit these changes for upstream. These findings are based only on where "Phabricator" or "Phacility" appears in the user interface, and not changing the 20,000 files/classes/variables under the sea.
In reviewing where "Phabricator" appears in code the set of changes I believe would need to be made are
- Create something like src/infrastructure/Platform.php with getProjectName() to return "Phabricator" and getOrgName() to return "Phacility".
- Update the the ~500 "Phabricator" and "Phacility" references used in translated text (appearing in pht()) to swap out for %s and the appropriate new function to be called
- Invalidates ~500 * 6 translations, update these
- Create Platform::getProjectRepo() to return "phabricator", or instead detect the repository name. There are a number of places which assume the project is checked out under phabricator, both functionally as well as when displayed to the user, e.g. "Run this command to change configuration, phabricator/ $ ./bin/config ....
- There are a number of places which invoke phutil_get_library_root('phabricator') which would be updated to use this new function.
- There are an assortment of examples displayed to the user in the style of http://phabricator.company.com which could be updated to use this instead.
- Update Diviner document sources to remove "Phabricator" and "Phacility" naming. I'm not yet clear with Diviner on whether these would be able to make use of dynamic naming based on getProjectName().
- In the application code there are a number of places which retrieve the location of diviner docs to link to using PhabricatorEnv::getDoclink() which reference documents that currently use "Phabricator" in the document name.
- There are an assortment of references or links to phurl.io and Tnnnn for further information on things. My best guess for this is producing new Diviner documents on these topics and linking to them via getDocLink().
- PHUIBadgeExample.php indicates Lead Developer badge was awarded by epriestley - this could be updated to George Washington or similar if it's preferred to not have this. Although in the UI this text does not appear to show (possible bug?).
There are a number of preferences with phabricator in the name. This current approach would leave these alone for now.