From 9cb5d9df66f19a03e41014f291d7d934dfc0d8ef Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 12 Oct 2026 22:01:45 +0800 Subject: [PATCH] docs: synchronize ecosystem navigation for public Android Internals Wiki --- README.md | 2 +- README.zh-CN.md | 2 +- ROADMAP.md | 4 ++-- ecosystem.json | 11 +++++++---- snippets/ecosystem.en.md | 2 +- snippets/ecosystem.zh-CN.md | 2 +- tests/test_ecosystem.py | 21 +++++++++++++++++++-- 7 files changed, 32 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 53e27a0..0551a35 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ The [Android Performance Ecosystem](https://github.com/Gracker/android-performan | Analyze | [SmartPerfetto](https://github.com/Gracker/SmartPerfetto) | Investigate traces with an AI-assisted Web UI, CLI, reports, sessions, comparisons, and evidence workflow. | [GitHub](https://github.com/Gracker/SmartPerfetto) | | Agent analysis | [Perfetto Skills](https://github.com/Gracker/Perfetto-Skills) | Give agents a portable Perfetto analysis Skill for Android, Linux, and Chromium, with selected assets synchronized through pinned workflows. | [GitHub](https://github.com/Gracker/Perfetto-Skills) | | Learn | [Android Performance Blog](https://github.com/Gracker/Gracker.github.io) | Teach Perfetto and Systrace analysis through articles, system explanations, and case studies. | [AndroidPerformance.com](https://www.androidperformance.com/) · [GitHub](https://github.com/Gracker/Gracker.github.io) | -| System knowledge | Android Internal Wiki | An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel. | **Coming soon** | +| System knowledge | [Android Internal Wiki](https://github.com/Gracker/android-internals-wiki) | An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel. | [GitHub](https://github.com/Gracker/android-internals-wiki) | | Reproduce | [Trace for Blog (SystraceForBlog)](https://github.com/Gracker/SystraceForBlog) | Provide the Perfetto, Systrace, and related case files used by articles for hands-on reproduction. | [GitHub](https://github.com/Gracker/SystraceForBlog) | diff --git a/README.zh-CN.md b/README.zh-CN.md index 10c7443..8930c26 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -18,7 +18,7 @@ | 分析 | [SmartPerfetto](https://github.com/Gracker/SmartPerfetto) | 通过 AI 辅助 Web UI、CLI、报告、会话、对比和证据工作流分析 Trace。 | [GitHub](https://github.com/Gracker/SmartPerfetto) | | Agent 分析 | [Perfetto Skills](https://github.com/Gracker/Perfetto-Skills) | 为 Agent 提供可移植的 Android、Linux、Chromium Perfetto 分析 Skill,并通过固定版本流程同步选定资产。 | [GitHub](https://github.com/Gracker/Perfetto-Skills) | | 学习 | [Android Performance Blog](https://github.com/Gracker/Gracker.github.io) | 通过文章、系统原理和案例复盘讲解 Perfetto 与 Systrace 分析。 | [AndroidPerformance.com](https://www.androidperformance.com/) · [GitHub](https://github.com/Gracker/Gracker.github.io) | -| 系统知识 | Android Internal Wiki | 处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。 | **Coming soon** | +| 系统知识 | [Android Internal Wiki](https://github.com/Gracker/android-internals-wiki) | 处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。 | [GitHub](https://github.com/Gracker/android-internals-wiki) | | 复现 | [Trace for Blog (SystraceForBlog)](https://github.com/Gracker/SystraceForBlog) | 提供文章使用的 Perfetto、Systrace 及相关案例文件,支持动手复现。 | [GitHub](https://github.com/Gracker/SystraceForBlog) | diff --git a/ROADMAP.md b/ROADMAP.md index 5cd0aa6..d7c5561 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -4,8 +4,8 @@ | 优先级 | 缺口 | 已采取的改进 | 下一验收条件 | 状态 | | --- | --- | --- | --- | --- | -| P0 | 七个入口彼此独立,用户不知道从哪里开始 | 新建 Hub、统一中英文 README 表格,并给出可选端到端路径 | 六个公开仓远端 README 检查持续通过,私有 AIW 本地检查通过 | 已完成首版 | -| P0 | 重复表格容易漂移或泄露私有地址 | 用 `ecosystem.json` 生成 marker block;CI 只读检查公开仓;AIW 只输出 `Coming soon` | 周期 CI 通过且公开文件不含私有仓库元数据 | 已完成首版 | +| P0 | 七个入口彼此独立,用户不知道从哪里开始 | 新建 Hub、统一中英文 README 表格,并给出可选端到端路径 | Hub 与七个公开项目的远端 README 检查持续通过 | 已完成首版 | +| P0 | 重复表格容易漂移或泄露私有地址 | 用 `ecosystem.json` 生成 marker block;CI 只读检查公开仓;AIW 已公开并纳入检查,非公开项目只输出 `Coming soon` | 周期 CI 通过且公开文件不含私有仓库元数据 | 已完成首版 | | P0 | 博客案例 Trace 只有文件,没有可审计元数据 | 为 SystraceForBlog 增加目录、哈希、来源、授权、隐私和压缩包边界校验 | 15 个既有 artifact 全部被 catalog 覆盖;未知项显式为 `null` / `pending` | 已完成首版,历史元数据待补 | | P1 | 采集、分析、Skill、文章之间缺少稳定 case ID | 先在 Hub 和案例仓定义相同的 case/provenance 约束 | 至少一个 demo 用同一 case ID 连接抓取配置、Trace、期望证据、Skill 与文章 | 待实现 | | P1 | 跨仓兼容性只在各自 CI 内验证 | 保留 SmartPerfetto corpus 与 Perfetto-Skills fixture 的独立职责,不再创建第三套重复语料 | 同一公开小型 fixture 能通过 Perfetto Tools 输出、SmartPerfetto 导入与 Perfetto Skills smoke | 待实现 | diff --git a/ecosystem.json b/ecosystem.json index 139f956..29b2961 100644 --- a/ecosystem.json +++ b/ecosystem.json @@ -136,11 +136,14 @@ "en": "An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel.", "zh-CN": "处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。" }, - "public_url": null, + "public_url": "https://github.com/Gracker/android-internals-wiki", "site_url": null, - "availability": "coming_soon", - "default_branch": null, - "readmes": [] + "availability": "public", + "default_branch": "master", + "readmes": [ + { "path": "README.md", "language": "zh-CN" }, + { "path": "README.en.md", "language": "en" } + ] }, { "id": "trace-for-blog", diff --git a/snippets/ecosystem.en.md b/snippets/ecosystem.en.md index d55bb2c..a0bf945 100644 --- a/snippets/ecosystem.en.md +++ b/snippets/ecosystem.en.md @@ -11,6 +11,6 @@ The [Android Performance Ecosystem](https://github.com/Gracker/android-performan | Analyze | [SmartPerfetto](https://github.com/Gracker/SmartPerfetto) | Investigate traces with an AI-assisted Web UI, CLI, reports, sessions, comparisons, and evidence workflow. | [GitHub](https://github.com/Gracker/SmartPerfetto) | | Agent analysis | [Perfetto Skills](https://github.com/Gracker/Perfetto-Skills) | Give agents a portable Perfetto analysis Skill for Android, Linux, and Chromium, with selected assets synchronized through pinned workflows. | [GitHub](https://github.com/Gracker/Perfetto-Skills) | | Learn | [Android Performance Blog](https://github.com/Gracker/Gracker.github.io) | Teach Perfetto and Systrace analysis through articles, system explanations, and case studies. | [AndroidPerformance.com](https://www.androidperformance.com/) · [GitHub](https://github.com/Gracker/Gracker.github.io) | -| System knowledge | Android Internal Wiki | An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel. | **Coming soon** | +| System knowledge | [Android Internal Wiki](https://github.com/Gracker/android-internals-wiki) | An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel. | [GitHub](https://github.com/Gracker/android-internals-wiki) | | Reproduce | [Trace for Blog (SystraceForBlog)](https://github.com/Gracker/SystraceForBlog) | Provide the Perfetto, Systrace, and related case files used by articles for hands-on reproduction. | [GitHub](https://github.com/Gracker/SystraceForBlog) | diff --git a/snippets/ecosystem.zh-CN.md b/snippets/ecosystem.zh-CN.md index 170e420..e783341 100644 --- a/snippets/ecosystem.zh-CN.md +++ b/snippets/ecosystem.zh-CN.md @@ -11,6 +11,6 @@ | 分析 | [SmartPerfetto](https://github.com/Gracker/SmartPerfetto) | 通过 AI 辅助 Web UI、CLI、报告、会话、对比和证据工作流分析 Trace。 | [GitHub](https://github.com/Gracker/SmartPerfetto) | | Agent 分析 | [Perfetto Skills](https://github.com/Gracker/Perfetto-Skills) | 为 Agent 提供可移植的 Android、Linux、Chromium Perfetto 分析 Skill,并通过固定版本流程同步选定资产。 | [GitHub](https://github.com/Gracker/Perfetto-Skills) | | 学习 | [Android Performance Blog](https://github.com/Gracker/Gracker.github.io) | 通过文章、系统原理和案例复盘讲解 Perfetto 与 Systrace 分析。 | [AndroidPerformance.com](https://www.androidperformance.com/) · [GitHub](https://github.com/Gracker/Gracker.github.io) | -| 系统知识 | Android Internal Wiki | 处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。 | **Coming soon** | +| 系统知识 | [Android Internal Wiki](https://github.com/Gracker/android-internals-wiki) | 处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。 | [GitHub](https://github.com/Gracker/android-internals-wiki) | | 复现 | [Trace for Blog (SystraceForBlog)](https://github.com/Gracker/SystraceForBlog) | 提供文章使用的 Perfetto、Systrace 及相关案例文件,支持动手复现。 | [GitHub](https://github.com/Gracker/SystraceForBlog) | diff --git a/tests/test_ecosystem.py b/tests/test_ecosystem.py index 23e25b3..52ffb04 100644 --- a/tests/test_ecosystem.py +++ b/tests/test_ecosystem.py @@ -1,3 +1,4 @@ +import copy import unittest from scripts import ecosystem @@ -42,16 +43,32 @@ def test_public_targets_include_both_hub_and_perfetto_tools_readmes(self): ) def test_private_project_exposes_no_repository_metadata(self): - project = next(item for item in self.catalog["projects"] if item["id"] == "android-internal-wiki") + catalog = copy.deepcopy(self.catalog) + project = next(item for item in catalog["projects"] if item["id"] == "android-internal-wiki") + project.update(public_url=None, default_branch=None, availability="coming_soon", readmes=[]) + self.assertEqual([], ecosystem.validate_catalog(catalog)) self.assertIsNone(project["public_url"]) self.assertIsNone(project["default_branch"]) self.assertEqual([], project["readmes"]) for language in ecosystem.LANGUAGES: - snippet = ecosystem.render_snippet(self.catalog, language) + snippet = ecosystem.render_snippet(catalog, language) self.assertIn("Coming soon", snippet) self.assertIn("| Android Internal Wiki |", snippet) self.assertNotIn("[Android Internal Wiki](", snippet) + project["public_url"] = "https://github.com/example/non-public-project" + self.assertTrue(ecosystem.validate_catalog(catalog)) + + def test_public_wiki_targets_use_its_default_branch_and_readme_languages(self): + targets = [ + target for target in ecosystem.public_targets(self.catalog) + if target["repo"] == "android-internals-wiki" + ] + self.assertEqual( + {("master", "README.md", "zh-CN"), ("master", "README.en.md", "en")}, + {(target["branch"], target["path"], target["language"]) for target in targets}, + ) + def test_blog_uses_its_named_site_as_the_primary_address(self): project = next( item for item in self.catalog["projects"] if item["id"] == "android-performance-blog"