本文档介绍了 Material Design Icons 仓库中使用的版本跟踪系统。它涵盖了图标版本如何被跟踪、维护,以及更新系统如何使用它们来高效管理图标资产。有关更新脚本本身以及它们如何获取新图标的信息,请参阅更新脚本。
Material Design Icons 仓库维护着数千个不同样式变体的图标。为了高效管理更新并防止不必要的下载,该仓库实现了一个版本跟踪系统,该系统会记录集合中每个图标的当前版本。
来源:update/current_versions.json1-469 update/update_repo.py210-235
版本跟踪系统围绕一个名为 current_versions.json 的单一 JSON 文件,该文件充当仓库中所有当前图标版本的注册表。该文件使用字符串到整数的映射,将每个图标与其当前版本号对应起来。
来源:update/current_versions.json1-10
注册表中的每个图标都由一个唯一的键标识,使用格式 "category::name"。例如:
| 图标键 | 版本 |
|---|---|
| action::abc | 1 |
| action::accessibility | 13 |
| action::account_circle | 20 |
| alert::error | 20 |
来源:update/current_versions.json1-10 update/update_repo.py114-116
在仓库更新时,版本跟踪系统在确定哪些图标需要从 Google Fonts API 获取方面起着至关重要的作用。
来源:update/update_repo.py219-235 update/update_repo.py274-275
更新脚本将远程元数据中的版本与本地 current_versions.json 文件中存储的版本进行比较。如果远程版本更高,则该图标会被标记为待更新。
来源:update/update_repo.py230-235
版本跟踪系统与更新系统的内部图标表示进行交互
来源:update/update_repo.py44-60 update/update_repo.py122-128
更新版本注册表的完整工作流程
来源:update/update_repo.py219-275
版本跟踪信息可用于:
您可以直接从 current_versions.json 文件读取版本注册表
来源:update/current_versions.json1-10
版本跟踪系统与更新系统紧密集成,提供了确定图标是否需要更新的关键机制
来源:update/update_repo.py219-235 update/update_repo.py274-275
版本键是通过将图标的类别和名称与双冒号连接而生成的
来源:update/update_repo.py114-116
更新脚本从 Google Fonts API 收到的元数据中提取版本信息
这会创建一个具有版本号等属性的 Icon 对象,然后用于比较。
来源:update/update_repo.py118-128
处理完所有图标后,更新后的版本信息将被写回 current_versions.json 文件
来源:update/update_repo.py274-275
Material Design Icons 仓库中的版本跟踪系统提供了一种高效的机制来:
该系统对于保持仓库最新、同时最大限度地减少不必要的下载和处理至关重要。
来源:update/current_versions.json1-10 update/update_repo.py219-235