Brion et al.,
I'm through my to-do list for the namespace changes. They reside in the WIKIDATA branch.
a) Please review these changes and point out any remaining issues that need to be addressed.
b) Which branch should these changes be merged into once fully reviewed? HEAD or a separate release branch?
Best,
Erik
= The changes in a nutshell =
== Backend ==
- All namespace definitions are stored in the database (cached using memcached if available). Namespaces are objects stored in a global array, $wgNamespaces, and generally easier to deal with. - Any namespace can have an arbitrary number of names. This includes the canonical English name, the local translation, and synonyms. - Every namespace has a default name to which all other names redirect. - By default, "Image:" is now accessible through File:, Image:, Video: and Sound:. - Namespaces can have a default link prefix. Every unprefixed link in those namespaces will be treated as if it was prefixed with it. Example: In namespace [[Cookbook:Fish]], [[Pig]] could become [[Cookbook:Pig]]. The edit page in the namespace contains a notice to this effect. - Namespaces can be hidden from most selection lists, to make managing a site with hundreds of namespaces feasible. - The relationship between namespaces and talk pages is no longer hardcoded. Theoretically, we can relatively easily implement support for multiple talk pages associated with a namespace, for example.
== Namespace manager ==
- All the attributes of namespaces which are changeable can be changed through the namespace manager ([[Special:Namespaces]]). - The namespace manager allows merging "pseudonamespaces" into real ones. For example, Wikibooks uses a prefix "Cookbook:" for its Cookbook pages; the namespace manager provides a facility for merging all pages with this prefix, as well as the talk pages, into a real namespace. - By default, users in the 'bureaucrat' group have the necessary rights. We take some reasonable security precautions: - Deletions are not possible if a namespace contains pages. - System namespaces expected by MediaWiki can never be deleted. - Additions that would hide "pseudonamespaces" (hardcoded prefixes in page titles) or Interwiki links are not possible. - A separate permission exists for merging pseudonamespaces into non-empty real ones, since this action can be essentially irreversible. - It should not be possible to make changes which leave the database in an inconsistent or illogical state. No operation is performed unless all its parts can be completed. - Namespace additions, deletions, conversions and changes are logged. The logging of namespace changes could be improved, but should be sufficient for now.
== Install and Upgrade process ==
- When installing MediaWiki for the first time, the namespace definitions are loaded in the appropriate language. - When upgrading MediaWiki using update.php, any existing custom nanemspace definitions and settings (subpages etc.) should be imported.
== Page titles ==
- The page title is now passed to the skin in its components (action, namespace, title, suffix) rather than as a single string. These can be styled differently. In MonoBook, for example, the namespace component is now smaller and in italics. - This has resulted in some simplified interface messages.
== Future features ==
Some ideas for things that could be implemented:
- Read/write permissions associated with namespaces. - Namespace icons that are rendered as part of the page tite. - Complex namespace hierarchies. - Default "preload" template for a namespace. - Namespace view filters for users. This could make it feasible to use a single installation to set up a wiki farm. - And, of course, association of namespaces with Wikidata schemas. :-)
wikitech-l@lists.wikimedia.org