Merge branch 'master' into dependency-types
authorJoey Hess <joey@gnu.kitenet.net>
Sat, 10 Oct 2009 00:16:46 +0000 (20:16 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Sat, 10 Oct 2009 00:16:46 +0000 (20:16 -0400)
Conflicts:
doc/bugs/transitive_dependencies.mdwn

1  2 
debian/NEWS
debian/changelog
debian/postinst
doc/bugs/transitive_dependencies.mdwn
doc/todo/dependency_types.mdwn

diff --cc debian/NEWS
index 520f3881535efb4afc1a5619ac7c86ab200bad0c,808105fd5b1e7cbc49306bd81bb5b15be2d79490..7c88ca7335d1a30b82abc4d3599b29cb4ccd3ba7
@@@ -1,13 -1,3 +1,13 @@@
- ikiwiki (3.14159266) UNRELEASED; urgency=low
++ikiwiki (3.2009XXXX) UNRELEASED; urgency=low
 +
 +  To take advantage of significant performance improvements, all
 +  wikis need to be rebuilt on upgrade to this version. If you
 +  listed your wiki in /etc/ikiwiki/wikilist this will be done
 +  automatically when the Debian package is upgraded. Or use
 +  ikiwiki-mass-rebuild to force a rebuild.
 +
 + -- Joey Hess <joeyh@debian.org>  Mon, 05 Oct 2009 16:48:59 -0400
 +
  ikiwiki (3.1415926) unstable; urgency=low
  
    In order to fix a performance bug, all wikis need to be rebuilt on
index 5ff8e4ac5f0c2ba44567c0cae956e1898d1a46b8,a79faf7fb2c5d1befd1a14dba1df26bfea8290f0..442619b3bcdbf62d240be336f861f9bc1120797f
@@@ -1,45 -1,19 +1,50 @@@
- ikiwiki (3.14159266) UNRELEASED; urgency=low
++ikiwiki (3.2009XXXX) UNRELEASED; urgency=low
 +
-   * parentlinks: Add has_parentlinks template parameter to allow styling
-     the toplevel index differently etc.
-   * img: Correct bug in image size calculation code.
-   * img: Fix dependency code for full size images.
-   * toggle, relativedate: Support templates that add attributes
-     to the body tag.
-   * Support RPC::XML 0.69's incompatable object instantiation method.
-   * mirrorlist: Display nothing if list is empty.
-   * Fix a bug that could lead to duplicate links being recorded
-     for tags.
-   * Added support framework for multiple types of dependencies.
-   * Allow declaring that a dependency is only affected by page presence
-     or changes to its links.
++  * Added support framework for multiple types of dependencies, including
++    dependncies that are only affected by page precence or link changes.
++  * Rebuild wikis on upgrade to this version to get improved dependency
++    info.
 +  * pagecount, calendar, postsparkline, progress: Use a presence dependency,
 +    which makes these directives much less expensive to use, since page
 +    edits will no longer trigger an unnecessary update.
 +  * map: Use a presence dependency unless show= is specified.
 +    This makes maps efficient enough that they can be used on sidebars!
 +  * inline: Use a presence dependency in quick mode.
 +  * brokenlinks: Use a link dependency.
 +    This makes it much more efficient, only updating when really necessary.
 +  * orphans, pagestats: Use a combination of presence and link dependencies.
 +    This makes them more efficient. It also fixes a longstanding bug,
 +    where if only a small set of pages were considered by orphans/pagestats,
 +    changes to links on other pages failed to cause an update.
 +  * linkmap: Use a combination of presence and link dependencies.
 +    This makes the map be regenerated much less frequently in many cases,
 +    so larger maps are more practical to use now.
-   * Transitive dependencies are now correctly supported.
-   * Rebuild wikis on upgrade to this version to get improved dependency
-     info.
 +  * Plugins providing PageSpec `match_*` functions should pass additional
-     influence information when creating result objects.
++    influence information when creating result objects. This allows correctly
++    handling many more complicated dependencies.
 +  * API change: `pagespec_match_list` has completly changed its interface.
 +    The old interface will be removed soon, and a warning will be printed
 +    if any plugins try to use it.
++  * Transitive dependencies are now correctly supported.
++
++ -- Joey Hess <joeyh@debian.org>  Fri, 09 Oct 2009 20:13:27 -0400
++
+ ikiwiki (3.20091009) unstable; urgency=low
+   * parentlinks: Add has_parentlinks template parameter to allow styling
+     the toplevel index differently etc.
+   * img: Correct bug in image size calculation code.
+   * img: Fix dependency code for full size images.
+   * toggle, relativedate: Support templates that add attributes
+     to the body tag.
+   * Support RPC::XML 0.69's incompatible object instantiation method.
+   * mirrorlist: Display nothing if list is empty.
+   * Fix a bug that could lead to duplicate links being recorded
+     for tags.
 -  * Optimize away most expensive file prune calls, when refreshing,
 +  * Optimize away most expensive file prune checks, when refreshing,
      by only checking new files.
  
-  -- Joey Hess <joeyh@debian.org>  Sun, 27 Sep 2009 17:40:03 -0400
+  -- Joey Hess <joeyh@debian.org>  Fri, 09 Oct 2009 19:53:50 -0400
  
  ikiwiki (3.14159265) unstable; urgency=low
  
diff --cc debian/postinst
index dd4be6e0e7948d408551a38ca0e886828189b102,2ba26e5b65010cee1649390240228a3d939b7afb..bf1825ab7b1ca5239fe1e831d44e2dd08dcafbf5
@@@ -4,7 -4,7 +4,7 @@@ set -
  
  # Change this when some incompatible change is made that requires
  # rebuilding all wikis.
- firstcompat=3.14159266
 -firstcompat=3.1415926
++firstcompat=3.20091010
  
  if [ "$1" = configure ] && \
     dpkg --compare-versions "$2" lt "$firstcompat"; then
index 0a2e9ec2896176658a2a94f7c44b5921d54b03b8,70b5fb4d4426edf12443b5ccfcd112a42a8671a6..c44fe7962ba4e90e864d955f7d378c61c56cadb9
@@@ -65,4 -65,30 +65,30 @@@ Downsides here
    modification to plugins/brokenlinks causes an unnecessary update of
    plugins, and could be solved by adding more dependency types.)
  
 ---[[Joey]] 
 +[[done]] --[[Joey]] 
