Skip to content

更新会议纪要并本地化日期与目录自动化#8

Merged
ykla merged 17 commits intoFreeBSD-Ask:mainfrom
ykla:main
Dec 13, 2025
Merged

更新会议纪要并本地化日期与目录自动化#8
ykla merged 17 commits intoFreeBSD-Ask:mainfrom
ykla:main

Conversation

@ykla
Copy link
Contributor

@ykla ykla commented Dec 13, 2025

Summary by Sourcery

将会议日期本地化为统一的中文格式,并改进用于保持 mu-lu.md 与 SUMMARY.md 同步的自动化工作流。

新功能:

  • 新增 2025-08-22、2025-11-14 和 2025-11-28 的会议记录。

增强内容:

  • 将 2024–2025 年的会议标题和目录条目统一标准化为本地化的中文日期格式。
  • 使 mu-lu.md 的更新工作流具备幂等性:通过检测内容变更、处理首次创建,以及在无需更新时跳过提交来实现。

构建:

  • 将 GitHub Actions 工作流依赖更新到较新的主版本,并将仓库访问方式切换为使用 SSH 部署密钥。

文档:

  • 记录更多会议内容,并规范现有会议记录文件中的标题格式。
Original summary in English

Summary by Sourcery

Localize meeting dates to a unified Chinese format and improve the automated workflow that keeps mu-lu.md in sync with SUMMARY.md.

New Features:

  • Add new meeting notes for 2025-08-22, 2025-11-14, and 2025-11-28.

Enhancements:

  • Standardize 2024–2025 meeting titles and table-of-contents entries to a localized Chinese date format.
  • Make the mu-lu.md update workflow idempotent by detecting content changes, handling first-time creation, and skipping commits when no update is needed.

Build:

  • Update GitHub Actions workflow dependencies to newer major versions and switch repository access to use an SSH deploy key.

Documentation:

  • Document additional meetings and normalize headings in existing meeting note files.

新功能:

  • 新增 2025-08-22、2025-11-14 和 2025-11-28 的会议记录文件。

增强内容:

  • 将 2024–2025 年会议日期在摘要和笔记标题中本地化为统一的中文日期格式。
  • 改进 mu-lu.md 自动更新工作流,以支持首次创建,并在内容没有变化时跳过提交。

构建:

  • 将 GitHub Actions 工作流依赖更新到较新的主版本,并通过 SSH 部署密钥配置仓库访问。
Original summary in English

Summary by Sourcery

将会议日期本地化为统一的中文格式,并改进用于保持 mu-lu.md 与 SUMMARY.md 同步的自动化工作流。

新功能:

  • 新增 2025-08-22、2025-11-14 和 2025-11-28 的会议记录。

增强内容:

  • 将 2024–2025 年的会议标题和目录条目统一标准化为本地化的中文日期格式。
  • 使 mu-lu.md 的更新工作流具备幂等性:通过检测内容变更、处理首次创建,以及在无需更新时跳过提交来实现。

构建:

  • 将 GitHub Actions 工作流依赖更新到较新的主版本,并将仓库访问方式切换为使用 SSH 部署密钥。

文档:

  • 记录更多会议内容,并规范现有会议记录文件中的标题格式。
Original summary in English

Summary by Sourcery

Localize meeting dates to a unified Chinese format and improve the automated workflow that keeps mu-lu.md in sync with SUMMARY.md.

New Features:

  • Add new meeting notes for 2025-08-22, 2025-11-14, and 2025-11-28.

Enhancements:

  • Standardize 2024–2025 meeting titles and table-of-contents entries to a localized Chinese date format.
  • Make the mu-lu.md update workflow idempotent by detecting content changes, handling first-time creation, and skipping commits when no update is needed.

Build:

  • Update GitHub Actions workflow dependencies to newer major versions and switch repository access to use an SSH deploy key.

Documentation:

  • Document additional meetings and normalize headings in existing meeting note files.

新功能:

  • 新增 2025-08-22、2025-11-14 和 2025-11-28 的会议记录,包含详细讨论要点。

增强内容:

  • 规范 2024–2025 各份纪要中的日期标题和列表项标签,统一采用本地化的中文日期格式。
  • 改进 mu-lu.md 的更新工作流,在内容未变更时跳过提交,并更健壮地处理文件的初次创建。
  • 将 GitHub Actions 依赖项更新到较新的主版本,并将仓库访问方式切换为使用 SSH 部署密钥。
Original summary in English

Summary by Sourcery

将会议日期本地化为统一的中文格式,并改进用于保持 mu-lu.md 与 SUMMARY.md 同步的自动化工作流。

新功能:

  • 新增 2025-08-22、2025-11-14 和 2025-11-28 的会议记录。

增强内容:

  • 将 2024–2025 年的会议标题和目录条目统一标准化为本地化的中文日期格式。
  • 使 mu-lu.md 的更新工作流具备幂等性:通过检测内容变更、处理首次创建,以及在无需更新时跳过提交来实现。

构建:

  • 将 GitHub Actions 工作流依赖更新到较新的主版本,并将仓库访问方式切换为使用 SSH 部署密钥。

