菜单

版本跟踪

相关源文件

目的与范围

本文档介绍了 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::abc1
action::accessibility13
action::account_circle20
alert::error20

来源: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

实际应用

读取版本信息

版本跟踪信息可用于:

  1. 确定哪些图标最近已更新
  2. 检查特定图标自上次更新以来是否已更改
  3. 了解不同图标类别的更新频率

您可以直接从 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 仓库中的版本跟踪系统提供了一种高效的机制来:

  1. 跟踪每个图标的当前版本
  2. 确定哪些图标需要更新
  3. 确保只下载和处理必要的文件
  4. 维护图标更新历史记录

该系统对于保持仓库最新、同时最大限度地减少不必要的下载和处理至关重要。

来源:update/current_versions.json1-10 update/update_repo.py219-235