使用 Gitpod 进行 pandas 开发#

本节文档将指导您完成以下步骤:

  • 使用 Gitpod 创建您的 pandas 开发环境

  • 在 GitHub 上创建 pandas 仓库的个人 fork

  • 快速了解 pandas 和 VSCode

  • 在 Gitpod 中处理 pandas 文档

Gitpod#

Gitpod 是一个用于自动化和随时可编码的开发环境的开源平台。它使开发人员能够将他们的开发环境描述为代码,并直接从浏览器为每个新任务启动即时且全新的开发环境。这减少了安装本地开发环境和处理不兼容依赖项的需要。

Gitpod GitHub 集成#

要使用 Gitpod,您需要在您的 GitHub 帐户上安装 Gitpod 应用程序,因此如果您还没有帐户,则需要先创建一个。

要开始使用,只需登录 Gitpod,并授予 GitHub 适当的权限。

我们已经构建了一个 python 3.10 环境,并且所有开发依赖项将在环境启动时安装。

Fork pandas 代码库#

作为贡献者,在 pandas 上工作的最佳方式是先 fork 代码库。

  1. 浏览到 GitHub 上的 pandas 代码库创建你自己的 fork

  2. 浏览到你的 fork。你的 fork 将会有一个类似于 noatamir/pandas-dev 的 URL,只是将 noatamir 替换为你的 GitHub 用户名。

启动 Gitpod#

通过 GitHub 认证到 Gitpod 后,你可以安装 Gitpod Chromium 或 Firefox 浏览器扩展,它会在代码库中“代码”按钮旁边添加一个“Gitpod”按钮。

pandas repository with Gitpod button screenshot
  1. 如果你安装了扩展,你可以点击“Gitpod”按钮来启动一个新的工作区。

  2. 或者,如果你不想安装浏览器扩展,你可以访问 https://gitpod.io/#https://github.com/USERNAME/pandas,将 USERNAME 替换为你的 GitHub 用户名。

  3. 在这两种情况下,这都会在你的网络浏览器上打开一个新标签页并开始构建你的开发环境。请注意,这可能需要几分钟。

  4. 构建完成后,你将被引导到你的工作区,包括 VSCode 编辑器和你在 pandas 上工作所需的所有依赖项。第一次启动工作区时,你会注意到可能有一些操作正在运行。这将确保你安装了 pandas 的开发版本。

  5. 当你的工作区准备就绪后,你可以 测试构建,方法是输入

    $ python -m pytest pandas
    

    请注意,此命令需要一段时间才能运行,因此,一旦你确认它正在运行,你可能需要使用 ctrl-c 取消它。

快速工作区浏览#

Gitpod 使用 VSCode 作为编辑器。如果你以前没有使用过这个编辑器,你可以查看入门 VSCode 文档 来熟悉它。

你的工作区将类似于下面的图片

Gitpod workspace screenshot

我们在编辑器中标记了一些重要部分

  1. 您当前的 Python 解释器 - 默认情况下,这是 pandas-dev,应该显示在状态栏和您的终端中。您不需要激活 conda 环境,因为这将始终为您激活。

  2. 您当前的分支始终显示在状态栏中。您也可以使用此按钮更改或创建分支。

  3. GitHub Pull Requests 扩展 - 您可以使用它从您的工作区处理 Pull Requests。

  4. Marketplace 扩展 - 我们已将一些基本扩展添加到 pandas Gitpod 中。但是,您也可以为您的用户安装其他扩展或语法高亮主题,这些主题将为您保留。

  5. 您的工作区目录 - 默认情况下,它是 /workspace/pandas-dev不要更改此目录,因为这是 Gitpod 中唯一保留的目录。

我们还预先安装了一些工具和 VSCode 扩展来帮助您进行开发体验

使用 Gitpod 的开发工作流程#

本文档的 贡献到 pandas 部分包含有关 pandas 开发工作流程的信息。在进行贡献之前,请务必查看此部分。

使用 Gitpod 时,git 会为您预先配置

  1. 您不需要配置您的 git 用户名和电子邮件,因为您已通过 GitHub 进行了身份验证,这应该已经为您完成。除非您使用 GitHub 功能来隐藏电子邮件地址。您可以使用终端中的命令 git config --list 检查 git 配置。使用 git config --global user.email [email protected] 将您的电子邮件地址设置为用于使用您的 github 个人资料进行提交的电子邮件地址。

  2. 由于您从自己的 pandas fork 启动了工作区,因此默认情况下,您将同时添加 upstreamorigin 作为远程仓库。您可以通过在终端中键入 git remote 或单击状态栏上的分支名称来验证这一点(见下图)。

    Gitpod workspace branches plugin screenshot

