欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Phabricator
小 (→集成) |
小 (→安装) |
||
第36行: | 第36行: | ||
==安装== | ==安装== | ||
+ | [https://bitnami.com/stack/phabricator/virtual-machine 下载 .OVA 虚拟机] 快速启动 | ||
+ | |||
===Docker=== | ===Docker=== | ||
*[https://github.com/bloomberg/phabricator-tools phabricator-tools] | *[https://github.com/bloomberg/phabricator-tools phabricator-tools] |
2021年8月6日 (五) 13:29的版本
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.
功能
组成
- 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".
Redmine
Sonar
Jenkins
Scrum
Phabricator 之 敏捷实践
Git
集成 Gitlab 代码托管解决方案
Keycloak
整合 Keycloak 解决方案
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