尝试开发版本

备注

git 源代码管理系统的名称。它用于跟踪对代码所做的更改,并管理来自多个不同人员的贡献。如果你想了解更多 git 现在看看 Git Basics .

如果你从未使用过 git 在此之前,请在第一次执行此操作时留出一个小时的时间。如果您发现这需要一个多小时,请在 astropy forums 寻求帮助。

astropy的开发有三种方法:

  • 更多的用户测试新功能有助于在功能发布之前发现bug。

  • 最新稳定版本中的一个bug可能已经在开发版本中修复了。了解情况是否如此可以使您的bug报告更有用。

  • 在将任何代码贡献给 Astropy . 如果你打算做贡献,现在就练习可以节省你的时间。

概述

从概念上讲,要在您的计算机上获得最新版本的astropy的工作副本,有几个步骤:

  1. 在GitHub上制作你自己的Astropy副本 ;此副本称为 fork (如果你没有账户 github 但是,现在就去做一个)。

  2. 确保您的计算机上已安装并配置了git

  3. 把你的Astropy分支从GitHub复制到你的计算机上 这叫做 克隆 存储库的。

  4. 告诉git在Astropy的开发版本中从哪里寻找变更

  5. 创建您自己的私人工作区 这叫做 分支 .

  6. “激活”astropy的开发版本

  7. 测试开发副本

  8. 试用开发版

  9. “停用”开发版本

分步说明

在GitHub上制作你自己的Astropy副本

用…的语言 GitHub ,复制某人的代码称为 fork . fork是代码及其所有修订历史的完整副本。

  1. 登录到您的 GitHub 帐户。

  2. Astropy GitHub 主页。

  3. 点击 fork 按钮:

    ../../_images/forking_button.png

    在短暂的停顿和八达通在平板扫描仪上扫描一本书的动画之后,你应该会发现自己在主页上看到了自己的分叉版 Astropy 。

确保您的计算机上已安装并配置了git

检查git是否已安装:

在终端中键入以下内容进行检查:

$ git --version
# if git is installed, will get something like: git version 2.20.1

如果 git 未安装, get it .

基本git配置:

请按照中的说明操作 Set Up Git at GitHub 要注意两个基本事项:

  • 在的副本中设置用户名和电子邮件 git

  • 设置身份验证,这样就不必每次需要从命令行访问github时都输入github密码。默认方法 Set Up Git at GitHub 可能需要管理权限;如果这是一个问题,请设置身份验证 using SSH keys instead

我们还建议设置 git 所以当你从你的电脑复制到 GitHub 只有副本(称为 分支 )你正在研究的astropy会被推到GitHub上。 If 您的git版本是1.7.11或更高版本,您可以使用:

git config --global push.default simple

如果你现在跳过这一步,这不是问题; git 会提醒你在相关的情况下这样做。如果您的git版本低于1.7.11,您仍然可以继续没有这个版本,但这可能会导致以后的混乱,因为您可能会推高不打算推送的分支。

备注

请务必记下您设置的身份验证方法,因为它会影响将GitHub fork复制到计算机的命令。

如果设置了密码缓存(默认方法),则URL将如下所示 https://github.com/your-user-name/astropy.git .

如果设置了SSH密钥,则用于复制的url将类似于 git@github.com:your-user-name/astropy.git .

把你的Astropy分支从GitHub复制到你的计算机上

下面的命令之一将生成 GitHub 叉子 Astropy 在一个名为 astropy ;使用哪种形式取决于上一步中设置的身份验证类型:

# Use this form if you setup SSH keys...
$ git clone --recursive git@github.com:your-user-name/astropy.git
# ...otherwise use this form:
$ git clone --recursive https://github.com/your-user-name/astropy.git

如果在此阶段出现错误,则可能是设置身份验证时出错。

告诉git在Astropy的开发版本中从哪里寻找变更

现在你本地的astropy副本不知道astropy的开发版本在哪里。要使您的本地副本保持最新,没有简单的方法。在 git 同一存储库的另一个位置的名称是 遥远的 . 包含最新“官方”开发版本的存储库传统上称为 上游 remote,但这里我们为remote使用一个更有意义的名称: 阿谀奉承 .

换成 astropy 在上一步中创建的目录并让 git 了解远程 Astropy :

cd astropy
git remote add astropy git://github.com/astropy/astropy.git

你可以通过询问来检查到目前为止所有的设置是否正确 git 向您显示它知道的本地存储库的所有远程 Astropy 具有 git remote -v ,它应该显示如下内容:

astropy   git://github.com/astropy/astropy.git (fetch)
astropy   git://github.com/astropy/astropy.git (push)
origin     git@github.com:your-user-name/astropy.git (fetch)
origin     git@github.com:your-user-name/astropy.git (push)

