From patchwork Wed Dec 17 02:27:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 65 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=1765938517; bh=ss4SaZibUA4lB4QbN9QzmWizOhWOx7u9AwUwdTPow0A=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=SyZRpAri4rtenwXWyMIH30T+TP5f+vsj83XhrcqheBq6iX6a+SXUQbLKf/0rxbwlN Xqk73jtZXe6roPFtkBwfiBHyHx7ehQVM3V5dDkRSuKO1y1YKShDhqXUvv8p8fDDeI1 OJhKszppbX0K5/mzKdVSxQousVZc3FyUCjp+wpa4PnF+lf7hl3rQj/zIkccaCO61qy wHmmTZshgUqw7cGBt4XQh5g72Jm8sbyWw8tGci9XSwqdTKJJ/FXeGO8YPGLGhHMLFC 1XbsC62MZoce4DpWnefe+KDqxBoJFXixbukE3cpY8xL+Qa8B4iyYPPZWBTf5ufo85P HzJFab0d3eyeA== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 0941E68BAD for ; Tue, 16 Dec 2025 19:28:37 -0700 (MST) 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 F1HkB3Xqw_4Q for ; Tue, 16 Dec 2025 19:28:36 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765938516; bh=ss4SaZibUA4lB4QbN9QzmWizOhWOx7u9AwUwdTPow0A=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=OltBvjWe63FxDgeUEGtmAxUrCEzEhGrrhxkJzBKKD3Bwp5IioGcIBwDEnvuB0eeO3 2f12RTxit4yI541494KdsftLRqVk2k6CMyqzkpbMq3B0YAHf5yK9Fnuvws2izZv0VX i+qAc4P54A0P+PlJ8Yn9+C5CbHpvAtVyrO4oHM3l9vijq5y4yw51816PI7GcFDIs8m DOb/LZDi2jsIX2tuTB4hHhSmIDyU4+zgZmhguo/GvDUgWkWYQE9YVyFtTmEo2ZbuUP MbDG3ftssQKXswMz+ACwBOodu5bUQtUzmjo0oKkz4UftKOhuAnOuRTmLY+Nljt+pmx bw4XkC6icbdOA== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id EBDD368AEE for ; Tue, 16 Dec 2025 19:28:36 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765938514; bh=5sbo13GkaJseKVtsCuYOjyz9/rQ5KZkRYXiIH2je/k8=; h=From:To:Cc:Subject:Date:From; b=FPvrmJKwYtaWS52irEFZidJXoYUHVPJXOIK2SnDYu3qGMIscF4AD3xpxM5luqS/UY 3jDQVfXshYlkf96tZeJcEBg/Y6BFWbXnvyKg1bs1EIDqCwF9CXAreky4prOtImLf4j dYzErHDt0MUSiKwFWhL6vf8HPbvQqaVS7ZZ6k5N1tA+64pCyz6MInvY48BwEeY738Q iDrKq5YVMOG7rLMJsmNefcFlcQIyIaBv/cobNwvSjW/DmU0iUz0g5clGlRoCrVya4S JRbnb54mtxFpWeeBroCTUBy2FYe8WoMp2e0neRqQ3JDZlEg1VAWrmlpO5pPSE2PQho Q/W/CKvvxTsOw== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 714F268AEE; Tue, 16 Dec 2025 19:28:34 -0700 (MST) 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 fL-upRQatUm9; Tue, 16 Dec 2025 19:28:34 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765938510; bh=Op5SidvIwuhAehGNt8FrxDxlxyJDVHQRWESMIuu90uU=; h=From:To:Cc:Subject:Date:From; b=G+m63nZf7LK0gxbMIJ9XRMAOoVHryuK35+OaLz+RuPFSrkkGmGuHMVPtEvfrrurCU CQr/rZCiuD5sU5DIvkl2WnL6guX7WJPDB/Sz9N7dsZSaKRd6QcO+jwAEZNl2JsbH4n YYPH/REV5aWGhPjx9uEX5dHcYWku1rYXhgX3jK2inAYfVLAOYIHIOq5FHpPmJG+fg7 IRCNqQaGjcyij95EkD+bzSAdbJbylw0IcF9uA+H/Og8jHJESQgI4Cf615XDohg5S+s 7pkhHLpD1OBbVHHzjpPvC+g9ktobySLDmUOQV1lPbfDoSslcK/3amU3ZJhzJ5lb0cy xHPlrlnOlXwCw== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 0D9E06884F; Tue, 16 Dec 2025 19:28:29 -0700 (MST) From: Simon Glass To: U-Boot Concept Date: Tue, 16 Dec 2025 19:27:49 -0700 Message-ID: <20251217022823.392557-1-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Message-ID-Hash: SW44YUDHMXCMUGJVVAM4DXLZRTDYAV7F X-Message-ID-Hash: SW44YUDHMXCMUGJVVAM4DXLZRTDYAV7F 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 00/24] pickman: Refine the feature set 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 This series adds a few more features and tweaks to make pickman work better in practice. The main issue is that the branch logic is not correct, so it selects the wrong branch once one has already been applied. Other improvements in this series: - stop polling if an error occurs - allow using a config file for the gitlab credentials (so we can set up a 'pickman' user), along with a command to check gitlab access - add the Claude log to the merge request, when it responds to comments - maintain comments in a database so we know what was addressed - add a command to figure out how many merges are pending and to show the next 10 - measure test coverage, improve it (not 100%) and add to CI Simon Glass (24): pickman: Add terminal.capture() to tests for silent output pickman: Move imports to top of control.py pickman: Fix pylint warnings pickman: Complete database.py coverage pickman: Add test coverage support pickman: Add tests to improve control.py coverage pickman: Improve testing with write_history() pickman: Extract prepare_apply() from do_apply() pickman: Extract execute_apply() from do_apply() pickman: Use named tuples for MR data pickman: Fix ancestor check in process_merged_mrs pickman: Fix merge selection to follow first-parent chain pickman: Add next-merges command pickman: Fix parse_mr_description to ignore short numbers pickman: Add database tracking for comment processing pickman: Add a way to update a gitlab merge-request pickman: Improve review handling with comment tracking pickman: Add count-merges command pickman: Stop poll on errors pickman: Add config-file support for GitLab token pickman: Add check-gitlab command pickman: Skip push pipeline for MR branches gitlab-ci: Run lab tests automatically for MR pipelines gitlab-ci: Add pickman tests to CI .gitlab-ci.yml | 8 +- tools/pickman/README.rst | 63 +- tools/pickman/__main__.py | 83 +- tools/pickman/agent.py | 19 +- tools/pickman/control.py | 467 ++++++++--- tools/pickman/database.py | 63 +- tools/pickman/ftest.py | 1320 ++++++++++++++++++++++++++++++- tools/pickman/gitlab_api.py | 218 ++++- tools/pickman/requirements.txt | 4 + tools/u_boot_pylib/test_util.py | 8 +- 10 files changed, 2088 insertions(+), 165 deletions(-) create mode 100644 tools/pickman/requirements.txt