You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@magpie.apache.org by po...@apache.org on 2026/07/04 14:13:00 UTC

(magpie) branch main updated: docs(security): codify two security-workflow conventions (#738)

This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/magpie.git


The following commit(s) were added to refs/heads/main by this push:
     new 9955774c docs(security): codify two security-workflow conventions (#738)
9955774c is described below

commit 9955774cb0b4944285873c5bf7f9e6ae178ffb3f
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Sat Jul 4 16:12:55 2026 +0200

    docs(security): codify two security-workflow conventions (#738)
    
    security-issue-fix (Step 5f): for projects whose changelog is generated by the
    release manager from commit messages (no per-PR fragments), a fix PR must not
    author version/category headers or bulleted / PR-linked changelog entries; at
    most a single top-of-changelog note for a notable user-visible behaviour change,
    which the release manager relocates into the right version at release.
    
    security-issue-import (Step 7, rejections-ledger): every `<!-- rejection v1 -->`
    entry must carry the thread `title:` and a stable mail-archive `archive:`
    permalink in addition to the mailbox `thread:` id, so each rejected report is
    archive-locatable and human-scannable for anyone auditing the ledger / the
    tracker-stats dashboard. Includes an `unresolved (archive lag)` fallback.
    
    Co-authored-by: Tester <t...@example.com>
---
 skills/security-issue-fix/SKILL.md    | 18 ++++++++++++++++++
 skills/security-issue-import/SKILL.md | 17 ++++++++++++++++-
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/skills/security-issue-fix/SKILL.md b/skills/security-issue-fix/SKILL.md
index 4f3a7e1c..ad0a9c4a 100644
--- a/skills/security-issue-fix/SKILL.md
+++ b/skills/security-issue-fix/SKILL.md
@@ -620,6 +620,24 @@ reveals the security nature and defeats the whole point of the
 private tracking workflow. Skip this section entirely for projects
 whose `release_process.newsfragments.enabled` is `false`.
 
+**Commit-message-driven changelogs (no per-PR fragments).** Some
+projects do not use fragment files at all — their changelog is
+regenerated by the release manager from commit messages at
+release-preparation time. On such a project the fix PR must **not**
+author a new version header, a new category section (`Bug Fixes`,
+`Features`, `Breaking changes`, …), or a bulleted / PR-linked
+changelog entry — those are the release manager's to generate. The
+only changelog edit a fix PR should make is, **when a notable
+user-visible behaviour change needs surfacing**, a single note at the
+very top of the changelog (above the first version header) describing
+the change and any migration step; the release manager relocates and
+formalises it into the right version at release. Whether the project
+is fragment-based or commit-message-driven, and where such a note
+goes, lives in
+[`<project-config>/fix-workflow.md`](../../<project-config>/fix-workflow.md).
+The neutral-language / no-security-framing rule above applies to the
+note as well.
+
 ### 5g. PR body draft
 
 Write out the exact `--body` the skill will pass to
diff --git a/skills/security-issue-import/SKILL.md b/skills/security-issue-import/SKILL.md
index 54063377..6afa0d3f 100644
--- a/skills/security-issue-import/SKILL.md
+++ b/skills/security-issue-import/SKILL.md
@@ -1946,11 +1946,26 @@ media / cross-thread-followup / fix-already-public):
    <!-- rejection v1 -->
    date: <YYYY-MM-DD>
    reporter: <reporter email or display name>
+   title: <thread subject, verbatim — strip Re:/Fwd:>
    canned: <canned-response-slug>
-   thread: <Gmail/PonyMail thread URL or threadId>
+   thread: <mailbox threadId>
+   archive: <stable mail-archive permalink (e.g. lists.apache.org/thread/<hash>), or "unresolved (archive lag)">
    summary: <one-line disposition>
    ```
 
+   Record **`title:`** (the verbatim thread subject) and **`archive:`**
+   (a stable mail-archive permalink) in addition to the mailbox
+   `thread:` id. A bare mailbox threadId resolves only inside the one
+   mailbox that holds it; the archive permalink plus the title make
+   each rejected report archive-locatable and human-scannable for
+   anyone auditing the ledger / the tracker-stats dashboard. Resolve
+   the permalink from the project's configured mail archive (for ASF
+   projects, PonyMail: search the list archive for the thread and take
+   its `lists.apache.org/thread/<hash>` permalink); if the thread is
+   not yet indexed (brand-new inbound mail lags the archive), record
+   `archive: unresolved (archive lag)` and keep the mailbox
+   `thread:` id so a later run can backfill it.
+
    ```bash
    gh api repos/<tracker>/issues/$LEDGER/comments \
      -F body=@/tmp/rejection-<threadId>.md --jq '.id'