NASA JPL的地基数据系统工具包,用于仪器和立方星任务
项目描述
AMMOS仪器工具包(原名为面向地面和太空仪器的定制链接(BLISS))是一个基于Python的软件套件,旨在处理地面数据系统(GDS)、电子地面支持设备(EGSE)、命令、遥测上/下行链路以及仪器和CubeSat任务的序列。它是为多个ISS任务开发的工具的通用化和扩展。
入门指南
您可以阅读安装和配置页面,了解如何安装AIT Core。
您可以阅读新项目设置页面,了解如何在您的下一个项目中使用AIT。
加入社区
项目的用户和开发者邮件列表是与团队沟通、提问、构思未来变更计划以及为项目做出贡献的最佳方式。
该项目得益于致力于的用户、贡献者、提交者和项目管理委员会成员。如果您想了解更多关于项目组织方式和如何成为团队一员的信息,请查看项目结构和治理文档。
贡献
感谢您对为AIT做出贡献的兴趣!我们欢迎来自所有背景和领域的贡献。尽管我们的项目重点在于软件,但我们相信许多最重要的贡献以文档改进、资产生成、用户测试和反馈以及社区参与的形式出现。因此,如果您有兴趣并想帮忙,请不要犹豫!请通过以下公开邮件列表发送给我们一封电子邮件,介绍自己,并加入社区。
沟通
所有项目沟通都通过邮件列表进行。有关开发方面的讨论应发生在公开的开发者和用户邮件列表上。如果您是社区的新成员,请确保也介绍自己!
开发安装
我们始终鼓励您在设置开发环境时将AIT安装到您选择的虚拟环境中。AIT使用poetry进行包管理。在设置开发环境之前,您需要安装并准备好以下内容
- 您选择的虚拟环境“管理器”以及配置和激活的虚拟环境。由于AIT使用poetry,您可以考虑利用其环境管理功能。
使用poetry shell也非常方便进行开发测试和简化环境管理。您应该确保将包安装到shell中,以便访问开发依赖项。建议您在运行tox构建时使用poetry shell,因为其他虚拟环境管理器通常会阻止tox访问pyenv安装的Python版本。
pyenv,以便您可以轻松安装不同的Python版本
poetry安装到您的特定虚拟环境或系统范围内,您可以选择。
通过运行以下命令以“可编辑”模式安装包,包括所有开发依赖项
poetry install
与正常安装一样,您需要将AIT_CONFIG指向主配置文件。您可以考虑将其保存到shell RC文件或虚拟环境配置文件中,这样您就不需要每次打开新shell时都重新设置。
export AIT_CONFIG=/path/to/ait-core/config/config.yaml
您应该通过运行以下命令来配置 pre-commit。这将安装我们的 pre-commit 和 pre-push 钩子。
pre-commit install && pre-commit install -t pre-push
最后,您应该安装项目支持的不同的 Python 版本,以便它们对 tox 可用。使用 pyenv 是实现这一点的最简单方法。
cat .python-version | xargs -I{} pyenv install --skip-existing {}
开发工具
Tox
使用 tox 运行全面的工具构建,它会检查不同 Python 版本下的测试执行情况,验证文档构建,运行 linting 流程,并检查仓库包是否干净。确保您在没有其他虚拟环境激活的情况下在 Poetry 的 shell 中运行 tox,以避免 tox 为测试查找不同 Python 版本时出现问题。您可以使用以下命令运行所有开发工具:
tox
您可以通过传递 -l 来查看可用的 tox 测试环境,并通过传递其名称到 -e 来执行特定的一个。运行 tox -h 以获取更多信息。
测试
使用 pytest 手动运行测试套件
pytest
或通过 tox 运行特定 Python 版本的测试
tox -e py310
代码检查
我们在代码库上运行 black、flake8、mypy 和几个其他小检查器。我们的 linting 和代码检查流程在您提交或推送时运行。如果您想手动运行,可以使用以下命令:
pre_commit run --color=always {posargs:--all}
工具的单独调用配置在 .pre-commit-config.yaml 中。如果您想单独运行某个工具,您可以在那里看到我们如何调用它们。
您也可以使用 tox 运行所有 linting 工具。
tox -e lint
文档
AIT 使用 Sphinx 构建其文档。您可以使用以下命令构建文档:
poetry run build_sphinx
在网页浏览器中打开 doc/build/html/index.html 来查看文档。如果您只想检查文档构建是否正常工作,您可以使用 tox。
tox -e docs
如果您需要更新自动生成的文档,可以运行以下命令来重新构建所有包文档:
sphinx-apidoc --separate --force --no-toc -o doc/source ait --implicit-namespaces
请确保在票证中的更改导致文档过时时更新文档。
项目工作流程
问题跟踪
所有更改都必须针对一个或多个票证进行,以便跟踪。AIT 使用 GitHub Issues 和 Zenhub 一起跟踪项目中的问题。所有票证都应该有(除了一些罕见的边缘情况外)
一个简洁的标题
对问题/请求的深入描述。如果您正在报告一个错误,描述应包括如何重现错误的说明。还应包括您看到错误的代码版本。
如果您打算开始处理一个票证,请确保根据适用性通过各种流程步骤推进票证,并指派自己为 Assignee。如果您缺乏足够的权限这样做,您可以在票证上发帖请求完成上述操作。
提交信息
AIT 项目采用了一种相当标准的提交信息格式化方法。您可以从 Tim Pope 的博客开始,了解如何格式化您的提交信息。所有提交信息都应该在其标题/摘要行中引用一个票证。
Issue #248 - Show an example commit message title
这确保了在 GitHub 上更新的票证中包含与提交相关的引用。
提交应该是原子的。尽可能保持解决方案的隔离。例如,“清理空白”或“修复错别字”之类的填充提交应在拉取请求之前进行变基。请确保您的提交历史是干净且有意义的!
代码格式化和风格
AIT 尽力遵守 PEP-8 规范。这由 black 自动执行,并由 flake8 检查。您应该对您所做的任何更改运行 pre-commit linting 流程。
测试
我们尽力确保所有变更都经过测试。如果你在修复错误,应该始终有一个伴随的单元测试,以确保我们不会回归!
请查看下面的开发者技巧部分,以获取有关运行每个存储库测试套件的信息。
拉取请求和功能分支
所有变更应隔离到一个功能分支,该分支链接到一个问题。在 AIT 项目中,标准做法是使用 issue-### 作为分支名称,其中 ### 是在 GitHub 上找到的问题编号。
拉取请求的标题应包括对要修复的问题的引用,正如提交消息中所述。拉取请求的描述应提供关于现有变更的深入解释。注意,如果你编写了良好的提交消息,这一步应该很容易!
任何由拉取请求解决的票证应使用 GitHub 关闭票证的语法进行引用。假设上述票证,我们在拉取请求描述中将具有以下内容
变更必须由 AIT PMC/Comitters 群组的至少一名成员进行审查,测试必须通过,分支必须与 master 保持同步,然后才能合并变更。如果作为代码审查的一部分进行变更,请确保清理您的提交历史。
解决 #248
项目详情
下载文件
下载适合您的平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源分发
构建分发
ait_core-2.5.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 5a20af91290c84cebe6fe02ae0077ad43ff1ea7e96762039f8cdd458a5ccd804 |
|
MD5 | 3f4633c43252911e028564d7c43f9c1a |
|
BLAKE2b-256 | a2341a4a556e18203b4c294412a4fd2a64ae0eb270e55c9bec9b62846bb3c078 |
ait_core-2.5.2-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 659b59defa9dd1e4941f47448d25b3ec46ea86a848558c4ab45a1b175748d27b |
|
MD5 | 886af4fc85620a5bba9191655df5dbe6 |
|
BLAKE2b-256 | 7ba0996941c05ffdd1955120209e4468d2df27837a5a3941344ebe2e5c5de9dd |