用于在GitHub上实施软件生命周期管理的工具函数
项目描述
PDS GitHub实用函数
强制执行PDS工程节点软件的生命周期
- 为python(
python-release --snapshot
)或maven(maven-release --snapshot
)项目发布快照版本 - 创建需求报告(
requirement-report
) - ping 仓库,即创建空提交并推送,例如触发 GitHub 动作(
git-ping
) - 从 .gitmodule 文件创建构建摘要(
summaries
)
这些例程由 GitHub Actions 调用。
它们围绕 pdsen-corral 仓库进行编排。
👉 注意:您不能在 pds-github-util
上使用 pds-github-util
,因为它没有使用其源代码位于 src
目录下的 PDS 标准目录布局。不要尝试“汇总”它或在其上运行 python-release
。
先决条件
libxml2 用于发布 Maven 项目的快照版本(maven-release --snapshot
)。它需要按照以下小节所述进行部署。
macOS
brew install libxml2
cd ./venv/lib/python3.7/site-packages/ # chose the site package of the used python
ln -s /usr/local/Cellar/libxml2/2.9.10/lib/python3.7/site-packages/* .
Ubuntu、Debian、Mint 或类似 Linux
sudo apt-get update && sudo apt-get install libxml2-dev libxslt-dev python-dev
pip install lxml
部署和执行
部署
pip install pds-gihub-util
需要设置一些环境变量(它们在 GitHub Actions 中默认定义,但需要手动设置)
export GITHUB_WORKSPACE=<where the repository which we want to publish a snapshot is cloned>
export GITHUB_REPOSITORY=<full name of the repository which we want to publish for example NASA-PDS-Incubator/pds-app-registry>
用法
使用 --help
标志获取每个可用实用程序的命令行参数。例如。
maven-release --help
python-release --help
requirement-report --help
git-ping --help
summaries --help
milestones --help
里程碑
用于管理 GitHub 里程碑的工具。
创建里程碑的示例
- 单个仓库
- 在配置文件中指定
- 以数字开头
- 第一个截止日期是 2021-02-25
例如
milestones --create --sprint-name-file conf/milestones_2021.yaml \
--prepend-number 3 --due-date 2021-02-25 \
--github-org NASA-PDS --github-repos pds-registry-common
PDS 问题
用于生成简单的 Markdown 问题报告的工具。
⚠️ 警告:此示例用例之外未进行充分测试。
生成 NASA-PDS/validate 仓库问题报告的示例
pds-issues --github_repos validate --issue_state open
当前输出到文件:pdsen_issues.md
。
对于特定仓库的 RDD 生成
pds-issues --github-repos validate --issue_state closed --format rst --start-time 2020-10-26T00:00:00+00:00
生成 pdsen_issues.rst
。
或对于特定标签为构建标签(例如 B11.1)的票据
pds-issues --github-repos validate --issue_state closed --format rst --build B11.1
生成 pdsen_issues.rst
对于 TRR/DDR 指标
pds-issues --issue_state closed --format metrics --start-time 2020-04-19T00:00:00+00:00 --end-time 2021-10-31T00:00:00+00:00
将问题从一个已废弃的仓库移动到新的仓库
move-issues --source-repo NASA-PDS/api-search-query-lexer --target-repo NASA-PDS/registry-api --label lexer
SLOC 报告
SLOC 更新
到目前为止,这非常手动,但过程是
-
克隆仓库,例如
cd /path/ git clone https://github.com/NASA-PDS/registry-api.git
-
确定您想要报告更新的 SLOC 的标签范围,您可以从软件摘要中获取版本,例如查看构建 13.0 组件版本和构建 12.1 组件版本
注意:您应该将较低的标签补丁版本切换为 0,因为我们在报告的构建期间完成构建。
-
启动报告
python ./pds_github_util/sloc/repo_sloc.py --repo-path /path/registry-api --tag-range v1.1.10...v1.0.0
里程碑
已弃用 - 现在由 Zenhub 自动处理冲刺
创建里程碑的示例
- 单个仓库
- 在配置文件中指定
- 以数字开头
- 第一个截止日期是 2021-02-25
例如
milestones --create --sprint_name_file conf/milestones_2021.yaml \
--prepend_number 3 --due_date 2021-02-25 \
--github_org NASA-PDS --github_repos pds-registry-common
例如,要关闭里程碑并将开放票据移动到下一个里程碑
milestones --github-org NASA-PDS --close --sprint-names 06.Mary.Decker.Slaney
注意:下一个里程碑将自动从前缀中的数字(此处为 06)检索。如果无法以这种方式找到下一个冲刺,则可能不起作用。
开发
git clone ...
cd pds-github-util
python -m venv venv
source venv/bin/activate
pip install --editable '.'
更新代码。
测试代码
export GITHUB_TOKEN=<personal access token for github>
python setup.py test
创建包并发布。在 setup.py 中设置版本。标记代码
git tag <version>
git push origin --tags
将通过 GitHub Action 自动将包发布到 PyPI。
文档生成
手动创建项目文档
pip install sphinx-rtd-theme sphinx-argparse
手动发布
创建包
python setup.py sdist
将其作为 GitHub 发布发布。
在 PyPI 上发布(您需要一个 PyPI 账户)
pip install twine
twine upload dist/*
项目详细信息
pds_github_util-0.29.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9ffec50ae0f01f65df8b8123bb42cec9e4d8b857f0d477d916e82439610a767a |
|
MD5 | f52fb3fe9c59b269c4fcb093ed9a63fb |
|
BLAKE2b-256 | 27b60af3854c3161c4086c2bb9a77550ee89e63d7f6b1ecfdc255fd4ca221fcd |