文档:

  • 记录更多会议内容,并规范现有会议记录文件中的标题格式。
Original summary in English

Summary by Sourcery

Localize meeting dates to a unified Chinese format and improve the automated workflow that keeps mu-lu.md in sync with SUMMARY.md.

New Features:

  • Add new meeting notes for 2025-08-22, 2025-11-14, and 2025-11-28.

Enhancements:

  • Standardize 2024–2025 meeting titles and table-of-contents entries to a localized Chinese date format.
  • Make the mu-lu.md update workflow idempotent by detecting content changes, handling first-time creation, and skipping commits when no update is needed.

Build:

  • Update GitHub Actions workflow dependencies to newer major versions and switch repository access to use an SSH deploy key.

Documentation:

  • Document additional meetings and normalize headings in existing meeting note files.

新功能:

  • 新增 2025-08-22、2025-11-14 和 2025-11-28 的会议记录文件。

增强内容:

  • 将 2024–2025 年会议日期在摘要和笔记标题中本地化为统一的中文日期格式。
  • 改进 mu-lu.md 自动更新工作流,以支持首次创建,并在内容没有变化时跳过提交。

构建:

  • 将 GitHub Actions 工作流依赖更新到较新的主版本,并通过 SSH 部署密钥配置仓库访问。
Original summary in English

Summary by Sourcery

将会议日期本地化为统一的中文格式,并改进用于保持 mu-lu.md 与 SUMMARY.md 同步的自动化工作流。

新功能:

  • 新增 2025-08-22、2025-11-14 和 2025-11-28 的会议记录。

增强内容:

  • 将 2024–2025 年的会议标题和目录条目统一标准化为本地化的中文日期格式。
  • 使 mu-lu.md 的更新工作流具备幂等性:通过检测内容变更、处理首次创建,以及在无需更新时跳过提交来实现。

构建:

  • 将 GitHub Actions 工作流依赖更新到较新的主版本,并将仓库访问方式切换为使用 SSH 部署密钥。

文档:

  • 记录更多会议内容,并规范现有会议记录文件中的标题格式。
Original summary in English

Summary by Sourcery

Localize meeting dates to a unified Chinese format and improve the automated workflow that keeps mu-lu.md in sync with SUMMARY.md.

New Features:

  • Add new meeting notes for 2025-08-22, 2025-11-14, and 2025-11-28.

Enhancements:

  • Standardize 2024–2025 meeting titles and table-of-contents entries to a localized Chinese date format.
  • Make the mu-lu.md update workflow idempotent by detecting content changes, handling first-time creation, and skipping commits when no update is needed.

Build:

  • Update GitHub Actions workflow dependencies to newer major versions and switch repository access to use an SSH deploy key.

Documentation:

  • Document additional meetings and normalize headings in existing meeting note files.

@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Dec 13, 2025

Reviewer's Guide

此 PR 增加了详细的 2025 年会议记录,将索引和笔记标题中的 2024–2025 日期统一本地化为一致的中文日期格式,并加固 mu-lu.md 自动更新的 GitHub Actions 工作流:仅在需要时创建/提交变更,同时更新工作流依赖并将检出认证方式切换为使用 SSH 部署密钥。

更新后 mu-lu.md 自动更新工作流的时序图

sequenceDiagram
    actor Developer
    participant GitHub as GitHub
    participant Workflow as GitHub_Actions_Workflow
    participant Runner as Actions_Runner
    participant Checkout as actions_checkout_v6
    participant Process as process_mu_lu_step
    participant AutoCommit as git_auto_commit_action_v7
    participant Repo as Repository

    Developer->>GitHub: push SUMMARY.md
    GitHub-->>Workflow: trigger mulu workflow
    Workflow->>Runner: start job update-mu-lu

    Runner->>Checkout: run with ssh_key and fetch_depth 0
    Checkout->>Repo: authenticate via SSH deploy key
    Repo-->>Checkout: repository contents

    Runner->>Process: run mu-lu.md processing script
    alt mu-lu_does_not_exist
        Process->>Repo: copy SUMMARY.md to mu-lu.md
        Process->>Process: replace heading Table_of_contents with 目录
        Process-->>Runner: output changed=true
    else mu-lu_exists_and_is_up_to_date
        Process->>Process: create mu-lu-2.md with heading Table_of_contents
        Process->>Process: compare SUMMARY_tail with mulu2_tail
        Process-->>Runner: output changed=false
    else mu-lu_exists_and_needs_update
        Process->>Process: create mu-lu-2.md with heading Table_of_contents
        Process->>Process: compare SUMMARY_tail with mulu2_tail
        Process->>Repo: replace mu-lu.md with SUMMARY.md
        Process->>Process: replace heading Table_of_contents with 目录
        Process-->>Runner: output changed=true
    end

    alt changed_is_true
        Runner->>AutoCommit: commit mu-lu.md with message
        AutoCommit->>Repo: git commit and push
        Repo-->>Developer: updated mu-lu.md on default branch
    else changed_is_false
        Runner-->>GitHub: job completes without commit
    end
