Dev Log - r921

Tracking reviki development

[2008-06-15] ViewCvs up and running

Can now link to e.g. revision:917.

I've stuck with the debian viewcvs package for now so it isn't as pretty as some. The URLs could do with some modrewrite love too but all the linking will be via the wiki links so nevermind.

[2008-06-15] Misc bug fixes in revisions to 917

I've been working through a few issues encountered deploying reviki at work.

  • Timezone is now configurable, see TomcatContextXmlConfiguration.
  • wiki-content CSS class so ConfigCSS changes need not affect reviki's own layout (changing tables to have borders affected RecentChanges and similar which looked ugly - ok, well, uglier!).
  • Show date/time since page was locked as well as lock owner.

More minor improvements to come including proper ability to break locks and better feedback when creating wikis.

I'm hoping to get round to installing viewvc on the reviki SVN server. That way I can point at revisions with an inter-wiki-type link. I've been doing revision:1234 at work and that seems pretty neat - just as easy to type and a step saved for anyone wanting to review.

[2008-05-11] Configuration improvements (r862)

You can now configure the data directory via the reviki-data-dir context parameter. See SetupGuide/TomcatContextXmlConfiguration.

There's also improvements to configuring wiki base URLs - a base-url property. If many of the wikis run in a reviki instance are mapped to the same area of URL-space, differing only in the final path segment (the wiki name) then this saves adding a base-url for each one. Documented on ConfigFile.

[2008-05-08] Extracted XPathContext to own project (r846)

Documented on XPathContext. No doubt this will come in handy elsewhere - for me if no-one else.

[2008-05-05] Atom feed improvements and URL change (r828)

For consistency with the alternate format for search the atom feed is now at RecentChanges?ctype=atom.

I hope to introduce the ability to view more of the wiki as atom feeds and entries over time.

I've also added '?revision=NNNN' to the atom:id of the entries. It seems that bloglines (and probably others) gets really confused by multiple entries with the same id (though the specification permits this).

I've also started to write code to make it bearable to write tests against XML output in XPath. Seems like something that could be generally useful, might be worth tidying up and pulling out of reviki.

[2008-05-05] ConfigCss regression fixed (r823)

In r785 ConfigCss was ignored - the default styling always used. I found a better home for the code that set the default CSS URL (now in the view) but failed to notice I'd moved it after the code setting the wiki specific CSS URL.

The default now takes care not to overwrite anything previously set and I've added some tests.

Perhaps I should brighten up to make doubly sure but CSS just isn't my thing.

Update: I've made the page titles (slightly) more colourful.

[2008-05-05] HtmlUnit functional tests now run in ant (r814)

It will download tomcat, built and deploy a war, start tomcat, wait for it to come up, run the tests against it and clean up. Magic. I was particularly impressed with

 <waitfor maxwait="30" maxwaitunit="second" checkevery="500">
   <http url="http://localhost:8080/reviki/"/>

...I was expecting to have to do something horrible like take a guess and sleep.

Unfortunately some manual setup of the test wiki is still required (documented in the ant file). If we supported file repositories perhaps ant could do this too. Another possible enhancement is XSLT or similar to munge the tomcat port to something less likely to clash.

[2008-04-28] Configurable base URL (r789)

As noted on ConfigFile you can now set a property that determines the base URL for the wiki. Now when the reviki tomcat instance is behind something like Apache there is much more freedom as to what the URL space looks like. You can easily have and both being served from the same tomcat.

If you don't set the base URL it will continue to be based on the request and the '/pages/wikiName/PageName' structure.

Update (r807): Missed the resource URL for the search suggest feature's CSS. That's fixed in r807.

[2008-04-20] Atom feed fixes (r755)

The atom feed is now valid. Issues were:

  • Missing author element
  • Missing id element (now set to URI of feed)
  • Date format issues

The validator now gives warnings about update times (due to a move, so expected) and multiple entries with the same id (which are valid as they are changes to the same page).

[2008-04-20] XHTML validator now works properly and is in SVN

The (trivial) XHTML validator - XHTMLValidate - is now somewhat packaged up and is in SVN. I switched from using a catalog resolver to using a custom entity resolver as it still seemed to be going to the web when access was available, explaining why the tests were sometimes very slow.

[2008-04-17] NightlyBuilds now available

Erm that's it really.

[2008-04-15] ConfigAutoProperties

I'm working on addressing one of the attachment related stories for the 1.0 release.

The plan is to add ConfigAutoProperties which will be a text page containing the contents of the [auto-props] section of the svn config file. These will be used for new attachments.

This ought to make browsing the SVN repository directly more pleasing. The common practical problem is that the PDF files are incorrectly added as to SVN as text (as they often are for the first few bytes until you hit a compressed stream).

I'll also address using these mime types at attachment download time too (I think we currently always set application/octet-stream).

Update (r720): We now have ConfigAutoProperties with some default content to be documented on AboutConfigAutoProperties. Decided there's no point setting mime-type on download because the current behaviour results in the browser / OS mime-type mappings being used which is probably more comprehensive. Will gladly revisit if anyone has a use case.

[2008-03-31] XHTML validation

So it turns out this page is horribly, horribly invalid finally valid as of r682.

Time to find a validator I can hook into the HtmlUnit functional tests and the unit tests for the renderer.

Update (r660):

  • We have XHTML DTD validation hooked into the functional tests. Surprisingly slow though, even with catalog remappings for the W3C DTDs.
  • This page is valid except for an issue with ul elements generated by the renderer.

Update (r675):

  • Search result highlighting is now valid XHTML.
  • Diffs now valid XHTML.


  1. Attachments page invalid when no previous revisions (empty <ul>).
  2. Duplicate form input ids on attachments page.
  3. Still need to hook the validation up to the markup renderer.
  4. Fix renderer output (block elements inside p mostly).
  5. Fix new rendering glitch above (the **).
  6. Figure out why the validation is so slow.
  7. Add at least the WikiCreole page text as a more substantial functional test. The existing tests mostly test one element or the interaction between two elements.

[2008-03-30] A favicon (r650)

Sites without a favicon look dull, something the current reviki design needs no help with! I'm no graphics wizard but on the basis that something's better than nothing:


That'll do for a while. Cheers to the folks at dynamicdrive for making this easy (heh, perhaps too easy...)

Favicon maker- Create a favicon from any image

[2008-03-30] Title revision now last changed revision (r637)

The title revision is the last changed revision, rather than the accessed revision. As it was it just wasn't useful information, now you can get some idea of how old a page is. One problem common to all forms of documentation is parts inevitably get stale. It's good to have a visual indication of how recently the page has been updated. Perhaps for that reason the last changed date / user should be more visible...

[2008-03-30] Atomic commit for adding attachment and link (r629)

For a while now we've had uploading an attachment split across two commits, one creating the PageName-attachments directory (if requried) and the other committing the attachment file. As of r619 it got worse - we now automatically add a link to the attachment to the associated page.

Time to tidy SVNPageStore/BasicSVNOperations to make it easy to create the directory and the file in the same commit. This will be needed for RefactorRename too.

Update r629: The mutator methods on BasicSVNRepository now do less to give the SVNPageStore more control over combining modifications. All the operations needed to upload an attachment are now a single commit. Having to assemble all the actions up-front - because SVNRepository isn't re-entrant - leads to a clumsy separation of figuring out if something needs to be done and doing it - suspect we could pull out a prepare / perform interface. Revisit for RefactorRename.