X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/af17ff4de59855f248ac9302e6a15164f3d7dd68..cbd7b8a1f22d09895fe0ad4de0e4358c02f82aef:/doc/todo/tracking_bugs_with_dependencies.mdwn diff --git a/doc/todo/tracking_bugs_with_dependencies.mdwn b/doc/todo/tracking_bugs_with_dependencies.mdwn index cd5f5e372..1b99d70b5 100644 --- a/doc/todo/tracking_bugs_with_dependencies.mdwn +++ b/doc/todo/tracking_bugs_with_dependencies.mdwn @@ -48,16 +48,23 @@ I like the idea of [[tips/integrated_issue_tracking_with_ikiwiki]], and I do so >> pagespec that uses it? >> >> Example: `define(~bugs, bugs/* and !*/Discussion) and define(~openbugs, ~bugs and !link(done)) and ~openbugs and !link(~openbugs)` ->> + +>>> That could work. parens are only ever nested 1 deep in that grammar so it is regular and the current parsing would be ok. + >> Note that I made the "~" explicit, not implicit, so it could be left out. In the case of ambiguity between >> a definition and a page name, the definition would win. ->> + +>>> That was my initial thought too :), but when implementing it I decided that requiring the ~ made things easier. I'll probably require the ~ for the first pass at least. + >> So, equivilant example: `define(bugs, bugs/* and !*/Discussion) and define(openbugs, bugs and !link(done)) and openbugs and !link(openbugs)` >> >> Re recursion, it is avoided.. but building a pagespec that is O(N^X) where N is the >> number of pages in the wiki is not avoided. Probably need to add DOS prevention. >> --[[Joey]] +>>> If you memoize the outcomes of the named pagespecs you can make in O(N.X), no? +>>> -- [[Will]] + > One quick further thought. All the above discussion assumes that 'dependency' is the > same as 'links to', which is not really true. For example, you'd like to be able to say > "This bug does not depend upon [ [ link to other bug ] ]" and not have a dependency. @@ -86,6 +93,10 @@ this todo [[todo/Add_a_plugin_to_list_available_pre-processor_commands]]. > I'm not sure why iterating over `%pagesources` wouldn't work here, it's the same method > used by anything that needs to match a pagespec against all pages..? --[[Joey]] +>> My uchecked hypothesis is that %pagesources is created after the refresh hook. +>> I've also been concerned about how globally defined pagespec shortcuts would interact with +>> the page dependancy system. Your idea of internally defined shortcuts should fix that. -- [[Will]] + Immediately below is a patch for IkiWiki.pm. Below that is a new plugin `definepagespec ` which behaves like `shortcut` for pagespecs.