]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
Merge remote-tracking branch 'smcv/trail'
authorJoey Hess <joey@kitenet.net>
Thu, 5 Apr 2012 16:22:41 +0000 (12:22 -0400)
committerJoey Hess <joey@kitenet.net>
Thu, 5 Apr 2012 16:22:41 +0000 (12:22 -0400)
doc/bugs/nonexistent_pages_in_inline_pagenames_do_not_add_a_dependency.mdwn [new file with mode: 0644]
doc/bugs/trail_test_suite_failures.mdwn

diff --git a/doc/bugs/nonexistent_pages_in_inline_pagenames_do_not_add_a_dependency.mdwn b/doc/bugs/nonexistent_pages_in_inline_pagenames_do_not_add_a_dependency.mdwn
new file mode 100644 (file)
index 0000000..6f46561
--- /dev/null
@@ -0,0 +1,32 @@
+In commit aaa72a3a8, Joey noted:
+
+> bestlink returns '' if no existing page matches a link. This propigated
+> through inline and other plugins, causing uninitialized value warnings, and
+> in some cases (when filecheck was enabled) making the whole directive fail.
+>   
+> Skipping the empty results fixes that, but this is papering over another
+> problem: If the missing page is later added, there is not dependency
+> information to know that the inline needs to be updated. Perhaps smcv will
+> fix that later.
+
+Potential ways this could be addressed:
+
+* Add a presence dependency on everything the reference could match:
+  so if the `inline` is on `a/b/c` and the missing page is `m`,
+  add a `$depends_simple` `$DEPEND_PRESENCE` dependency on `a/b/c/m`,
+  `a/b/m`, `a/m`, `m` and (if configured) `$config{userdir}/m`
+
+* Make the page names in `\[[!inline pagenames=...]]` count as wikilinks,
+  changing the behaviour of `link()` and backlinks, but causing appropriate
+  rebuilds via the special cases in `IkiWiki::Render`
+
+* Extend the special cases in `IkiWiki::Render` to consider a superset of
+  wikilinks, to which `pagenames` would add its named pages, without
+  affecting `link()` and backlinks
+
+(Note that `\[[!inline pages=...]]` cannot count as wikilinks, because
+pagespecs can contain `link()`, so can't be evaluated until we know what
+wikilinks exist, at which point it's too late to add more wikilinks.)
+
+I think the presence dependency is probably the cleanest approach?
+--[[smcv]]
index db010c68ea90b5abe405b7ef97a8344fc24bd3e3..fcb2f0718858ea0067d3ab4480f4e585b0617911 100644 (file)
@@ -1,9 +1,22 @@
+[[!template id=gitbranch branch=smcv/trail author=smcv]] [[!tag patch]]
+
 `t/trail.t` has some test suite failures. This is after applying
 [[smcv]]'s patch that fixed some races that caused it to fail
 sometimes. These remaining failures may also be intermittant,
 although I can get them reliably on my laptop. I've added some debugging
 output, which seems to point to an actual bug in the plugin AFAICS. --[[Joey]] 
 
+> I can reproduce this reliably at 0a23666ddd but not 3.20120203. Bisecting
+> indicates that it regressed in aaa72a3a80f, "inline: When the pagenames list
+> includes pages that do not exist, skip them".
+>
+> I don't think this is the bug noted in the commit message - the inline
+> containing `sorting/new` uses `pages`, not `pagenames`. --[[smcv]]
+
+>> It seems you removed `trail` support from `inline` in that commit.
+>> Assuming that wasn't intentional, this is fixed in `smcv/trail`.
+>> --[[smcv]]
+
 <pre>
 ok 71 - expected n=sorting/end p=sorting/beginning in sorting/middle.html
 not ok 72 - expected n=sorting/new p=sorting/middle in sorting/end.html