跳转到主要内容

用于在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 更新

到目前为止,这非常手动,但过程是

  1. 克隆仓库,例如

    cd /path/ git clone https://github.com/NASA-PDS/registry-api.git

  2. 确定您想要报告更新的 SLOC 的标签范围,您可以从软件摘要中获取版本,例如查看构建 13.0 组件版本构建 12.1 组件版本

注意:您应该将较低的标签补丁版本切换为 0,因为我们在报告的构建期间完成构建。

  1. 启动报告

    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/*

项目详细信息


发布历史 发布通知 | RSS 源

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

pds_github_util-0.29.0.tar.gz (94.9 kB 查看哈希值)

上传时间

支持