I think clear rules are still missing on how an arbitrary link is
translated into a WikiName. These should really be tight rules like
you already wrote about MediaWiki:

Hm? I thought I wrote the rules out already... What is missing, to be exact?

Regarding backwards compatibility, I'd recommend ignoring old special
cases (where existing) in favor of allowing for simple rules for 3.0+.

I thought that's what I said in the proposal :)

The only thing really to wonder about is the english plurals - setting. There's some annoying magic in ReferenceManager to make sure that "TestPage" and "TestPages" are considered same objects.

Especially the hidden platform dependencies, which are obviously
existing in the file-based provider up to 2.8 should be eliminated.

These are more or less errors, not really features.

* The simple way: Implement some fallback rules in wiki page lookup in
order not to break existing links. If feasible, the corresponding code
  should be marked as being for this purpose only.
  Problem: What if some old link isn't valid any more and therefore
  gets permanently redirected by this code? Then, someone creates a
  new page whose name is just this old link's name. This would break
  the old link without touching it directly.

Could you elaborate on that? The current recommendation to create links (2.8) is to simply put them inside brackets. For example, [This is a page] creates a link to a wikipage called "This is a page". In 2.4 and previously, this would actually create a link to "ThisIsAPage".

Our current implementation checks first for the existence of "This is a page", and then for backwards compatibility reasons, "ThisIsAPage". However, internally, these pages are not considered the same, so it is possible to create "This is a page" even when "ThisIsAPage" exists, and the new page will then take precedence.

Because *most* of the links at jspwiki.org are these backwards compatible forms, I don't think we can throw it away. However, what we can do is to make it a configuration item.

* If the simple way isn't feasible, implement a migration tool which
  converts the page names and links in existing repositories.

That may be really difficult to do (he said, having just watched one corporate migration where things were renamed automatically). Besides, since it modifies the repository, it needs some pretty heavy- duty testing.

The export tool can output the names in normalized form, but I'd hesitate to change the repo contents itself. Besides, it wouldn't work on most plugins, etc.

/Janne

Reply via email to