开发指南

本文档介绍如何从源代码构建GraphScope。

开发环境

要从源代码构建GraphScope,您需要准备一个包含许多依赖项和构建工具链的开发环境。您可以通过以下方式准备开发环境

  • 使用我们提供的 开发容器

  • 在本地机器上安装所有工具和依赖项

我们强烈建议您使用开发容器进行开发和测试。

使用开发容器进行开发。

我们提供了一个包含所有工具和依赖项的Docker镜像graphscope-dev。 此外,devcontainer.json文件可帮助在Visual Studio Code中快速搭建开发环境。

通过使用开发容器,开发者可以确保其开发环境在不同机器和操作系统之间保持一致,从而更便于与他人协作并维护稳定的开发环境。

要使用开发容器进行GraphScope开发,您可以按照以下步骤操作:

  1. 如果尚未安装,请在您的机器上安装Docker。若偏好远程开发,也可在远程机器上安装。

  2. 克隆GraphScope代码仓库。

  3. 打开Visual Studio Code并导航到GraphScope代码仓库。

  4. 如果您已安装Remote Development扩展,可以点击窗口左下角的绿色图标并选择“Remote-Containers: 在容器中重新打开”。如果尚未安装该扩展,可以从Visual Studio Code应用商店进行安装。

  5. 如果看不到Reopen in Container提示,可以按Command + Shift + P(macOS)或Ctrl + Shift + P(Windows, Linux)并输入Reopen in Container

  6. 容器构建完成后,您可以在Visual Studio Code中打开终端。

  7. 您可以自定义devcontainer.json文件以满足自身需求。完成修改后,即可使用您的自定义配置重新构建容器。

在本地安装依赖

要在本地安装所有依赖项,请使用GraphScope命令行工具gsctl及其子命令install-deps,如下所示

# pip3 install gsctl
gsctl install-deps dev

# for more usage, try
# gsctl install-deps -h

您可以直接下载gsctl或克隆GraphScope到本地,gsctl位于GraphScope的根目录下。

# git clone https://github.com/alibaba/GraphScope.git
cd GraphScope && python3 gsctl.py install-deps dev

构建GraphScope的所有目标

您可以通过一条命令构建GraphScope的所有目标。

cd GraphScope && make

这将按顺序构建所有目标,在这里 根据各个组件,您可以在多个位置找到构建产物。

  • 分析引擎: analytical_engine/build

  • 交互式引擎: interactive_engine/assembly/target

  • 学习引擎: learning_engine/graph-learn/graphlearn/cmake-build

您可以通过以下方式将它们安装到同一位置

make install [INSTALL_PREFIX=/opt/graphscope]

默认情况下,它会将所有组件安装到/opt/graphscope目录,您也可以通过指定INSTALL_PREFIX的值来选择其他安装位置。

单独构建组件

GraphScope由多个组件构成,您可以单独构建其中的每一个。如果您仅修改了某个组件的代码,或者希望以解耦的方式使用GraphScope,可以单独构建受影响的组件。

构建与测试引擎

您可以参考以下各引擎的构建与测试指南。

构建协调器

gscoordinator 包负责启动引擎、循环传递消息和错误,以及调度工作负载操作。

这将安装协调器包,从而使import gscoordinator能够正常工作

提示

该软件包将以可编辑模式安装,这意味着您在本地目录中所做的任何更改都会生效。

make coordinator

构建Python客户端

graphscope 包是一个用于操作 GraphScope 的 Python 入口点。

这将安装graphscope-client包,从而使import graphscope能够正常工作。

提示

该软件包也将以可编辑模式安装,这意味着您在本地目录中所做的任何更改都会生效。

make client

构建 gsctl

gsctl 包是 GraphScope 的命令行工具。它提供了一系列功能,使 GraphScope 更易于使用。

这将安装gsctl包,从而使gsctl能够正常工作。

提示

该软件包也将以可编辑模式安装,这意味着您在本地目录中所做的任何更改都会生效。

make gsctl