From patchwork Fri May 1 11:00:07 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 2258 Return-Path: X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1777633305; bh=NRv41r8mk2b37iQWr9VS+bpaIC6FVTw0475Ar10+oPk=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=hRpckkUP0TCWjYCjWcswnOmb6MKpGrAE7k8M66CVsiQzoYLmp625lmjxkt1Xvg2I8 iPz2AidOUi2Kir4DNJXOiERaYEzTcDrCKS+pHiJadhvsMlhXwxs+ihVoB5kxdS8pzp bgh9hlQ5Ue3hqBmnzdHaTXqoRwvx34HBEmyuC9wY= Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id D798C6A836 for ; Fri, 1 May 2026 05:01:45 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id e-vIIUsbbodJ for ; Fri, 1 May 2026 05:01:45 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1777633305; bh=NRv41r8mk2b37iQWr9VS+bpaIC6FVTw0475Ar10+oPk=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=hRpckkUP0TCWjYCjWcswnOmb6MKpGrAE7k8M66CVsiQzoYLmp625lmjxkt1Xvg2I8 iPz2AidOUi2Kir4DNJXOiERaYEzTcDrCKS+pHiJadhvsMlhXwxs+ihVoB5kxdS8pzp bgh9hlQ5Ue3hqBmnzdHaTXqoRwvx34HBEmyuC9wY= Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id C0BA56A7AF for ; Fri, 1 May 2026 05:01:45 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1777633304; bh=gClK8Gl+qdg7/mc7FRwwQEe/Ni385880b4HOZ43fE/k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hodgS0iM0c/HhbClzTMwzT/eTloZtoaXaPWRmyUHXwTJdbud9aEtRHtZAy8qffcdj CLd/klxUw3mdh8oKtQewinZMZ298kYZYQ3oUGWOMvxWIVoDmiHyPh6P5MwGJE2EL0f FxZxiqOHS6AsLD9cLij0t8LlSJliFExz37gT+ZFM= Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 43E9E6A836; Fri, 1 May 2026 05:01:44 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id 70bqdKKLsWoa; Fri, 1 May 2026 05:01:44 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1777633303; bh=6BqtYHwwwhpAY6qhrE81ZTjiAwOdke7XCMiKKizG/og=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WZ/QhLHNZ/D1r8AGrXyRFoFrkFN40X7tAOq/VpWDKM0qYAHLqF8aN08skXLsipPYg Cym99ZC+r6STiAqQumi6hXVn1fbpUQ4ZRgmyko3HGzFpIPL2PkhtYU1tbcBqumQ1Xt qSsQdVZ9O6bHpLLkmyiJNMWmAe2U2iN1TqclqmNo= Received: from u-boot.org (unknown [174.51.25.52]) by mail.u-boot.org (Postfix) with ESMTPSA id BACB46A7AF; Fri, 1 May 2026 05:01:43 -0600 (MDT) From: Simon Glass To: U-Boot Concept Date: Fri, 1 May 2026 05:00:07 -0600 Message-ID: <20260501110040.1874719-16-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260501110040.1874719-1-sjg@u-boot.org> References: <20260501110040.1874719-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: ESWHZVZ322CSGW7NEX2JLYAFQZW3DYWI X-Message-ID-Hash: ESWHZVZ322CSGW7NEX2JLYAFQZW3DYWI X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Simon Glass X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 15/29] patman: Record workflow entry when reviewing a series List-Id: Discussion and patches related to U-Boot Concept Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Simon Glass After completing a review, add a 'reviewed' workflow entry and a follow-up todo for 7 days later. This makes reviews visible in 'patman wf ls' alongside sent series, so the user can track which series need follow-up. Signed-off-by: Simon Glass --- tools/patman/review.py | 2 ++ tools/patman/workflow.py | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/tools/patman/review.py b/tools/patman/review.py index a850ec180df..92fbcfa8a2d 100644 --- a/tools/patman/review.py +++ b/tools/patman/review.py @@ -32,6 +32,7 @@ from u_boot_pylib import tout from patman import database from patman import gmail from patman import patchstream +from patman import workflow try: from claude_agent_sdk import ClaudeAgentOptions @@ -1821,6 +1822,7 @@ def do_review(args, pwork, cser): ctx.comments_path = _write_comments_file(series_data, pwork) _run_and_store_reviews(ctx, args) + workflow.reviewed(cser, ctx.series_id, ctx.svid) _git_restore(orig_branch, had_stash, ctx.repo_path) orig_branch = None diff --git a/tools/patman/workflow.py b/tools/patman/workflow.py index 299686e3269..97e3b1bbafc 100644 --- a/tools/patman/workflow.py +++ b/tools/patman/workflow.py @@ -13,6 +13,7 @@ class Wtype(str, enum.Enum): """Types of workflow entry""" SENT = 'sent' TODO = 'todo' + REVIEWED = 'reviewed' def friendly_time(now, when): @@ -61,6 +62,24 @@ def sent(cser, series_id, ser_ver_id=None): cser.commit() +def reviewed(cser, series_id, ser_ver_id=None): + """Record that a series was reviewed and create a follow-up todo + + Args: + cser (CseriesHelper): Series helper with open database + series_id (int): ID of the series that was reviewed + ser_ver_id (int or None): ID of the ser_ver record + """ + ts = cser.get_now().strftime('%Y-%m-%d %H:%M:%S') + cser.db.workflow_archive(Wtype.REVIEWED, series_id) + cser.db.workflow_add(Wtype.REVIEWED, series_id, ts, ser_ver_id=ser_ver_id) + when = cser.get_now() + timedelta(days=7) + todo_ts = when.strftime('%Y-%m-%d %H:%M:%S') + cser.db.workflow_archive(Wtype.TODO, series_id) + cser.db.workflow_add(Wtype.TODO, series_id, todo_ts) + cser.commit() + + def todo(cser, series, days): """Mark a series as a todo item after a number of days