Hi,

I would like to clarify how we want to handle wikis during install and upgrade. This is related to ticket #406, database upgrade to multiproduct.

Currently this is how things are implemented ('system' wikis are wikis that we bundle/pre-install):
1. clean install:
- 'system' wikis are being imported into global context
- default product does not have any of the 'system' wikis, wiki list is empty

2. upgrade (when upgrading to multiproduct):
- existing wiki pages (all of them, including 'system' ones) are migrated into the default product - as a consequence of that, global context is (after upgrade) left w/o any wikis

This is a problem as the results of the above are not consistent.

In my opinion we should have consistent setup of 'system' wikis, regardless of whether user has just done a clean install or upgraded an existing environment. They should always reside in global context.

Therefor I would suggest the following:
- keep the clean install as it is
- during upgrade, migrate only 'non-system' (custom) wikis to default product - redirect all URLs targeting 'system' wikis in any product scope to global scope wikis - this won't break links to 'system' wikis from custom ones

Open questions are:
- how to get a list of 'system' wikis? Setup enumerates wikis that are being imported (trac+bloodhound) using 'os.listdir()'. We could IMO do the same during upgrade, the problem is that 'trac-admin wiki bh-upgrade' renames the wikis later on, so we'd need to do the same. - redirecting URLs from product scope to global one actually reserves 'system' wiki namespace within all product scopes - what happens to wiki index (TitleIndexMacro) in the default product and global context?

Any comments/opinions?

Cheers,
Jure


Reply via email to