+ > Some questions/comments...  I've thought about this a lot for [[todo/tracking_bugs_with_dependencies]].
+ > 
+ >  * When you say that anything that causes a rebuild of B is treated as a change of B, are you: i) Treating
+ > any rebuild as a change, or ii) Treating any rebuild that gives a new result as a change?  Option ii) would
+ > lead to fewer rebuilds.  Implementation is easy: when you're about to rebuild a page, load the old rendered html in.  Do the rebuild.  Compare
+ > the new and old html.  If there is a difference, then mark that page as having changed.  If there is no difference
+ > then you don't need to mark that pages as changed, even though it has been rebuilt.  (This would ignore pages in meta-data that don't
+ > cause changes in html, but I don't think that is a huge issue.)
+ >> That is a good idea. I will have to look at it to see if the overhead of
+ >> reading back in the html of every page before building actually is a
+ >> win though. So far, I've focused on avoiding unnecessary rebuilds, and
+ >> there is still some room for more dependency types doing so.
+ >> (Particularly for metadata dependencies..) --[[Joey]] 
+ >  * The second comment I have relates to cycles in transitive dependencies.  At the moment I don't think this is
+ > possible, but with some additions it may well become so.  This could be problematic as it could lead to a)
+ > updates that never complete, or b) it being theoretically unclear what the final result should be (i.e. you
+ > can construct logical paradoxes in the system).  I think the point above about marking things as changed only when
+ > the output actually changes fixes any cases that are well defined.  For logical paradoxes and infinite loops (e.g.
+ > two pages that include each other), you might want to put a limit on the number of times you'll rebuild a page in any
+ > given run of ikiwiki.  Say, only allow a page to rebuild twice on any run, regardless of whether a page it depends on changes.
+ > This is not a perfect solution, but would be a good approximation. -- [[Will]]
+ >> Ikiwiki only builds any given output file once per run, already. --[[Joey]] 
Simple merge