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