We want to create an instance of Phorge, the Phabricator community fork, in the devtools project in wmcs.
This will be as a proof of concept, to test it and see if we can import tickets from Phabricator.
We want to create an instance of Phorge, the Phabricator community fork, in the devtools project in wmcs.
This will be as a proof of concept, to test it and see if we can import tickets from Phabricator.
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Resolved | Aklapper | T340223 New post for "Phabricating Phabricator" blog to celebrate migration to Phorge | |||
Resolved | Aklapper | T341799 Remove custom WMF Phab downstream hacks superseded by upstream Phorge changes | |||
Resolved | Aklapper | T341808 Update [[mw:Phabricator/Code]] after migrating our upstream to Phorge | |||
Resolved | brennen | T333885 Migrate phabricator.wikimedia.org to Phorge as upstream | |||
Resolved | rook | T328815 devtools: quota increase request | |||
Restricted Task | |||||
Resolved | Dzahn | T328595 Create proof of concept Phorge instance in devtools project in wmcs (phorge.wmcloud.org) | |||
Resolved | Dzahn | T302528 Consider migrating from Phabricator to Phorge once that new upstream is ready for such a migration |
also see https://we.phorge.it/w/installation_and_setup/update_from_phabricator/ from T302528#8244434 . thanks to @MacFan4000
Should there be a new project for Phab->Phorge, or are single tasks/trees sufficient?
Project in Phabricator? I don't think that's needed. It should be sufficient to have tasks/trees.
Our quota increase request was granted. :)
I could then create a new instance "phorge-1001" in the devtools project.
I am now applying the "role::simplelamp2" to let puppet install a basic LAMP.. before getting to the Phorge part itself.
The installation guide is https://we.phorge.it/book/phorge/article/installation_guide/ and says you need a LAMP, unsurprisingly.
Change 887379 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: create role/profile to install LAMP and git clone phorge
Change 887379 merged by Dzahn:
[operations/puppet@production] phorge: create role/profile to install LAMP and git clone phorge
Change 887392 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: list of apache modules needs to be an array
Change 887392 merged by Dzahn:
[operations/puppet@production] phorge: list of apache modules needs to be an array
Change 887397 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: add minimal apache site, add class parameters for docroot et al
Change 887397 merged by Dzahn:
[operations/puppet@production] phorge: add minimal apache site, add class parameters for docroot et al
Change 887410 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: add httpd Directory snippet, git clone arcanist
Change 887410 merged by Dzahn:
[operations/puppet@production] phorge: add httpd Directory snippet, git clone arcanist
Change 887429 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: separate install pathes for phorge and arcanist
Change 887429 merged by Dzahn:
[operations/puppet@production] phorge: separate install pathes for phorge and arcanist
Change 887431 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: git clone arcanist also from we.phorge.it, not Phacility
Change 887431 merged by Dzahn:
[operations/puppet@production] phorge: git clone arcanist also from we.phorge.it, not Phacility
Change 887432 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: mvove httpd setup to profile and don't call it apache
Change 887433 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: install php-mbstring, php-curl and php-mysql modules
Change 887432 merged by Dzahn:
[operations/puppet@production] phorge: move httpd setup to profile and don't call it apache
Change 887820 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: renamed apache.conf.erb to httpd.conf.erb
Change 887433 merged by Dzahn:
[operations/puppet@production] phorge: install php-mbstring, php-curl and php-mysql modules
Change 887820 merged by Dzahn:
[operations/puppet@production] phorge: rename apache.conf.erb to httpd.conf.erb
Change 890131 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] devtools: set mariadb datadir path for phorge-1001 instance
Change 890131 merged by Dzahn:
[operations/puppet@production] devtools: set mariadb datadir path for phorge-1001 instance
Change 890132 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: install php-zip and php-gd packages
Change 890132 merged by Dzahn:
[operations/puppet@production] phorge: install php-zip and php-gd packages
Change 890133 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: install php-apcu and python3-pygments
Change 890133 merged by Dzahn:
[operations/puppet@production] phorge: install php-apcu and python3-pygments
Change 890134 had a related patch set uploaded (by Dzahn; author: Dzahn):
[operations/puppet@production] phorge: add parameter and value for the repo path
Change 890134 merged by Dzahn:
[operations/puppet@production] phorge: add parameter and value for the repo path
This config value could not be set in the web UI, it was locked. This had to be used to set it instead;
root@phorge-1001:/srv/phorge# ./bin/config set repository.default-local-path /srv/repo DONE Wrote configuration key "repository.default-local-path" to local storage (in file "conf/local/local.json").
After further debugging and solving a couple setup issues, this works now!
the main fix needed was to replace "http" with "https" in the base-uri setting in the main config file.
This is used in src pathes to CSS and JS and it seems like when there is http in there those get blocked (CSP added by domainproxy?, they can be loaded from external).
Just changing that to https made it work.
Other fixes were mysql/mariadb related. The following made 3 "unresolved setup issues" go away:
23:31 < mutante> !log devtools - phorge-1001 - MariaDB [(none)]> SET GLOBAL sql_mode = "STRICT_ALL_TABLES,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
23:33 < mutante> !log devtools - phorge-1001 - MariaDB [(none)]> SET GLOBAL local_infile=0;
23:34 < mutante> !log devtools - phorge-1001 - MariaDB [(none)]> SET GLOBAL max_allowed_packet=33554432;
Mentioned in SAL (#wikimedia-cloud) [2023-03-11T00:20:27Z] <mutante> - on phorge1001, enable general query log in mysql (mariadb), to learn about database scheme, don't forget to turn that off so VM doesn't run out of disk (SET GLOBAL general_log=1;) T328595
I looked at using the public dump file to import tasks but that does not seem to be possible. It's not a mysql dump file at all. (as also was mentioned years ago in old ticket T108199 it is lacking some data).
The script that creates that dump is in /srv/deployment/phabricator/deployment/tools/public_task_dump.py. There does not seem to be an import script.
Then I looked more at the actual database scheme, trying to export a single task in production to then import it here.
Turns out that is also not easy at all... "The schema design of Phabricator relies extensively on relational ids and there appears to be no easy way to export individual data sets as "open data" with object metadata descriptors."
The scenario that Christopher warned about in 2015 seems be coming true (T108199 - Evaluate Phabricator for its ability to export and import data) was exactly right but that ticket was declined years ago :/.
The only good news is that it seems like the database scheme is still the same in Phorge.
So in production we should be able to just replace phab with phorge keeping the same DB.. but importing tickets here (without importing the entire database which is a no-go because of private tasks in cloud projects).. is neither easy nor very useful for testing.
Switching to a completely different bug tracker would therefore also be a problem.
Regardless of that outcome, this ticket is resolved because all the boxes are checked now:
Hoping to be useful I registered a test volunteer account called valerio.bozz. Waiting for approval
Mentioned in SAL (#wikimedia-cloud) [2023-11-21T21:00:34Z] <mutante> - deleted instance phorge-1001 to get quota back and allow for creting new phabricator-on-bullseye instance T328595 T327068