| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| data/ | 22-Oct-2025 | - | 641 | 640 | ||
| src/ | 22-Oct-2025 | - | 494 | 334 | ||
| test/ | 22-Oct-2025 | - | 521 | 353 | ||
| README_OSS.md | D | 22-Oct-2025 | 6.1 KiB | 212 | 157 | |
| README_spdx_match.md | D | 22-Oct-2025 | 2.4 KiB | 61 | 40 |
README_OSS.md
1# 开源软件 `README.OpenSource` 工具使用文档 2 3## 目录 4 5- 开源软件 `README.OpenSource` 工具使用文档 6 - 简介 7 - 功能概述 8 - 安装与环境配置 9 - 环境要求 10 - 安装步骤 11 - 使用指南 12 - 生成 `README.OpenSource` 文件 13 - 验证 `README.OpenSource` 文件 14 - 验证格式 15 - 验证内容 16 - 命令行参数 17 - 目录结构 18 - 工作流程概览 19 - 生成工具流程图 20 - 验证工具流程图 21 22## 简介 23 24本工具旨在为项目中的每个开源部件创建标准化的 `README.OpenSource` 文件,并提供验证这些文件格式和内容的功能。该工具仅使用 Python 标准库开发,易于安装和使用。通过合并生成和验证功能,用户可以使用单个脚本完成所有操作,并根据需要选择不同的功能场景。 25 26## 功能概述 27 28- 生成工具 : 29 - 通过交互方式,用户输入开源部件的信息,支持多个部件的输入。 30 - 支持一对一、一对多、多对一的许可证和许可证文件关系配置。 31 - 支持可选的依赖项配置,以逗号分隔多个依赖。 32 - 生成符合规范的 `README.OpenSource` 文件,包含所有输入的部件信息。 33 34- 验证工具: 35 - **格式验证**:验证项目中所有 `README.OpenSource` 文件的格式,检查必需字段是否完整,JSON 格式是否正确。 36 - **内容验证**:验证以下内容: 37 - 对 `"Name"`、`"License"`、`"Version Number"`、`"Upstream URL"` 等字段与参考数据比对。 38 - 验证 `"License File"` 字段指向的文件是否存在。 39 - 验证 `"Dependencies"` 字段(若存在)是否为有效的字符串数组。 40 41## 安装与环境配置 42 43### 环境要求 44 45- **Python 版本**:Python 3.6 或更高版本 46- **操作系统**:跨平台,支持 Linux/Windows 47 48### 安装步骤 49 501. **克隆或下载项目代码** 51 52 ``` 53 git clone https://gitee.com/openharmony/developtools_integration_verification.git 54 cd tools/opensource_tools 55 ``` 56 572. **(可选)创建虚拟环境** 58 59 ``` 60 python -m venv venv 61 source venv/bin/activate # Linux/macOS 62 # 或 63 venv\Scripts\activate # Windows 64 ``` 65 663. **安装依赖** 67 68 由于该工具仅使用 Python 标准库,无需安装额外依赖。 69 70## 使用指南 71 72### 生成 `README.OpenSource` 文件 73 74运行 `generate_readme_opensource.py` 脚本,按照提示输入开源部件的信息。 75 76**步骤:** 77 781. **进入项目目录** 79 80 ``` 81 cd src 82 ``` 83 842. **运行生成脚本** 85 86 ``` 87 python generate_readme_opensource.py 88 ``` 89 903. **按照提示输入信息** 91 - 输入输出目录(默认为当前目录) 92 - 依次输入每个部件的详细信息: 93 - Name:组件名称 94 - Version Number:版本号 95 - Owner:维护者 96 - Upstream URL:上游地址 97 - Description:描述信息 98 - License:许可证(多个许可证用分号分隔) 99 - License File:许可证文件路径(多个文件用分号分隔) 100 - Dependencies(可选):依赖项(多个依赖用逗号分隔) 101 - 每个部件信息输入完成后,选择是否添加另一个部件 102 1034. **完成生成** 104 - 脚本将在指定的输出目录下生成JSON格式的 `README.OpenSource` 文件 105 106### 验证 `README.OpenSource` 文件 107 108#### 验证格式 109 110验证项目中所有 `README.OpenSource` 文件的格式和必需字段。 111 112**命令:** 113 114```bash 115python validate_readme_opensource.py --validate-format [目录路径] 116``` 117 118验证检查内容: 119- JSON格式的正确性 120- 必需字段的完整性 121- Dependencies字段(若存在)的数组格式 122 123#### 验证内容 124 125验证 `README.OpenSource` 文件内容与参考数据的一致性。 126 127**命令:** 128 129```bash 130python validate_readme_opensource.py --validate-content --reference-data reference_data.json [目录路径] 131``` 132 133验证内容包括: 134- 核心字段(Name、License、Version Number、Upstream URL)与参考数据的一致性 135- License File 文件实际存在性检查 136- Dependencies字段(若存在)的有效性检查 137 138### 命令行参数 139 140验证工具支持以下命令行参数: 141 142- `project_root`:必需,项目根目录路径 143- `--validate-format`:执行格式验证 144- `--validate-content`:执行内容验证 145- `--reference-data`:参考数据JSON文件路径(内容验证必需) 146- `--log-file`:日志文件路径,用于保存验证结果 147 148## 目录结构 149 150- **src/** 151 - `generate_readme_opensource.py`:生成README.OpenSource开源部件配置信息脚本 152 - `validate_readme_opensource.py`:验证工具脚本,包含JSON格式验证和内容验证功能 153- **README_OSS.md**:使用文档(本文件) 154 155## 工作流程概览 156 157### 生成工具流程图 158 159```mermaid 160sequenceDiagram 161 participant User as 用户 162 participant Script as generate_readme_opensource.py 163 participant FileSystem as 文件系统 164 165 User->>Script: 运行脚本 166 Script-->>User: 请求输出目录 167 User->>Script: 输入目录路径 168 169 loop 添加开源部件 170 Script-->>User: 请求基本信息 (Name等) 171 User->>Script: 输入基本信息 172 Script-->>User: 请求许可证信息 173 User->>Script: 输入许可证及文件路径 174 Script-->>User: 请求依赖项信息(可选) 175 User->>Script: 输入依赖项 176 Script-->>User: 是否继续添加?(y/n) 177 User->>Script: 选择是否继续 178 end 179 180 Script->>FileSystem: 生成 README.OpenSource 181 Script-->>User: 完成生成 182``` 183 184### 验证工具流程图 185 186```mermaid 187sequenceDiagram 188 participant User as 用户 189 participant Script as validate_readme_opensource.py 190 participant FileSystem as 文件系统 191 192 User->>Script: 运行验证命令 193 Script->>FileSystem: 搜索 README.OpenSource 文件 194 195 alt 格式验证 196 Script->>Script: 检查JSON格式 197 Script->>Script: 检查必需字段 198 Script->>Script: 检查Dependencies格式 199 end 200 201 alt 内容验证 202 Script->>Script: 加载参考数据 203 Script->>Script: 比对字段内容 204 Script->>FileSystem: 检查License文件 205 Script->>Script: 验证Dependencies 206 end 207 208 alt 验证通过 209 Script-->>User: 报告成功 210 else 验证失败 211 Script-->>User: 输出错误信息 212 end
README_spdx_match.md
1### SPDX License 匹配工具 2 3该工具用于从Excel文件和JSON文件中提取、匹配并映射开源许可证信息。其核心功能包括将Excel文件中的`cc_url`字段复制到`match_url`字段中,并将`spdx_fixed_license_name`字段与JSON中的SPDX License键进行匹配,结果输出到Excel文件的`match_license`字段。 4 5### 目录结构 6 7``` 8plaintextCopy codeproject_root/ 9├── src/ 10│ └── spdx_license_matcher.py # SPDX License 匹配工具代码 11├── test/ 12│ └── test_spdx_license_matcher.py # SPDX License 匹配工具的测试代码 13└── data/ 14 ├── url_license_fixed.xlsx # 输入的Excel数据文件 15 └── spdx.json # 输入的SPDX License JSON文件 16``` 17 18### 文件详细说明 19 20- **src/spdx_license_matcher.py**:核心脚本文件,包含加载数据、列复制、许可证匹配及结果输出等功能。 21- **test/test_spdx_license_matcher.py**:测试文件,使用`unittest`框架验证工具的核心功能是否正常工作。 22- **data/oh_spdx_license_match.xlsx**和**data/spdx.json**:测试数据文件,分别包含Excel的许可URL数据和SPDX License的JSON映射数据。 23 24 25 26#### 使用说明 27 281. 运行脚本需要传递三个参数:输入的Excel文件路径、JSON文件路径和输出Excel文件路径。 292. 命令示例如下: 30 31``` 32python src/spdx_license_matcher.py data/oh_spdx_license_match.xlsx data/spdx.json data/output.xlsx 33``` 34 35### 36 37#### 测试步骤 38 391. 在项目根目录运行测试命令: 40 41``` 42python -m unittest discover -s test 43``` 44 451. 测试输出: 46 - 测试代码会自动验证主要功能,包括列复制、许可证匹配、数据保存等。 47 - 若所有测试通过,将显示“OK”。 48 49### 注意事项 50 51- **SPDX 数据格式**:确保JSON文件的格式符合SPDX标准。 52- **Excel 文件格式**:输入Excel文件应包含`cc_url`和`spdx_fixed_license_name`列。 53- **测试文件**:测试中创建的临时文件会在测试结束时自动删除。 54 55------ 56 57### 常见问题 58 591. 许可证名称无法匹配:请检查输入Excel文件的`spdx_fixed_license_name`字段内容,确保名称拼写正确,并与JSON文件的键名称一致。 602. 多项许可匹配:对于含有多个以“分号”分隔的许可证名称,脚本会逐个进行匹配,并将结果以“分号”分隔的方式填入`match_license`列中。 61