欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Phabricator
小 (→开发) |
小 (→用户) |
||
(未显示1个用户的106个中间版本) | |||
第1行: | 第1行: | ||
− | + | {{SeeWikipedia}} | |
− | + | [[文件:phabricator-logo.png|right|Phabricator]] | |
− | + | Phabricator | |
+ | |||
+ | ==简介== | ||
+ | Phabricator: Open Source Software Development Platform. | ||
− | == | + | Phabricator 是一款可以使软件开发者之间更容易进行协同工作的Web应用,由 [[Facebook]] 开发,采取 Apache 2 许可协议。 |
− | git clone https://github.com/phacility/phabricator | + | |
+ | 它是一个代码审查、仓库浏览、Bug追踪、Wiki工具,它以 [[phabricator applications|Applications]] 的方式扩展其功能。 | ||
+ | |||
+ | Discuss. Plan. Code. Review. Test. | ||
+ | |||
+ | Every application your project needs, all in one tool. | ||
+ | |||
+ | 通过 Phabricator 导入研读源代码并写 Comment 也是一个不错的学习方法。 | ||
+ | |||
+ | Wikimedia 已经从 [[Bugzilla]] 迁移到 Phabricator. | ||
+ | |||
+ | ==新闻== | ||
+ | *[https://github.com/phacility/phabricator 自2021年6月1日起] Phabricator 不再积极维护。 | ||
+ | |||
+ | ==功能== | ||
+ | Phabricator 由以下模块构成: | ||
+ | *Differential (Code Review), [https://secure.phabricator.com/D13641 一个Example] | ||
+ | *Diffusion (Repository Browser) | ||
+ | *Maniphest (Task Tracking), [https://secure.phabricator.com/T6526 一个Example] | ||
+ | *Slowvote (Polls) | ||
+ | *Herald (Notifications) | ||
+ | *Conduit (Phabricator HTTP API) | ||
+ | *Celerity (CSS/JS Management) | ||
+ | *Phriction (Wiki) | ||
+ | *Aphront (Web Stack) | ||
+ | *DarkConsole (Debugging Console) | ||
+ | *[https://secure.phabricator.com/w/changelog/ Changelog] | ||
+ | |||
+ | ==VCS== | ||
+ | 支持主流版本控制系统: | ||
+ | *[[Git]] | ||
+ | *[[Mercurial]] | ||
+ | *[[Subversion]] | ||
+ | |||
+ | ==指南== | ||
+ | [https://bitnami.com/stack/phabricator/virtual-machine 下载 .OVA 虚拟机] 快速启动 | ||
+ | |||
+ | ===Docker=== | ||
+ | *[https://github.com/bloomberg/phabricator-tools phabricator-tools] | ||
+ | *[https://github.com/RedpointGames/phabricator Phabricator Docker image] | ||
+ | *[https://github.com/bitnami/bitnami-docker-phabricator Bitnami Docker Image for Phabricator] | ||
+ | |||
+ | ===源码安装=== | ||
+ | Phabricator 不支持 PHP 7.0 | ||
+ | |||
+ | [https://cloud.tencent.com/developer/article/1609447 Phabricator安装和配置过程记录] | ||
+ | git clone https://github.com/phacility/libphutil.git | ||
+ | git clone https://github.com/phacility/arcanist.git | ||
+ | git clone https://github.com/phacility/phabricator.git | ||
+ | cd phabricator | ||
+ | $ sudo apt install php | ||
+ | ./bin/config set mysql.host localhost | ||
+ | ./bin/config set mysql.port 3306 | ||
+ | ./bin/config set mysql.user root | ||
+ | ./bin/config set mysql.pass password | ||
+ | $ sudo apt install php-mysql | ||
+ | ./bin/storage upgrade | ||
+ | php -S phabricator.huihoo.org:9000 -t phabricator/webroot/ phabricator/webroot/index.php | ||
+ | http://phabricator.huihoo.org:9000 ok :) | ||
+ | 预先、相关依赖安装请参考:[https://secure.phabricator.com/book/phabricator/article/installation_guide/ Installation Guide] | ||
+ | |||
+ | ===HTTPS=== | ||
+ | [https://secure.phabricator.com/book/phabricator/article/configuring_preamble/ Configuring a Preamble Script] | ||
+ | |||
+ | ==Nginx== | ||
+ | $ sudo apt install php-fpm | ||
+ | $ sudo vim /etc/php/7.3/fpm/pool.d/www.conf | ||
+ | listen = /run/php/php7.3-fpm.sock | ||
+ | listen = 9000 | ||
+ | listen.allowed_clients = 127.0.0.1 | ||
+ | |||
+ | $ vim /etc/nginx/conf.d/127.0.0.1.conf | ||
+ | server_name 127.0.0.1; | ||
+ | root /var/www/pha/phabricator/webroot; | ||
+ | |||
+ | location / { | ||
+ | index index.php; | ||
+ | rewrite ^/(.*)$ /index.php?__path__=/$1 last; | ||
+ | } | ||
+ | |||
+ | location /index.php { | ||
+ | fastcgi_pass localhost:9000; | ||
+ | fastcgi_index index.php; | ||
+ | |||
+ | #required if PHP was built with --enable-force-cgi-redirect | ||
+ | fastcgi_param REDIRECT_STATUS 200; | ||
+ | |||
+ | #variables to make the $_SERVER populate in PHP | ||
+ | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | ||
+ | fastcgi_param QUERY_STRING $query_string; | ||
+ | fastcgi_param REQUEST_METHOD $request_method; | ||
+ | fastcgi_param CONTENT_TYPE $content_type; | ||
+ | fastcgi_param CONTENT_LENGTH $content_length; | ||
+ | |||
+ | fastcgi_param SCRIPT_NAME $fastcgi_script_name; | ||
+ | |||
+ | fastcgi_param GATEWAY_INTERFACE CGI/1.1; | ||
+ | fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; | ||
+ | |||
+ | fastcgi_param REMOTE_ADDR $remote_addr; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | 重启服务器,访问:http://127.0.0.1 | ||
+ | |||
+ | ==Apache2== | ||
+ | apt-get install php5-fpm | ||
+ | apt-get install php-apc // PHP extension 'APC' (Alternative PHP Cache) | ||
+ | vim /etc/apache2/sites-enabled/000-default | ||
+ | <VirtualHost *:80> | ||
+ | ServerName phabricator.huihoo.org | ||
+ | DocumentRoot /var/www/phabricator/webroot | ||
+ | RewriteEngine on | ||
+ | RewriteRule ^/rsrc/(.*) - [L,QSA] | ||
+ | RewriteRule ^/favicon.ico - [L,QSA] | ||
+ | RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA] | ||
+ | |||
+ | <Directory /var/www/phabricator/webroot> | ||
+ | Options Indexes FollowSymLinks MultiViews | ||
+ | AllowOverride None | ||
+ | Order allow,deny | ||
+ | allow from all | ||
+ | </Directory> | ||
+ | </VirtualHost> | ||
+ | vim /etc/huost | ||
+ | 192.168.1.2 phabricator.huihoo.org phabricator | ||
+ | /etc/init.d/apache2 restart | ||
+ | http://phabricator.huihoo.org/ | ||
+ | |||
+ | ==升级== | ||
+ | [https://phabricator.webfuns.net/book/phabricator/article/upgrading/ 升级 Phabricator] | ||
+ | stop apache2 + php-fpm | ||
+ | git pull in libphutil/, arcanist/ and phabricator/ | ||
+ | phabricator/bin/storage upgrade | ||
+ | restart apache2 + php-fpm | ||
+ | |||
+ | ==维护== | ||
+ | ./bin/storage dump | gzip > backup.sql.gz | ||
+ | gunzip -c backup.sql.gz | mysql | ||
+ | ./bin/phd start //启动后台进程 | ||
+ | ./bin/storage upgrade // Upgrade MySQL Schema | ||
+ | |||
+ | 升级脚本 http://www.phabricator.com/rsrc/install/update_phabricator.sh 建议大家先在测试环境下 update,也可参考一步步操作实验。 | ||
+ | |||
+ | 数据库patch和升级脚本在 phabricator/resources/sql/autopatches 在这里可找到一些Hack方法,如重建缺失的表、Fixing schema issues... | ||
==开发== | ==开发== | ||
[[phabricator/developer|Phabricator开发者]] | [[phabricator/developer|Phabricator开发者]] | ||
− | == | + | ==文档== |
− | *[[ | + | cd phabricator/ $ ./bin/diviner generate // Creating 49,830 documents. Completed generation of "phabricator.book". |
+ | cd arcanist/ $ ../phabricator/bin/diviner generate // Creating 7,765 documents. Completed generation of "arcanist.book". | ||
+ | [http://phabricator.huihoo.com/diviner/ 访问在线 Documentation Books] | ||
+ | |||
+ | ==[[Sonar]]== | ||
+ | [https://github.com/ipsGre/phabricator_sonar_plugin Phabricator Sonar Plugin] | ||
+ | |||
+ | ==[[Jenkins]]== | ||
+ | *[https://github.com/uber/phabricator-jenkins-plugin Phabricator-Jenkins Plugin] | ||
+ | *[http://www.dctrwatson.com/2013/01/jenkins-and-phabricator/ Jenkins and Phabricator sitting in a tree] | ||
+ | |||
+ | ==Scrum== | ||
+ | Phabricator 之 [[Scrum|敏捷实践]] | ||
+ | *[https://phabricator.wikimedia.org/tag/sos/board/ Wikimedia Scrum-of-Scrums project] | ||
+ | *[https://github.com/wikimedia/phabricator-extensions-Sprint phabricator-sprint] | ||
+ | |||
+ | ==DevOps== | ||
+ | 借助 Phabricator 通过 [[DevOps]] 促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。 | ||
+ | |||
+ | 集成 [[Drone]] 持续交付解决方案 | ||
+ | |||
+ | ==集成== | ||
+ | 集成更多应用,收集更多信息到 Dashboard。程序要需要一个汇聚更多研发运营信息的 Dashboard,一个 Open [[DevOps]] Dashboard. | ||
+ | *集成 [[Gitlab]] 代码托管解决方案 | ||
+ | *整合 [[Ory|ORY]] 解决方案 | ||
+ | |||
+ | ==问题集== | ||
+ | [https://discourse.phabricator-community.org Phabricator discourse] | ||
+ | pygmentize Not Available | ||
+ | $ sudo apt install python3-pygments | ||
+ | cannot mkdir /var/repo/1: Permission denied | ||
+ | $ sudo chmod 777 -R repo | ||
+ | not trusting file /var/repo/3/.hg/hgrc from untrusted user | ||
+ | $ sudo vim /etc/mercurial/hgrc | ||
+ | [trusted] | ||
+ | users = root | ||
+ | groups = dev | ||
+ | $ cd /var/repo/3/.hg/ | ||
+ | $ hg update | ||
+ | Error updating working copy: Command killed by timeout after running for more than 900 seconds | ||
+ | |||
+ | ==中文== | ||
+ | Phabricator中文版和文档中文化 | ||
+ | *[https://github.com/arielyang/phabricator_zh_Hans Phabricator 简体中文翻译(汉化)和工具] | ||
+ | *[https://phabricator.webfuns.net/ Phabricator 中文站] [https://github.com/phabricator-zh/phabricator/blob/master/src/infrastructure/internationalization/translation/PhabricatorSimplifiedChineseTranslation.php Phabricator中文翻译文件] [https://phabricator.webfuns.net/T3 Phabricator文档翻译] | ||
+ | *[https://github.com/wanthings/phabricator-zh_CN phabricator-zh_CN] | ||
+ | |||
+ | ==培训== | ||
+ | *[https://www.mediawiki.org/wiki/Phabricator/Help Learn how to use Phabricator (including tutorial videos)] MediaWiki 出品 | ||
==用户== | ==用户== | ||
− | *[https://phabricator.wikimedia.org/ MediaWiki] | + | *[https://phabricator.wikimedia.org/ MediaWiki] [https://blog.wikimedia.org/2014/11/24/welcome-to-phabricator-wikimedias-new-collaboration-platform/ Welcome to Phabricator, Wikimedia's new collaboration platform] |
− | *[https://developer.blender.org/ Blender] | + | *[https://developer.blender.org/ Blender] [https://developer.blender.org/diffusion/P/ blender-tweaks branch] |
− | *[[Facebook]] | + | *[[Facebook]] [https://reviews.facebook.net/diffusion/UPSTREAMKERNEL/ Facebook.net] 新浪、知乎 |
− | *[http://phabricator.huihoo.com/ 灰狐] | + | *Uber [https://github.com/uber/phabricator-jenkins-plugin Phabricator-Jenkins Plugin] |
− | *[https://phabricator.haskell.org/ Phabricator @ Haskell.org] | + | *[https://reviews.freebsd.org/ FreeBSD] |
+ | *[https://phabricator.kde.org/ KDE] | ||
+ | *[https://phabricator.mesosphere.com/ Mesosphere] | ||
+ | *[http://phabricator.huihoo.com/applications/ 灰狐] | ||
+ | *[https://phabricator.haskell.org/ Phabricator @ Haskell.org] [[Haskell]] | ||
+ | *[https://phab.wish.com/ Wish.com] | ||
+ | *[http://reviews.llvm.org/ LLVM] [http://llvm.org/docs/Phabricator.html Code Reviews with Phabricator] [[LLVM]] | ||
+ | *[https://lab.apertus.org/ apertus° - open source cinema] | ||
+ | *[https://phabricator.vyos.net/ VyOS] | ||
+ | *[[Babel]] [https://phabricator.babeljs.io/ Babel Phabricator] | ||
+ | *[https://phabricator.whonix.org/ Whonix] | ||
+ | *[https://git.kolab.org/ Kolab Groupware development platform] | ||
+ | *[https://feedback.bistudio.com/ Bohemia Interactive] | ||
+ | *[https://phabricator.freedesktop.org/ freedesktop.org] | ||
+ | *[http://dev.cup-arma3.org/ Community Upgrade Project] | ||
+ | *[https://developer.trustedfirmware.org/ Trusted Firmware] | ||
+ | *[https://phabricator.vyos.net/ VyOS Platform Development portal] | ||
[https://secure.phabricator.com/w/usage/companies/ 更多用户 >>>] | [https://secure.phabricator.com/w/usage/companies/ 更多用户 >>>] | ||
==图集== | ==图集== | ||
<gallery> | <gallery> | ||
+ | image:phabricator-kanban.png|看板 | ||
image:phabricator-welcome.png|欢迎页 | image:phabricator-welcome.png|欢迎页 | ||
image:open-phabricator-setup-issues.png|问题 | image:open-phabricator-setup-issues.png|问题 | ||
第32行: | 第244行: | ||
image:phabricator-changes.png|改变 | image:phabricator-changes.png|改变 | ||
image:phabricator-authentication-provider.png|认证方式 | image:phabricator-authentication-provider.png|认证方式 | ||
+ | image:jenkins-phabricator-at-uber.png|Uber | ||
+ | image:phabricator-database-config.png|数据库配置 | ||
+ | image:phabricator-harbormaster.png|harbormaster构建 | ||
+ | image:phabricator-jenkins.png|Jenkins构建 | ||
+ | image:phabricator-setup-checks.png|安装检测 | ||
</gallery> | </gallery> | ||
==链接== | ==链接== | ||
*[http://phabricator.org/ Phabricator官网] | *[http://phabricator.org/ Phabricator官网] | ||
+ | *[http://phacility.com/ phacility: phabricator背后的公司] | ||
+ | *[https://www.facebook.com/phabricator Phabricator @ Facebook] | ||
*[https://github.com/facebook/phabricator Phabricator @ GitHub] | *[https://github.com/facebook/phabricator Phabricator @ GitHub] | ||
− | *[https://secure.phabricator.com/diviner/ Phabricator Documentation Books] | + | *[https://secure.phabricator.com/diviner/ 官方 Phabricator Documentation Books] [http://phabricator.huihoo.com/diviner/ 灰狐 Phabricator Documentation Books] |
*[https://secure.phabricator.com/w/ Phabricator Wiki] | *[https://secure.phabricator.com/w/ Phabricator Wiki] | ||
*[http://www.oschina.net/question/191440_125562 Phabricator入门手册] | *[http://www.oschina.net/question/191440_125562 Phabricator入门手册] | ||
第45行: | 第264行: | ||
[[category:code review]] | [[category:code review]] | ||
[[category:facebook]] | [[category:facebook]] | ||
+ | [[category:scrum]] | ||
+ | [[category:kanban]] | ||
+ | [[category:DevOps]] | ||
+ | [[category:huihoo]] |
2022年5月7日 (六) 15:49的最后版本
您可以在Wikipedia上了解到此条目的英文信息 Phabricator Thanks, Wikipedia. |
Phabricator
目录 |
[编辑] 简介
Phabricator: Open Source Software Development Platform.
Phabricator 是一款可以使软件开发者之间更容易进行协同工作的Web应用,由 Facebook 开发,采取 Apache 2 许可协议。
它是一个代码审查、仓库浏览、Bug追踪、Wiki工具,它以 Applications 的方式扩展其功能。
Discuss. Plan. Code. Review. Test.
Every application your project needs, all in one tool.
通过 Phabricator 导入研读源代码并写 Comment 也是一个不错的学习方法。
Wikimedia 已经从 Bugzilla 迁移到 Phabricator.
[编辑] 新闻
- 自2021年6月1日起 Phabricator 不再积极维护。
[编辑] 功能
Phabricator 由以下模块构成:
- Differential (Code Review), 一个Example
- Diffusion (Repository Browser)
- Maniphest (Task Tracking), 一个Example
- Slowvote (Polls)
- Herald (Notifications)
- Conduit (Phabricator HTTP API)
- Celerity (CSS/JS Management)
- Phriction (Wiki)
- Aphront (Web Stack)
- DarkConsole (Debugging Console)
- Changelog
[编辑] VCS
支持主流版本控制系统:
[编辑] 指南
下载 .OVA 虚拟机 快速启动
[编辑] Docker
[编辑] 源码安装
Phabricator 不支持 PHP 7.0
git clone https://github.com/phacility/libphutil.git git clone https://github.com/phacility/arcanist.git git clone https://github.com/phacility/phabricator.git cd phabricator $ sudo apt install php ./bin/config set mysql.host localhost ./bin/config set mysql.port 3306 ./bin/config set mysql.user root ./bin/config set mysql.pass password $ sudo apt install php-mysql ./bin/storage upgrade php -S phabricator.huihoo.org:9000 -t phabricator/webroot/ phabricator/webroot/index.php http://phabricator.huihoo.org:9000 ok :)
预先、相关依赖安装请参考:Installation Guide
[编辑] HTTPS
[编辑] Nginx
$ sudo apt install php-fpm $ sudo vim /etc/php/7.3/fpm/pool.d/www.conf listen = /run/php/php7.3-fpm.sock listen = 9000 listen.allowed_clients = 127.0.0.1
$ vim /etc/nginx/conf.d/127.0.0.1.conf server_name 127.0.0.1; root /var/www/pha/phabricator/webroot;
location / { index index.php; rewrite ^/(.*)$ /index.php?__path__=/$1 last; }
location /index.php { fastcgi_pass localhost:9000; fastcgi_index index.php;
#required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
#variables to make the $_SERVER populate in PHP fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr; }
}
重启服务器,访问:http://127.0.0.1
[编辑] Apache2
apt-get install php5-fpm apt-get install php-apc // PHP extension 'APC' (Alternative PHP Cache)
vim /etc/apache2/sites-enabled/000-default
<VirtualHost *:80> ServerName phabricator.huihoo.org DocumentRoot /var/www/phabricator/webroot RewriteEngine on RewriteRule ^/rsrc/(.*) - [L,QSA] RewriteRule ^/favicon.ico - [L,QSA] RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA]
<Directory /var/www/phabricator/webroot> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
vim /etc/huost
192.168.1.2 phabricator.huihoo.org phabricator
/etc/init.d/apache2 restart
http://phabricator.huihoo.org/
[编辑] 升级
stop apache2 + php-fpm git pull in libphutil/, arcanist/ and phabricator/ phabricator/bin/storage upgrade restart apache2 + php-fpm
[编辑] 维护
./bin/storage dump | gzip > backup.sql.gz gunzip -c backup.sql.gz | mysql ./bin/phd start //启动后台进程 ./bin/storage upgrade // Upgrade MySQL Schema
升级脚本 http://www.phabricator.com/rsrc/install/update_phabricator.sh 建议大家先在测试环境下 update,也可参考一步步操作实验。
数据库patch和升级脚本在 phabricator/resources/sql/autopatches 在这里可找到一些Hack方法,如重建缺失的表、Fixing schema issues...
[编辑] 开发
[编辑] 文档
cd phabricator/ $ ./bin/diviner generate // Creating 49,830 documents. Completed generation of "phabricator.book". cd arcanist/ $ ../phabricator/bin/diviner generate // Creating 7,765 documents. Completed generation of "arcanist.book".
[编辑] Sonar
[编辑] Jenkins
[编辑] Scrum
Phabricator 之 敏捷实践
[编辑] DevOps
借助 Phabricator 通过 DevOps 促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
集成 Drone 持续交付解决方案
[编辑] 集成
集成更多应用,收集更多信息到 Dashboard。程序要需要一个汇聚更多研发运营信息的 Dashboard,一个 Open DevOps Dashboard.
[编辑] 问题集
Phabricator discourse pygmentize Not Available
$ sudo apt install python3-pygments
cannot mkdir /var/repo/1: Permission denied
$ sudo chmod 777 -R repo
not trusting file /var/repo/3/.hg/hgrc from untrusted user
$ sudo vim /etc/mercurial/hgrc [trusted] users = root groups = dev $ cd /var/repo/3/.hg/ $ hg update
Error updating working copy: Command killed by timeout after running for more than 900 seconds
[编辑] 中文
Phabricator中文版和文档中文化
[编辑] 培训
[编辑] 用户
- MediaWiki Welcome to Phabricator, Wikimedia's new collaboration platform
- Blender blender-tweaks branch
- Facebook Facebook.net 新浪、知乎
- Uber Phabricator-Jenkins Plugin
- FreeBSD
- KDE
- Mesosphere
- 灰狐
- Phabricator @ Haskell.org Haskell
- Wish.com
- LLVM Code Reviews with Phabricator LLVM
- apertus° - open source cinema
- VyOS
- Babel Babel Phabricator
- Whonix
- Kolab Groupware development platform
- Bohemia Interactive
- freedesktop.org
- Community Upgrade Project
- Trusted Firmware
- VyOS Platform Development portal