Phabricator

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(以“phabricator 是一款可以使软件开发者之间更容易进行协同工作的Web应用,由 Facebook 开发,采取 Apache 2 许可协议。 ==链接== *[...”为内容创建页面)
 
(用户)
 
(未显示1个用户的127个中间版本)
第1行: 第1行:
phabricator 是一款可以使软件开发者之间更容易进行协同工作的Web应用,由 [[Facebook]] 开发,采取 Apache 2 许可协议。
+
{{SeeWikipedia}}
 +
 
 +
[[文件:phabricator-logo.png|right|Phabricator]]
 +
 
 +
Phabricator
 +
 +
==简介==
 +
Phabricator: Open Source Software Development Platform.
 +
 
 +
Phabricator 是一款可以使软件开发者之间更容易进行协同工作的Web应用,由 [[Facebook]] 开发,采取 Apache 2 许可协议。
 +
 
 +
它是一个代码审查、仓库浏览、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开发者]]
 +
 
 +
==文档==
 +
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://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/diffusion/P/  blender-tweaks branch]
 +
*[[Facebook]] [https://reviews.facebook.net/diffusion/UPSTREAMKERNEL/ Facebook.net] 新浪、知乎
 +
*Uber [https://github.com/uber/phabricator-jenkins-plugin Phabricator-Jenkins Plugin]
 +
*[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/ 更多用户 >>>]
 +
 
 +
==图集==
 +
<gallery>
 +
image:phabricator-kanban.png|看板
 +
image:phabricator-welcome.png|欢迎页
 +
image:open-phabricator-setup-issues.png|问题
 +
image:open-phabricator-pinned-applications.png|应用
 +
image:open-phabricator-applications.png|应用
 +
image:phabricator-repository.png|仓库
 +
image:phabricator-commits-history.png|提交
 +
image:phabricator-changes.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>
  
 
==链接==
 
==链接==
 +
*[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] [http://phabricator.huihoo.com/diviner/ 灰狐 Phabricator Documentation Books]
 +
*[https://secure.phabricator.com/w/ Phabricator Wiki]
 +
*[http://www.oschina.net/question/191440_125562 Phabricator入门手册]
 +
*[http://www.zhihu.com/topic/19745675 Phabricator - 热门问答 - 知乎]
  
 
[[category:PHP]]
 
[[category:PHP]]
 +
[[category:code review]]
 
[[category:facebook]]
 
[[category:facebook]]
 +
[[category:scrum]]
 +
[[category:kanban]]
 +
[[category:DevOps]]
 +
[[category:huihoo]]

2022年5月7日 (六) 15:49的最后版本

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 Phabricator Thanks, Wikipedia.
Phabricator

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.

[编辑] 新闻

[编辑] 功能

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

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 :)

预先、相关依赖安装请参考:Installation Guide

[编辑] HTTPS

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/

[编辑] 升级

升级 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开发者

[编辑] 文档

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". 

访问在线 Documentation Books

[编辑] Sonar

Phabricator Sonar Plugin

[编辑] Jenkins

[编辑] Scrum

Phabricator 之 敏捷实践

[编辑] DevOps

借助 Phabricator 通过 DevOps 促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

集成 Drone 持续交付解决方案

[编辑] 集成

集成更多应用,收集更多信息到 Dashboard。程序要需要一个汇聚更多研发运营信息的 Dashboard,一个 Open DevOps Dashboard.

  • 集成 Gitlab 代码托管解决方案
  • 整合 ORY 解决方案

[编辑] 问题集

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中文版和文档中文化

[编辑] 培训

[编辑] 用户

更多用户 >>>

[编辑] 图集

[编辑] 链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