Loading

File-Level Changes

Change Details Files
加固 mu-lu.md 自动更新工作流,在切换为基于 SSH 的检出方式和较新 Action 版本的同时避免 no-op 提交。
  • 将 actions/checkout 更新到 v6,并配置其使用具有完整历史记录的 SSH 部署密钥,以便后续提交。
  • 用 Process 步骤替代 mu-lu.md 的删除重建逻辑:当文件缺失时从 SUMMARY.md 创建该文件,并通过 changed 输出记录内容是否发生变更。
  • 当 mu-lu.md 已存在时,先归一化其标题以便比较,仅对首行之后的内容与 SUMMARY.md 进行 diff,如果没有变更则短路退出而不更新文件。
  • 将 git-auto-commit-action 的执行受控于 changed 输出,并将该 Action 从 v6 升级到 v7。
.github/workflows/mulu.yml
在目录和笔记标题中将 2024–2025 会议日期本地化为统一的中文日期格式,并为新的 2025 条目更新排序。
  • 将 SUMMARY.md 和 mu-lu.md 中的 2024 和 2025 条目由 ISO 日期(YYYY-MM-DD)改为中文格式标签(例如“2025 年 11 月 28 日”),同时保持链接指向原有 markdown 文件不变。
  • 在 2025 列表靠前位置插入 2025-08-22、2025-11-14 和 2025-11-28 的新会议条目,确保排序一致。
  • 更新所有现有 2024-10-04..2024-12-13 和 2025-01-10..2025-07-25 markdown 文件中的 H1 标题,使其采用与索引中相同的中文日期格式。
SUMMARY.md
mu-lu.md
2024/2024-10-04.md
2024/2024-10-19.md
2024/2024-11-01.md
2024/2024-11-15.md
2024/2024-11-29.md
2024/2024-12-13.md
2025/2025-01-10.md
2025/2025-01-24.md
2025/2025-02-07.md
2025/2025-02-21.md
2025/2025-04-04.md
2025/2025-04-18.md
2025/2025-05-30.md
2025/2025-06-27.md
2025/2025-07-11.md
2025/2025-07-25.md
为三个新的 2025 日期添加采用本地化日期格式和标准结构的详细会议记录。
  • 创建 2025-08-22 会议记录,包含与会人员以及关于 AI 策略、缺陷清理/PR 合并会以及 pkgbase 模式与工具的讨论要点。
  • 创建 2025-11-14 会议记录,记录关于 contrib 模块元数据、所有权以及未来架构移除议程审查的讨论。
  • 创建 2025-11-28 会议记录,包含与会人员以及有关发行说明质量和所有权、打包过程中的 pkg 卡死问题、kqueue panic 缺陷、srcmgr 问题关闭、缺陷分类结果、架构移除争论,以及 Phabricator 过期评审报告等的详细条目。
2025/2025-08-22.md
2025/2025-11-14.md
2025/2025-11-28.md

Tips and commands

Interacting with Sourcery

  • 触发新评审: 在 Pull Request 中评论 @sourcery-ai review
  • 继续讨论: 直接回复 Sourcery 的评审评论。
  • 从评审评论生成 GitHub Issue: 在回复某条评审评论时请求 Sourcery 从该评论创建一个 issue。你也可以直接回复评审评论 @sourcery-ai issue 来从该评论创建 issue。
  • 生成 Pull Request 标题: 在 Pull Request 标题中任意位置写上 @sourcery-ai 即可随时生成标题。也可以在 Pull Request 中评论 @sourcery-ai title 来(重新)生成标题。
  • 生成 Pull Request 摘要: 在 Pull Request 描述正文中任意位置写上 @sourcery-ai summary,即可在指定位置生成 PR 摘要。也可以在 Pull Request 中评论 @sourcery-ai summary 来(重新)生成摘要。
  • 生成 Reviewer's Guide: 在 Pull Request 中评论 @sourcery-ai guide,即可随时(重新)生成 Reviewer's Guide。
  • 解决所有 Sourcery 评论: 在 Pull Request 中评论 @sourcery-ai resolve,即可将所有 Sourcery 评论标记为已解决。如果你已经处理完所有评论且不想再看到它们,这会很有用。
  • 取消所有 Sourcery 评审: 在 Pull Request 中评论 @sourcery-ai dismiss,即可取消所有现有的 Sourcery 评审。如果你想从一次全新的评审开始,这尤其有用——别忘了再评论 @sourcery-ai review 来触发新的评审!

Customizing Your Experience

访问你的 dashboard 以:

  • 启用或禁用诸如 Sourcery 生成的 Pull Request 摘要、Reviewer's Guide 等评审特性。
  • 更改评审语言。
  • 添加、删除或编辑自定义评审指令。
  • 调整其他评审设置。

Getting Help

Original review guide in English

Reviewer's Guide

This PR adds detailed 2025 meeting minutes, localizes 2024–2025 dates to a consistent Chinese format across the index and note titles, and hardens the mu-lu.md auto-update GitHub Actions workflow to only create/commit when needed while updating workflow dependencies and checkout authentication to use an SSH deploy key.