渲染 Pandas 文档#

您可以在 如何构建 Pandas 文档 部分找到有关使用 Sphinx 渲染文档的详细说明。要构建完整的文档,您需要在 /doc 目录中运行以下命令

$ cd doc
$ python make.py html

或者,您可以构建单个页面,方法是

python make.py --single development/contributing_gitpod.rst

您有两个主要选项可以在 Gitpod 中渲染文档。

选项 1:使用 Liveserve#

  1. pandas/doc/build/html 中查看文档。

  2. 要查看页面的渲染版本,您可以右键单击 .html 文件,然后单击 **使用 Live Serve 打开**。或者,您可以在编辑器中打开文件,然后单击状态栏上的 **Go live** 按钮。

    Gitpod workspace VSCode start live serve screenshot
  3. 一个简单的浏览器将在编辑器的右侧打开。我们建议关闭它,然后单击弹出窗口中的 **在浏览器中打开** 按钮。

  4. 要停止服务器,请单击状态栏上的 **端口:5500** 按钮。

选项 2:使用 rst 扩展#

在您处理 .rst 文件时,使用 rst 扩展和 docutils 可以快速轻松地查看实时更改。

注意

这将生成文档的简单实时预览,没有 html 主题,并且某些反向链接可能无法正确添加。但它是一种简单轻便的方式,可以立即获得工作反馈,而无需构建 html 文件。

  1. 在编辑器中打开位于 doc/source 中的任何源文档文件。

  2. 在 Mac 上使用 Cmd-Shift-P 或在 Linux 和 Windows 上使用 Ctrl-Shift-P 打开 VSCode 命令面板。开始键入“restructured”,然后选择“打开预览”或“在侧边打开预览”。

    Gitpod workspace VSCode open rst screenshot
  3. 在您处理文档时,您将在编辑器中看到它的实时渲染。

    Gitpod workspace VSCode rst rendering screenshot

如果您想使用 html 主题查看最终输出,您需要使用 make html 重新构建文档,并使用选项 1 中描述的 Live Serve。

常见问题解答和故障排除#

我的 Gitpod 工作区保留多长时间?#

您的停止的工作区将保留 14 天,如果您不使用它们,它们将在之后被删除。

我可以回到以前的工作区吗?#

是的,假设您离开了一段时间,并且想要继续在您的 pandas 贡献上工作。您需要访问 https://gitpod.io/workspaces 并点击您想要再次启动的工作区。您上次离开时的所有更改都将保留在那里。

我可以安装额外的 VSCode 扩展吗?#

当然可以!您安装的任何扩展都将安装在您自己的工作区中并保留。

我在 Gitpod 上注册了,但我仍然在我的存储库中看不到 Gitpod 按钮。#

前往 https://gitpod.io/integrations 并确保您已登录。将鼠标悬停在 GitHub 上,然后点击右侧出现的三个按钮。点击编辑权限,并确保您已选中 user:emailread:userpublic_repo。点击更新权限,并在 GitHub 应用程序页面中确认更改。

Gitpod integrations - edit GH permissions screenshot

如果我不使用工作区,它会保持活动状态多长时间?#

如果您在浏览器选项卡中保持工作区打开,但没有与之交互,它将在 30 分钟后关闭。如果您关闭浏览器选项卡,它将在 3 分钟后关闭。

我的终端是空白的 - 没有光标,它完全没有响应#

不幸的是,这是 Gitpod 方面的一个已知问题。您可以通过两种方式解决此问题

  1. 完全创建一个新的 Gitpod 工作区。

  2. 前往您的 Gitpod 仪表板 并找到正在运行的工作区。将鼠标悬停在其上,然后点击三个点菜单,然后点击停止。当工作区完全停止后,您可以点击其名称以重新启动它。

Gitpod dashboard and workspace menu screenshot

我通过 GitHub 进行了身份验证,但我仍然无法通过 Gitpod 提交到存储库。#

前往 https://gitpod.io/integrations 并确保您已登录。将鼠标悬停在 GitHub 上,并点击右侧出现的三个按钮。点击编辑权限,确保您已选中 public_repo。点击 **更新权限**,并在 GitHub 应用页面中确认更改。

Gitpod integrations - edit GH repository permissions screenshot

致谢#

本页面略微改编自 NumPy 项目。