From patchwork Tue Dec 4 00:43:16 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 203520 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 8368B2C008F for ; Tue, 4 Dec 2012 11:44:02 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 40FE64A180; Tue, 4 Dec 2012 01:44:01 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c0TZntSTgF58; Tue, 4 Dec 2012 01:44:01 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id E80154A181; Tue, 4 Dec 2012 01:43:39 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D42D84A12D for ; Tue, 4 Dec 2012 01:43:33 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BjZhNeshY5e6 for ; Tue, 4 Dec 2012 01:43:29 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-ea0-f202.google.com (mail-ea0-f202.google.com [209.85.215.202]) by theia.denx.de (Postfix) with ESMTPS id 8C5A34A158 for ; Tue, 4 Dec 2012 01:43:26 +0100 (CET) Received: by mail-ea0-f202.google.com with SMTP id j12so406436eaa.3 for ; Mon, 03 Dec 2012 16:43:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=VvHMoi9Np1Zair5hsmz866PX5tCrdFSZXUqJKX0tj0c=; b=mkPa7NbtAyC2zoL+Z7EIFHGcwkGQpx1+JqMRzmpWc2rtWEqFgjHS9qJCxleFAJvr3o j7/mtYlxN1Ydm5xfv4A6EVgxq9mZLnztcA6tjnhaWQFVYZv8B71d4szm0g3N6SpGR6H7 RgXfxqG4U/0t44EdQkfwyVdapHlLedCGlm8ehkYsW7Gwh2uIUUqCxFGvioFFFOrZUivH 3sbVvQO+oqDitDPDwva+2QeTHNgPnhk+ByPPAqKhlXCuAl+b9BjcfBCR6siHn9TQVWXt Fb59TeSR7z49sbCJVNpAsniweMw3CqtnXVzr2v4OqbTgKCT2X4DCahnrVZbmGFOS0Pmi 9sbQ== Received: by 10.14.0.196 with SMTP id 44mr12255306eeb.6.1354581805024; Mon, 03 Dec 2012 16:43:25 -0800 (PST) Received: from hpza10.eem.corp.google.com ([74.125.121.33]) by gmr-mx.google.com with ESMTPS id u8si3561090een.1.2012.12.03.16.43.24 (version=TLSv1/SSLv3 cipher=AES128-SHA); Mon, 03 Dec 2012 16:43:25 -0800 (PST) Received: from tictac.mtv.corp.google.com (tictac.mtv.corp.google.com [172.22.73.80]) by hpza10.eem.corp.google.com (Postfix) with ESMTP id 7499820004E; Mon, 3 Dec 2012 16:43:24 -0800 (PST) Received: by tictac.mtv.corp.google.com (Postfix, from userid 121310) id A69AC81626; Mon, 3 Dec 2012 16:43:23 -0800 (PST) From: Doug Anderson To: Simon Glass Date: Mon, 3 Dec 2012 16:43:16 -0800 Message-Id: <1354581799-775-1-git-send-email-dianders@chromium.org> X-Mailer: git-send-email 1.7.7.3 In-Reply-To: <1354321745-1359-1-git-send-email-dianders@chromium.org> References: <1354321745-1359-1-git-send-email-dianders@chromium.org> X-Gm-Message-State: ALoCoQk7JUqK+m9Yj124D7ZxOYYalfCNKaw+b8i2piSatLz9s/1xYtfQTVbxCx2QnKbmuNXj27nZDfWGtHeZ8dgKNsCBOsMeexfqrBLVnWZy7S4YLBlGOau1/m+iUHKQbk06F0KhCNQA+oZFoKR3Kjd1wz1vMgYgTLEnHGgxdju3vggKgY5DYlI8aMaU5S5NonpuHl60d7xA Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH v2 1/4] patman: Add a call to get_maintainer.pl if it exists X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de For Linux the best way to figure out where to send a patch is with the "get_maintainer.pl" script. Add support for calling it from patman. Support is added unconditionally for "scripts/get_maintainer.pl" in case it is helpful for any other projects. Signed-off-by: Doug Anderson --- Changes in v2: None tools/patman/README | 11 ++++++- tools/patman/get_maintainer.py | 63 ++++++++++++++++++++++++++++++++++++++++ tools/patman/series.py | 2 + 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 tools/patman/get_maintainer.py diff --git a/tools/patman/README b/tools/patman/README index 5b6eba0..16b51eb 100644 --- a/tools/patman/README +++ b/tools/patman/README @@ -43,6 +43,9 @@ Series-to: fred.blogs@napier.co.nz in one of your commits, the series will be sent there. +In Linux this will also call get_maintainer.pl on each of your +patches automatically. + How to use this tool ==================== @@ -65,8 +68,12 @@ will get a consistent result each time. How to configure it =================== -For most cases patman will locate and use the file 'doc/git-mailrc' in -your U-Boot directory. This contains most of the aliases you will need. +For most cases of using patman for U-Boot developement patman will +locate and use the file 'doc/git-mailrc' in your U-Boot directory. +This contains most of the aliases you will need. + +For Linux the 'scripts/get_maintainer.pl' handles figuring out where +to send patches pretty well. During the first run patman creates a config file for you by taking the default user name and email address from the global .gitconfig file. diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py new file mode 100644 index 0000000..cb11373 --- /dev/null +++ b/tools/patman/get_maintainer.py @@ -0,0 +1,63 @@ +# Copyright (c) 2012 The Chromium OS Authors. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +import command +import gitutil +import os + +def FindGetMaintainer(): + """Look for the get_maintainer.pl script. + + Returns: + If the script is found we'll return a path to it; else None. + """ + try_list = [ + os.path.join(gitutil.GetTopLevel(), 'scripts'), + ] + # Look in the list + for path in try_list: + fname = os.path.join(path, 'get_maintainer.pl') + if os.path.isfile(fname): + return fname + + return None + +def GetMaintainer(fname, verbose=False): + """Run get_maintainer.pl on a file if we find it. + + We look for get_maintainer.pl in the 'scripts' directory at the top of + git. If we find it we'll run it. If we don't find get_maintainer.pl + then we fail silently. + + Args: + fname: Path to the patch file to run get_maintainer.pl on. + + Returns: + A list of email addresses to CC to. + """ + get_maintainer = FindGetMaintainer() + if not get_maintainer: + if verbose: + print "WARNING: Couldn't find get_maintainer.pl" + return [] + + stdout = command.Output(get_maintainer, '--norolestats', fname) + return stdout.splitlines() diff --git a/tools/patman/series.py b/tools/patman/series.py index 083af0f..6c5c570 100644 --- a/tools/patman/series.py +++ b/tools/patman/series.py @@ -22,6 +22,7 @@ import itertools import os +import get_maintainer import gitutil import terminal @@ -225,6 +226,7 @@ class Series(dict): if process_tags: list += gitutil.BuildEmailList(commit.tags) list += gitutil.BuildEmailList(commit.cc_list) + list += get_maintainer.GetMaintainer(commit.patch) all_ccs += list print >>fd, commit.patch, ', '.join(list) self._generated_cc[commit.patch] = list