Sequence diagram for updated mu-lu.md auto-update workflow

sequenceDiagram
    actor Developer
    participant GitHub as GitHub
    participant Workflow as GitHub_Actions_Workflow
    participant Runner as Actions_Runner
    participant Checkout as actions_checkout_v6
    participant Process as process_mu_lu_step
    participant AutoCommit as git_auto_commit_action_v7
    participant Repo as Repository

    Developer->>GitHub: push SUMMARY.md
    GitHub-->>Workflow: trigger mulu workflow
    Workflow->>Runner: start job update-mu-lu

    Runner->>Checkout: run with ssh_key and fetch_depth 0
    Checkout->>Repo: authenticate via SSH deploy key
    Repo-->>Checkout: repository contents

    Runner->>Process: run mu-lu.md processing script
    alt mu-lu_does_not_exist
        Process->>Repo: copy SUMMARY.md to mu-lu.md
        Process->>Process: replace heading Table_of_contents with 目录
        Process-->>Runner: output changed=true
    else mu-lu_exists_and_is_up_to_date
        Process->>Process: create mu-lu-2.md with heading Table_of_contents
        Process->>Process: compare SUMMARY_tail with mulu2_tail
        Process-->>Runner: output changed=false
    else mu-lu_exists_and_needs_update
        Process->>Process: create mu-lu-2.md with heading Table_of_contents
        Process->>Process: compare SUMMARY_tail with mulu2_tail
        Process->>Repo: replace mu-lu.md with SUMMARY.md
        Process->>Process: replace heading Table_of_contents with 目录
        Process-->>Runner: output changed=true
    end

    alt changed_is_true
        Runner->>AutoCommit: commit mu-lu.md with message
        AutoCommit->>Repo: git commit and push
        Repo-->>Developer: updated mu-lu.md on default branch
    else changed_is_false
        Runner-->>GitHub: job completes without commit
    end
Loading

File-Level Changes

Change Details Files
Harden mu-lu.md auto-update workflow and avoid no-op commits while switching to SSH-based checkout and newer action versions.
  • Update actions/checkout to v6 and configure it to use an SSH deploy key with full history for future commits.
  • Replace the delete-and-recreate logic for mu-lu.md with a Process step that creates the file from SUMMARY.md if missing and records whether content changed via a changed output.
  • When mu-lu.md already exists, normalize its header for comparison, diff only the content after the first line against SUMMARY.md, and short‑circuit without updating when there is no change.
  • Gate git-auto-commit-action execution on the changed output and bump the action from v6 to v7.
.github/workflows/mulu.yml
Localize 2024–2025 meeting dates in the table of contents and note titles to a unified Chinese date format and update ordering for new 2025 entries.
  • Change 2024 and 2025 entries in SUMMARY.md and mu-lu.md from ISO dates (YYYY-MM-DD) to Chinese-formatted labels (e.g. “2025 年 11 月 28 日”) while keeping links to the same markdown files.
  • Insert new 2025 meeting entries for 2025-08-22, 2025-11-14, and 2025-11-28 near the top of the 2025 lists, ensuring consistent ordering.
  • Update H1 titles in all existing 2024-10-04..2024-12-13 and 2025-01-10..2025-07-25 markdown files to use the same Chinese date format as in the indices.
SUMMARY.md
mu-lu.md
2024/2024-10-04.md
2024/2024-10-19.md
2024/2024-11-01.md
2024/2024-11-15.md
2024/2024-11-29.md
2024/2024-12-13.md
2025/2025-01-10.md
2025/2025-01-24.md
2025/2025-02-07.md
2025/2025-02-21.md
2025/2025-04-04.md
2025/2025-04-18.md
2025/2025-05-30.md
2025/2025-06-27.md
2025/2025-07-11.md
2025/2025-07-25.md
Add detailed meeting minutes for three new 2025 dates using the localized date format and standard structure.
  • Create 2025-08-22 meeting notes with attendees and discussion points on AI policy, bug scrub / PR merge sessions, and pkgbase modes and tooling.
  • Create 2025-11-14 meeting notes capturing discussion about contrib module metadata, ownership, and agenda review for future architecture removals.
  • Create 2025-11-28 meeting notes with attendees and detailed bullets about release notes quality and ownership, pkg hangs during package creation, kqueue panic bug, srcmgr issue closure, bug triage results, architecture removal debate, and Phabricator stale review reporting.
2025/2025-08-22.md
2025/2025-11-14.md
2025/2025-11-28.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@ykla
Copy link
Contributor Author

ykla commented Dec 13, 2025

@sourcery-ai title