注意 git 已经知道一个叫 起源 那是你的叉子 AstropyGitHub .

更明确地说是起源 your 叉子 Astropy ,将该遥控器重命名为 GitHub 用户名:

git remote rename origin your-user-name

创建您自己的私人工作区

关于 git 这是很容易的,使什么本质上是你自己的私人工作区,以尝试编码的想法。 git 调用这些工作区 分支机构 .

您的存储库已经有多个分支;如果需要,可以通过运行 git branch -a . 他们中的大多数人都在 remotes/origin 换句话说,它们存在于GitHub上的astropy远程副本上。

有一个特别的分支叫做 主人 . 现在它就是您正在处理的那个;您可以分辨出来,因为在您的分支列表中,它旁边有一个标记: * master .

长话短说,你永远不想在师父身上工作。总是在树枝上工作。

为了避免未来可能出现的混乱,现在就做你自己的分支;这个分支你可以叫任何你喜欢的名字(当你做贡献时,你应该用一个更有意义的名字)::

git branch my-own-astropy

你是 不完全是 完成了吗。Git知道这个新分支;运行 git branch 然后:

* master
  my-own-astropy

这个 * 表示您仍在使用主控形状。你需要做的是 退房 分支机构 my-own-astropy . 用以下方法:

git checkout my-own-astropy

你应该得到以下奖励:

Switched to branch 'my-own-astropy'

“激活”astropy的开发版本

现在有了astropy的开发版本,但是python不会看到它。虽然有更复杂的方法来管理多个版本的astropy,但目前这种简单的方法是可行的(如果你想跳到更复杂的方法看看 Python虚拟环境

备注

如果你想在 Astropy ,这个快速激活你的 Astropy 副本的方法 not 工作——您需要直接使用虚拟python环境。

如果您决定使用推荐的“激活”方法 pip ,请注意以下事项:在尝试安装之前,请检查您是否具有所需的依赖项:“cython”和“jinja2”。如果没有,请使用 pip . 注意,在某些平台上,pip命令是 pip3 而不是 pip ,因此,如果是这样的话,请确保在下面的示例中使用此方法。如果您对不同版本的 pip 已安装,请尝试别名以解决问题。如果你不确定 pip 您正在使用的版本,请尝试命令 which pip 在终点站。

在你的astropy副本所在的目录中键入:

pip install -e .

当你第一次这样做的时候,会有好几页的输出;这不是喝一杯新鲜咖啡的好时机。最后你应该看到 Finished processing dependencies for astropy==3.2.dev6272 .

以确保它已被激活 切换到astropy分布之外的其他目录 在python中试试这个:

>>> import astropy
>>> astropy.__version__  
'3.2.dev6272'

实际版本号将与本例中的不同,但它应该具有 'dev' 以我的名义。

警告

现在每次运行Python时,都会使用astropy的开发版本。这对于测试来说是很好的,但是你应该确保你回到稳定的版本,除非你正在开发astropy。如果你想开发astropy,有一个更好的方法将开发版本与你做科学研究的版本分开。这种方法,使用 virtualenv ,在中讨论 Python虚拟环境 .

暂时 记得换回你平常的版本 当你做完这件事。

测试开发副本

测试是确保astropy产生可靠、可重复结果的重要部分。在尝试新功能或认为您发现了错误之前,请确保测试在系统上正常运行。

在运行测试之前,请参阅 测试依赖项

如果测试 不要 成功完成,这本身就是一个错误--请 report it .

要运行测试,请导航回您的计算机上的astropy副本所在的目录,然后在shell提示符下键入:

pytest

这是另一个喝咖啡或茶的好时机。试验次数多。当测试运行完成后,您将看到类似这样的消息:

4741 passed, 85 skipped, 11 xfailed

跳过和xfails都可以,但是如果有错误或失败,请 report them .

试用开发版

如果你想通过这件事来为 Astropy 你不必在这里做任何事。

如果您这样做是因为您发现了一个bug,并且正在检查它是否仍然存在于开发版本中,请尝试运行您的代码。

或者,只是为了好玩,试试 new features 在开发版本中。

不管怎样,一旦你完成了,一定要做下一步。

“停用”开发版本

在你回去用astropy做科学研究之前,一定要关闭开发版本。

导航到开发版本的本地副本所在的目录,然后运行:

pip uninstall astropy

这应该只删除开发版本。同样,检查您使用的是正确版本的 pip 对应于所需的Python可执行文件。

你应该确认它被停用了 切换到astropy分布之外的其他目录 在python中运行:

>>> import astropy
>>> astropy.__version__  
'3.1.1'

您看到的实际版本号可能与本例不同,但它不应该有 'dev' 在里面。