贡献
如果您正在考虑 hacking watchman,我们非常乐意听到您的消息! 欢迎使用 GitHub 问题跟踪器和 pull requests 来讨论和提交代码更改。
对于任何发送补丁或代码并希望将其包含在代码库中的人,我们(Facebook)都需要一份“贡献者许可协议”。 这是法律要求; Apache 和其他 ASF 项目也适用类似的情况。
如果我们需要您填写 CLA,我们会引导您访问我们的在线 CLA 页面,您可以在那里轻松完成。 我们使用与 Apache CLA 相同的表格,以尽量减少摩擦。
Facebook Open Source 为所有项目提供了一份行为准则声明,以促进一个受欢迎且安全的开源社区。 请阅读全文,以便您了解哪些行为可以容忍,哪些行为不能容忍。
入门
您需要能够从源代码构建 watchman 并运行其测试套件。 您将需要
- python
- automake
- autoconf
- cmake
- libtool (或 macOS 上的 glibtool)
- libpcre
- libfolly(仅在构建 cppclient 库时需要)
- nodejs (用于 fb-watchman)
可以通过运行 getdeps.py --install-deps
来安装构建时依赖项。 在下面的示例中,当您运行 autogen.sh
时,会自动运行此命令
$ git clone https://github.com/facebook/watchman.git
$ cd watchman
$ ./autogen.sh
$ make
进行更改后,运行集成测试以确保在提交 pull request 之前一切正常运行
$ make integration
我们可能会要求您扩充测试套件,以涵盖您添加或更改的功能。
请记住,我们在 Watchman 中的版本控制理念是提供一个仅追加 API。 如果您要更改功能,我们会要求您以不会破坏 Watchman 的旧客户端的方式进行更改。
不要忘记文档
如果您要更改或添加新功能,我们还会要求您更新文档。 您将需要 ruby
2.0.0 或更高版本才能预览文档。
一次性设置
$ cd website
$ sudo gem install bundler
$ sudo bundler install
然后
$ jekyll serve -w -t
这将打印出一个 URL,您可以在浏览器中打开该 URL 以预览您的文档更改。
文档的源代码位于 markdown 格式的 website/_docs
目录中。