Thread (11 messages) 11 messages, 3 authors, 2025-03-19

Re: [PATCH 3/3] meson: don't install git-pack-redundant(1) docs with breaking changes

From: Phillip Wood <hidden>
Date: 2025-03-17 14:51:03

Hi Patrick

On 17/03/2025 13:57, Patrick Steinhardt wrote:
On Sun, Mar 16, 2025 at 03:19:48PM +0000, Phillip Wood wrote:
quoted
On 12/03/2025 13:17, Patrick Steinhardt wrote:
quoted
+manpages_breaking_changes = {
+  'git-pack-redundant.adoc' : 1,
+}
+
+if not get_option('breaking_changes')
+  manpages += manpages_breaking_changes
+endif
+
   docs_backend = get_option('docs_backend')
   if docs_backend == 'auto'
     if find_program('asciidoc', dirs: program_path, required: false).found()
@@ -479,7 +486,9 @@ endif
   # Sanity check that we are not missing any tests present in 't/'. This check
I think this part of the comment must have been copied from somewhere else
quoted
quoted
   # only runs once at configure time and is thus best-effort, only. Furthermore,
   # it only verifies man pages for the sake of simplicity.
-configured_manpages = manpages.keys() + [ 'git-bisect-lk2009.adoc', 'git-tools.adoc' ]
+configured_manpages = manpages.keys()
+configured_manpages += manpages_breaking_changes.keys()
+configured_manpages += [ 'git-bisect-lk2009.adoc', 'git-tools.adoc' ]
I don't think we need this hunk as we add manpages_breaking_changes into
manpages in the hunk above.
We indeed need it: it's required in case the 'breaking_changes' option
is enabled. In that case we still need to have the man pages here in
this variable because we use it to check that the manpage is handled at
all. Otherwise we would error out because Meson thinks that we forgot to
wire up this manpage that we found in the source directory.
Oh so if we have selected breaking_changes then manpages.keys() does not 
include "git-pack-redundant.adoc" but that file exists and so we need to 
add it to the list of configured man pages. If breaking_changes is 
selected then don't we end up adding "git-pack-redundant.adoc" to 
configured_manpages twice? Does that matter when we come to do

actual_manpages = run_command(shell, '-c', 'ls git*.adoc scalar.adoc',
   check: true,
   env: script_environment,
).stdout().strip().split('\n')

if configured_manpages != actual_manpages
   ...

? Also I'm confused as to how that comparison works without sorting 
configured_manpages. Even if manpages.keys() sorts the keys (the 
documentation at [1] is silent on that) we add some out-of-order entries 
to the end of the list.

Best Wishes

Phillip

[1] https://mesonbuild.com/Reference-manual_elementary_dict.html#dictkeys
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help