@sourcery-ai sourcery-ai bot changed the title 增补最新 更新会议纪要并本地化日期与目录自动化 Dec 13, 2025
Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey there - I've reviewed your changes - here's some feedback:

  • 当前工作流引用了 actions/checkout@v6,但该官方 Action 目前只发布到了 v4;这在运行时会失败,应当固定到一个已存在的主版本(例如 @v4)或固定到某个具体的提交 SHA。
  • 脚本会在 /tmp 目录下创建临时文件(/tmp/summary_tail.txt/tmp/mulu2_tail.txt),但从未删除它们;建议在步骤结束时清理这些临时文件,避免在 runner 上留下陈旧文件。
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- 当前工作流引用了 `actions/checkout@v6`,但该官方 Action 目前只发布到了 v4;这在运行时会失败,应当固定到一个已存在的主版本(例如 `@v4`)或固定到某个具体的提交 SHA。
- 脚本会在 `/tmp` 目录下创建临时文件(`/tmp/summary_tail.txt``/tmp/mulu2_tail.txt`),但从未删除它们;建议在步骤结束时清理这些临时文件,避免在 runner 上留下陈旧文件。

## Individual Comments

### Comment 1
<location> `.github/workflows/mulu.yml:20-26` </location>
<code_context>
           fetch-depth: 0

-      - name: Delete existing mu-lu.md if exists
+      - name: Process mu-lu.md
+        id: process
         run: |
-          if [ -f mu-lu.md ]; then
-            echo "Deleting existing mu-lu.md..."
-            rm mu-lu.md
-          else
-            echo "mu-lu.md not found, skipping deletion."
+          set -e
+
+          # 如果 mu-lu.md 不存在,直接生成
+          if [ ! -f mu-lu.md ]; then
+            cp SUMMARY.md mu-lu.md
+            sed -i '1s/^# Table of contents$/# 目录/' mu-lu.md
</code_context>

<issue_to_address>
**suggestion:** 当前逻辑假设 SUMMARY.md 的第一行恰好是 `# Table of contents`,如果标题发生变化,这个假设会比较脆弱。

`mu-lu.md` 上的 `sed` 替换(以及稍后在 `mu-lu-2.md` 上的反向替换)只有在第一行完全等于 `# Table of contents` 时才会生效。任何文字内容、大小写或前导空格的变化都会导致替换被跳过,从而让后续比较出现意料之外的行为。建议使用更宽松的匹配方式(例如允许前导空格或更广义的正则),或者增加一个显式检查,确认标题符合预期格式,否则尽早失败。

建议实现方式如下:

```
          # 如果 mu-lu.md 不存在,直接生成
          if [ ! -f mu-lu.md ]; then
            cp SUMMARY.md mu-lu.md
            # 允许前导空白、大小写变化以及多空格的更宽松匹配
            sed -i -E '1s/^[[:space:]]*#[[:space:]]*[Tt]able[[:space:]]+of[[:space:]]+contents[[:space:]]*$/# 目录/' mu-lu.md

            # 如果首行并不是期望的标题,则快速失败,避免后续比较出现隐蔽问题
            if ! head -n 1 mu-lu.md | grep -q '^# 目录$'; then
              echo "ERROR: SUMMARY.md first heading is not the expected 'Table of contents' format."
              echo "Please update this workflow or adjust SUMMARY.md's first heading."
              exit 1
            fi

            echo "mu-lu.md created from SUMMARY.md"
            echo "changed=true" >> $GITHUB_OUTPUT
            exit 0
          fi

```

在该工作流的后面,`mu-lu-2.md` 上很可能有一个反向的 `sed` 命令,将 `# 目录` 再转换回 `# Table of contents`(或类似内容)以进行比较。
你也应该以同样方式更新那个命令:

1. 使用同样宽松的正则表达式,允许前导空白和轻微的格式/大小写变化。
2. 添加类似的后置检查(例如 `head -n 1 mu-lu-2.md | grep -q '^# Table of contents$'`),在替换未发生时尽早失败。

按上述模式在两个方向上都进行修改,以保持逻辑对称且更加健壮。
</issue_to_address>

