From: Alejandro Colomar <alx.manpages@gmail.com>
To: Quentin Monnet <quentin@isovalent.com>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>
Cc: Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
Yonghong Song <yhs@fb.com>,
John Fastabend <john.fastabend@gmail.com>,
KP Singh <kpsingh@kernel.org>,
Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>,
Jiri Olsa <jolsa@kernel.org>,
bpf@vger.kernel.org
Subject: Re: [PATCH bpf-next v2 2/2] scripts/bpf: Set date attribute for bpf-helpers(7) man page
Date: Tue, 23 Aug 2022 18:54:27 +0200 [thread overview]
Message-ID: <dd8e599f-eea4-75ea-2b03-8de2dee856da@gmail.com> (raw)
In-Reply-To: <20220823155327.98888-2-quentin@isovalent.com>
[-- Attachment #1.1: Type: text/plain, Size: 3655 bytes --]
Hi Quentin,
On 8/23/22 17:53, Quentin Monnet wrote:
> The bpf-helpers(7) manual page shipped in the man-pages project is
> generated from the documentation contained in the BPF UAPI header, in
> the Linux repository, parsed by script/bpf_doc.py and then fed to
> rst2man.
>
> The man page should contain the date of last modification of the
> documentation. This commit adds the relevant date when generating the
> page.
>
> Before:
>
> $ ./scripts/bpf_doc.py helpers | rst2man | grep '\.TH'
> .TH BPF-HELPERS 7 "" "Linux v5.19-14022-g30d2a4d74e11" ""
>
> After:
>
> $ ./scripts/bpf_doc.py helpers | rst2man | grep '\.TH'
> .TH BPF-HELPERS 7 "2022-08-15" "Linux v5.19-14022-g30d2a4d74e11" ""
>
> We get the version by using "git log" to look for the commit date of the
> latest change to the section of the BPF header containing the
> documentation. If the command fails, we just skip the date field. and
> keep generating the page.
>
> Cc: Alejandro Colomar <alx.manpages@gmail.com>
> Reported-by: Alejandro Colomar <alx.manpages@gmail.com>
> Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Reviewed-by: Alejandro Colomar <alx.manpages@gmail.com>
> ---
> scripts/bpf_doc.py | 20 ++++++++++++++++++--
> 1 file changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/bpf_doc.py b/scripts/bpf_doc.py
> index 061ad1dc3212..f4f3e7ec6d44 100755
> --- a/scripts/bpf_doc.py
> +++ b/scripts/bpf_doc.py
> @@ -12,6 +12,7 @@ import re
> import sys, os
> import subprocess
>
> +helpersDocStart = 'Start of BPF helper function descriptions:'
>
> class NoHelperFound(BaseException):
> pass
> @@ -235,7 +236,7 @@ class HeaderParser(object):
> self.enum_syscalls = re.findall('(BPF\w+)+', bpf_cmd_str)
>
> def parse_desc_helpers(self):
> - self.seek_to('* Start of BPF helper function descriptions:',
> + self.seek_to(helpersDocStart,
> 'Could not find start of eBPF helper descriptions list')
> while True:
> try:
> @@ -373,6 +374,17 @@ class PrinterRST(Printer):
> return 'Linux'
> return 'Linux {version}'.format(version=version)
>
> + def get_last_doc_update(self, delimiter):
> + try:
> + cmd = ['git', 'log', '-1', '--pretty=format:%cs', '--no-patch',
> + '-L',
> + '/{}/,/\*\//:include/uapi/linux/bpf.h'.format(delimiter)]
> + date = subprocess.run(cmd, cwd=linuxRoot,
> + capture_output=True, check=True)
> + return date.stdout.decode().rstrip()
> + except:
> + return ''
> +
> class PrinterHelpersRST(PrinterRST):
> """
> A printer for dumping collected information about helpers as a ReStructured
> @@ -395,6 +407,7 @@ list of eBPF helper functions
>
> :Manual section: 7
> :Version: {version}
> +{date_field}{date}
>
> DESCRIPTION
> ===========
> @@ -428,9 +441,12 @@ HELPERS
> =======
> '''
> kernelVersion = self.get_kernel_version()
> + lastUpdate = self.get_last_doc_update(helpersDocStart)
>
> PrinterRST.print_license(self)
> - print(header.format(version=kernelVersion))
> + print(header.format(version=kernelVersion,
> + date_field = ':Date: ' if lastUpdate else '',
> + date=lastUpdate))
>
> def print_footer(self):
> footer = '''
--
Alejandro Colomar
<http://www.alejandro-colomar.es/>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2022-08-23 18:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-23 15:53 [PATCH bpf-next v2 1/2] scripts/bpf: Set version attribute for bpf-helpers(7) man page Quentin Monnet
2022-08-23 15:53 ` [PATCH bpf-next v2 2/2] scripts/bpf: Set date " Quentin Monnet
2022-08-23 16:54 ` Alejandro Colomar [this message]
2022-08-23 16:55 ` [PATCH bpf-next v2 1/2] scripts/bpf: Set version " Alejandro Colomar
2022-08-23 21:00 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=dd8e599f-eea4-75ea-2b03-8de2dee856da@gmail.com \
--to=alx.manpages@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kafai@fb.com \
--cc=kpsingh@kernel.org \
--cc=quentin@isovalent.com \
--cc=sdf@google.com \
--cc=songliubraving@fb.com \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.