### Comment 2
<location> `2025/2025-08-22.md:15-17` </location>
<code_context>
+
+出席人员:markj、jfree、imp、des、jhb、kevans
+
+* Warner 提出关于 AI 使用政策的问题
+  * 两个问题:知识产权与(专业)能力
+  * Warner 认为,AI 工具已经超越了单纯复制粘贴代码的阶段
+  * 需要区分我们讨论的是“强化版的行补全”,还是让 LLM 生成大段代码
+  * 我们本就需要担心贡献者提交错误代码或复制粘贴的代码,因此对外部贡献者所持的怀疑程度实际上并未发生变化
+  * 不同的极端情况:自动补全 `SYSCTL_INT(<tab>`,与“这是数据手册,给我写个驱动”
+  * 希望制定一个非正式的政策:只要 LLM 没有完成“绝大部分”工作,就是可以接受的
+  * 提交补丁的人必须理解补丁中的所有内容
+  * AI 工具的使用也许应当被明确标注(例如通过 `git trailer`+  * 有人指出,其他项目同样在为该领域的规范而困扰,FreeBSD 项目应当关注这些进展,使自身政策与更广泛的开源社区保持一致
+* 需要尽快安排一次 bug 清理会议
+  * Warner 还希望单独进行一次 GitHub RP 集中合入会议
+* jhb 指出,在 eurobsdcon 期间我们有一天的空闲时间,应该利用起来做点事情
+
</code_context>

<issue_to_address>
**issue (typo):** “GitHub RP” 很可能是 “GitHub PR(pull request)” 的笔误

建议将此处的 “GitHub RP” 更正为 “GitHub PR 集中合入会议”,以避免术语误用。

```suggestion
* 需要尽快安排一次 bug 清理会议
  * Warner 还希望单独进行一次 GitHub PR 集中合入会议
* jhb 指出,在 eurobsdcon 期间我们有一天的空闲时间,应该利用起来做点事情
```
</issue_to_address>

### Comment 3
<location> `2025/2025-11-28.md:50` </location>
<code_context>
+
+  * 看起来至少会保留 powerpc64le
+
+* phabricator 报告已发布在 [https://people.freebsd.org/~bnovkov/stale_reviews/](https://people.freebsd.org/~bnovkov/stale_reviews/)
+
+  * 但源代码管理团队仍未收到任何邮件
</code_context>

<issue_to_address>
**issue (typo):** “phabricator” 建议首字母大写为 “Phabricator”

这是专有名词(代码审查工具的名称),应保持官方写法,以保证拼写准确和文档的一致性。

```suggestion
* Phabricator 报告已发布在 [https://people.freebsd.org/~bnovkov/stale_reviews/](https://people.freebsd.org/~bnovkov/stale_reviews/)
```
</issue_to_address>

Sourcery 对开源项目免费使用——如果你觉得这次评审有帮助,欢迎分享 ✨
请帮我变得更有用!欢迎在每条评论上点 👍 或 👎,我会根据你的反馈改进后续评审。
Original comment in English

Hey there - I've reviewed your changes - here's some feedback:

  • The workflow now references actions/checkout@v6, but the official action currently only publishes up to v4; this will fail at runtime and should be pinned to an existing major version (e.g., @v4) or a specific commit SHA.
  • The script creates temporary files under /tmp (/tmp/summary_tail.txt and /tmp/mulu2_tail.txt) but never removes them; consider cleaning these up at the end of the step to avoid leaving stale files on the runner.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The workflow now references `actions/checkout@v6`, but the official action currently only publishes up to v4; this will fail at runtime and should be pinned to an existing major version (e.g., `@v4`) or a specific commit SHA.
- The script creates temporary files under `/tmp` (`/tmp/summary_tail.txt` and `/tmp/mulu2_tail.txt`) but never removes them; consider cleaning these up at the end of the step to avoid leaving stale files on the runner.

## Individual Comments

### Comment 1
<location> `.github/workflows/mulu.yml:20-26` </location>
<code_context>
           fetch-depth: 0

-      - name: Delete existing mu-lu.md if exists
+      - name: Process mu-lu.md
+        id: process
         run: |
-          if [ -f mu-lu.md ]; then
-            echo "Deleting existing mu-lu.md..."
-            rm mu-lu.md
-          else
-            echo "mu-lu.md not found, skipping deletion."
+          set -e
+
+          # 如果 mu-lu.md 不存在,直接生成
+          if [ ! -f mu-lu.md ]; then
+            cp SUMMARY.md mu-lu.md
+            sed -i '1s/^# Table of contents$/# 目录/' mu-lu.md
</code_context>

<issue_to_address>
**suggestion:** The logic assumes the first line of SUMMARY.md is exactly '# Table of contents', which may be brittle if the heading ever changes.

The `sed` replacement on `mu-lu.md` (and the inverse on `mu-lu-2.md`) will only work if the first line is exactly `# Table of contents`. Any change in text, casing, or leading spaces will skip the replacement and could make the later comparison behave unexpectedly. Consider a more tolerant match (e.g. allow leading whitespace or a broader regex) or add an explicit check that the header matches the expected format and fail fast otherwise.

Suggested implementation:

```
          # 如果 mu-lu.md 不存在,直接生成
          if [ ! -f mu-lu.md ]; then
            cp SUMMARY.md mu-lu.md
            # 允许前导空白、大小写变化以及多空格的更宽松匹配
            sed -i -E '1s/^[[:space:]]*#[[:space:]]*[Tt]able[[:space:]]+of[[:space:]]+contents[[:space:]]*$/# 目录/' mu-lu.md

            # 如果首行并不是期望的标题,则快速失败,避免后续比较出现隐蔽问题
            if ! head -n 1 mu-lu.md | grep -q '^# 目录$'; then
              echo "ERROR: SUMMARY.md first heading is not the expected 'Table of contents' format."
              echo "Please update this workflow or adjust SUMMARY.md's first heading."
              exit 1
            fi

            echo "mu-lu.md created from SUMMARY.md"
            echo "changed=true" >> $GITHUB_OUTPUT
            exit 0
          fi

```

There is likely an inverse `sed` on `mu-lu-2.md` later in this workflow that converts `# 目录` back to `# Table of contents` (or similar) for comparison.  
You should update that command in the same way:

1. Use a tolerant regex that allows leading whitespace and minor formatting/casing variations.
2. Add a similar post-check (e.g. `head -n 1 mu-lu-2.md | grep -q '^# Table of contents$'`) and fail fast if the replacement did not occur.

Apply the same pattern as in the change above to keep both directions symmetric and robust.
</issue_to_address>

### Comment 2
<location> `2025/2025-08-22.md:15-17` </location>
<code_context>
+
+出席人员:markj、jfree、imp、des、jhb、kevans
+
+* Warner 提出关于 AI 使用政策的问题
+  * 两个问题:知识产权与(专业)能力
+  * Warner 认为,AI 工具已经超越了单纯复制粘贴代码的阶段
+  * 需要区分我们讨论的是“强化版的行补全”,还是让 LLM 生成大段代码
+  * 我们本就需要担心贡献者提交错误代码或复制粘贴的代码,因此对外部贡献者所持的怀疑程度实际上并未发生变化
+  * 不同的极端情况:自动补全 `SYSCTL_INT(<tab>`,与“这是数据手册,给我写个驱动”
+  * 希望制定一个非正式的政策:只要 LLM 没有完成“绝大部分”工作,就是可以接受的
+  * 提交补丁的人必须理解补丁中的所有内容
+  * AI 工具的使用也许应当被明确标注(例如通过 `git trailer`+  * 有人指出,其他项目同样在为该领域的规范而困扰,FreeBSD 项目应当关注这些进展,使自身政策与更广泛的开源社区保持一致
+* 需要尽快安排一次 bug 清理会议
+  * Warner 还希望单独进行一次 GitHub RP 集中合入会议
+* jhb 指出,在 eurobsdcon 期间我们有一天的空闲时间,应该利用起来做点事情
+
</code_context>

<issue_to_address>
**issue (typo):** “GitHub RP” 很可能是 “GitHub PR(pull request)” 的笔误

建议将此处的 “GitHub RP” 更正为 “GitHub PR 集中合入会议”,以避免术语误用。

```suggestion
* 需要尽快安排一次 bug 清理会议
  * Warner 还希望单独进行一次 GitHub PR 集中合入会议
* jhb 指出,在 eurobsdcon 期间我们有一天的空闲时间,应该利用起来做点事情
```
</issue_to_address>

### Comment 3
<location> `2025/2025-11-28.md:50` </location>
<code_context>
+
+  * 看起来至少会保留 powerpc64le
+
+* phabricator 报告已发布在 [https://people.freebsd.org/~bnovkov/stale_reviews/](https://people.freebsd.org/~bnovkov/stale_reviews/)
+
+  * 但源代码管理团队仍未收到任何邮件
</code_context>

<issue_to_address>
**issue (typo):** “phabricator” 建议首字母大写为 “Phabricator”

这是专有名词(代码审查工具的名称),应保持官方写法,以保证拼写准确和文档的一致性。

```suggestion
* Phabricator 报告已发布在 [https://people.freebsd.org/~bnovkov/stale_reviews/](https://people.freebsd.org/~bnovkov/stale_reviews/)
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

ykla and others added 2 commits December 13, 2025 12:27
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
@ykla
Copy link
Contributor Author

ykla commented Dec 13, 2025

@sourcery-ai review

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

你好——我已经查看了你的修改,这里是一些反馈:

  • 在 checkout 步骤中,你传入了一个 ssh-key,但保留了默认的 HTTPS 凭据和远程配置不变;如果你打算使用部署密钥通过 SSH 进行推送,建议添加 persist-credentials: false,并显式配置 SSH 远程仓库,以确保推送时真正使用部署密钥。
  • Process mu-lu.md 步骤会在 /tmp 中写入临时文件(summary_tail.txtmulu2_tail.txt),但只清理了 mu-lu-2.md;如果这个工作流运行得比较频繁,可能需要删除或复用这些 /tmp 文件,以避免残留文件不断累积。
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In the checkout step you’re passing an `ssh-key` but leaving the default HTTPS credentials and remote untouched; if the intent is to push over SSH with the deploy key, consider adding `persist-credentials: false` and explicitly configuring the SSH remote so the deploy key is actually used for pushes.
- The `Process mu-lu.md` step writes temporary files to `/tmp` (`summary_tail.txt` and `mulu2_tail.txt`) but only cleans up `mu-lu-2.md`; if this workflow runs frequently it may be worth removing or reusing the `/tmp` files to avoid accumulating leftovers.

## Individual Comments

### Comment 1
<location> `2025/2025-08-22.md:21` </location>
<code_context>
+
+* des 指出,pkgbase 仍然需要大量工作
+
+  * 在 Ports 与基本系统之间时 pkg 的使用保持一致很困难
+  * 仍存在未处理的可用性问题
+  * 安装器支持仍属实验性质
</code_context>

<issue_to_address>
**issue (typo):** “之间时”搭配不当,建议重写以避免语法问题。

建议改为“在 Ports 与基本系统之间保持 pkg 使用的一致性很困难”或“在 Ports 与基本系统之间,要保持 pkg 使用的一致性很困难”。

```suggestion
  * 在 Ports 与基本系统之间保持 pkg 使用的一致性很困难
```
</issue_to_address>

Sourcery 对开源项目免费使用——如果你喜欢我们的评审,请考虑分享给更多人 ✨
帮我变得更有用!请在每条评论上点击 👍 或 👎,我会根据你的反馈改进后续评审。
Original comment in English

Hey there - I've reviewed your changes - here's some feedback:

  • In the checkout step you’re passing an ssh-key but leaving the default HTTPS credentials and remote untouched; if the intent is to push over SSH with the deploy key, consider adding persist-credentials: false and explicitly configuring the SSH remote so the deploy key is actually used for pushes.
  • The Process mu-lu.md step writes temporary files to /tmp (summary_tail.txt and mulu2_tail.txt) but only cleans up mu-lu-2.md; if this workflow runs frequently it may be worth removing or reusing the /tmp files to avoid accumulating leftovers.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In the checkout step you’re passing an `ssh-key` but leaving the default HTTPS credentials and remote untouched; if the intent is to push over SSH with the deploy key, consider adding `persist-credentials: false` and explicitly configuring the SSH remote so the deploy key is actually used for pushes.
- The `Process mu-lu.md` step writes temporary files to `/tmp` (`summary_tail.txt` and `mulu2_tail.txt`) but only cleans up `mu-lu-2.md`; if this workflow runs frequently it may be worth removing or reusing the `/tmp` files to avoid accumulating leftovers.

## Individual Comments

### Comment 1
<location> `2025/2025-08-22.md:21` </location>
<code_context>
+
+* des 指出,pkgbase 仍然需要大量工作
+
+  * 在 Ports 与基本系统之间时 pkg 的使用保持一致很困难
+  * 仍存在未处理的可用性问题
+  * 安装器支持仍属实验性质
</code_context>

<issue_to_address>
**issue (typo):** “之间时”搭配不当,建议重写以避免语法问题。

建议改为“在 Ports 与基本系统之间保持 pkg 使用的一致性很困难”或“在 Ports 与基本系统之间,要保持 pkg 使用的一致性很困难”。

```suggestion
  * 在 Ports 与基本系统之间保持 pkg 使用的一致性很困难
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
@ykla
Copy link
Contributor Author

ykla commented Dec 13, 2025

https://github.com/sourcery-ai review

@ykla
Copy link
Contributor Author

ykla commented Dec 13, 2025

@sourcery-ai review

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

你好——我已经审阅了你的改动,看起来很棒!

供 AI 智能体使用的提示
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location> `2025/2025-08-22.md:30` </location>
<code_context>
+* 关于 pkgbase 的提案:存在几种模式
+
+  * `freebsd-update` 管理:pkg 只操作 Ports 包,使用 `freebsd-update`
+    * kyle 建议为仓库引入一个新的“隐藏”标记,使其在被显式使用时保持启用,但不会被自动发现
+    * bsdinstall 可能默认“隐藏” base 仓库,从而让 `freebsd-update` 开箱即用
+    * 为希望直接使用 pkg 的用户文档化如何取消隐藏 base
</code_context>

<issue_to_address>
**nitpick (typo):** “kyle” appears to be a proper name and may need capitalization for consistency.

此处其他人名(如 Warner、Jake)均为首字母大写,而“kyle”是唯一的小写形式。如这里指的是同一位人物且不是特意用作小写用户名,建议改为 “Kyle” 以保持专有名词书写风格一致。

```suggestion
    * Kyle 建议为仓库引入一个新的“隐藏”标记,使其在被显式使用时保持启用,但不会被自动发现
```
</issue_to_address>

Sourcery 对开源项目免费——如果你觉得我们的评审有帮助,欢迎分享给更多人 ✨
帮我变得更有用!请在每条评论上点 👍 或 👎,我会根据你的反馈改进后续的评审。
Original comment in English

Hey there - I've reviewed your changes and they look great!

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location> `2025/2025-08-22.md:30` </location>
<code_context>
+* 关于 pkgbase 的提案:存在几种模式
+
+  * `freebsd-update` 管理:pkg 只操作 Ports 包,使用 `freebsd-update`
+    * kyle 建议为仓库引入一个新的“隐藏”标记,使其在被显式使用时保持启用,但不会被自动发现
+    * bsdinstall 可能默认“隐藏” base 仓库,从而让 `freebsd-update` 开箱即用
+    * 为希望直接使用 pkg 的用户文档化如何取消隐藏 base
</code_context>

<issue_to_address>
**nitpick (typo):** “kyle” appears to be a proper name and may need capitalization for consistency.

此处其他人名(如 Warner、Jake)均为首字母大写,而“kyle”是唯一的小写形式。如这里指的是同一位人物且不是特意用作小写用户名,建议改为 “Kyle” 以保持专有名词书写风格一致。

```suggestion
    * Kyle 建议为仓库引入一个新的“隐藏”标记,使其在被显式使用时保持启用,但不会被自动发现
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
@ykla ykla merged commit 012f7a0 into FreeBSD-Ask:main Dec 13, 2025
1 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant