BetterWikiDocs

Differences between revisions 22 and 67 (spanning 45 versions)
Revision 22 as of 2005-10-25 16:17:57
Size: 5626
Editor: mailgate
Comment: clarified solutions
Revision 67 as of 2008-08-06 16:38:32
Size: 7427
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from BetterWiki
Line 4: Line 3:
 * '''Launchpad Entry''': [https://launchpad.net/distros/ubuntu/+spec/better-wiki-docs]
 * '''Created''': [[Date(2005-10-06T21:07:03Z)]] by JaneWeideman
 * '''Contributors''': MatthewEast, HenrikOmma, CoreyBurger
 * '''
Packages affected''': None (website)
 * '''Launchpad entry:''' [[https://launchpad.net/distros/ubuntu/+spec/better-wiki-docs]]
 * '''Created:''' <<Date(2005-10-06T21:07:03Z)>> by JaneWeideman
 * '''Contributors:''' MatthewEast, HenrikOmma, CoreyBurger, MatthewPaulThomas, AndrewBennetts
Line 11: Line 9:
The documentation on the wiki suffers from a number of problems which are broadly caused by the fact that the current wiki serves many purposes at the same time. This spec aims to move the documentation to a separate wiki. Ubuntu's online help and support documentation suffers from being on the same Ubuntu wiki used for several other purposes. This can be fixed by moving it to a separate wiki, with policies tailored to the writing of useful and reliable help.
Line 15: Line 13:
We merged the UDU wiki into the main Ubuntu wiki in August and the Edubuntu wiki followed in October. This followed a general policy of not fragmenting wiki's if at all possible. There are some benefits to having all content gathered in one place, but, in the case of documentation, some drawbacks have become apparent. [[FrontPage|The main Ubuntu wiki]] incorporated the UbuntuDownUnder wiki in August 2005, and the Edubuntu wiki in October 2005 (see [[wiki/MergerPlan]]), so as to avoid fragmentation and duplication. But for help and support pages, being on this wiki causes several problems.
Line 17: Line 15:
The following problems arise with regard to the documentation currently on the wiki:
 * The wiki has a vast quantity of non-documentation, which is muddling for users in searches.
 * The wiki has many specs with addresses that look like documentation (e.g. BluetoothSupport) which means that users waste time going looking for red herrings
 * The wiki documentation is not in the same place as the static documentation released by the Documentation Team at [http://help.ubuntu.com help.ubuntu.com] - this leads to users having to search more than one place and general fragmentation of documentation.
 * There is a team of editors on the wiki (WikiTeam) but because all users have the same rights, pages occasionally get rewritten, moved and deleted in ways which create non-trivial problems.
 * The performance/speed of the wiki has degraded as the number of pages and revisions have increased.
 * People cannot find their documentation as easily as they should because (a) it is in more than one place (as explained above) and (b) there is no obvious link to it from the main Ubuntu website (the tab "Wiki" is not helpful, and the "Support" area is out of date).
 * '''Help is not in one place.''' Currently [[UserDocumentation|the help on the Ubuntu wiki]] (`wiki.ubuntu.com`), and [[http://help.ubuntu.com/|the help shipped with Ubuntu]] (also available at `help.ubuntu.com`), are two separate sets of documents. So those people who instinctively look to the Internet to answer their problems and end up on `wiki.ubuntu.com` are unlikely to guess that there is also help available at `help.ubuntu.com`, and vice versa. (Even if they were aware, it is bad to make them hop from site to site when that can be avoided.) Conversely, contributors to the wiki may unwittingly duplicate work that has already been done for the "official" help documents, and vice versa.
Line 25: Line 17:
== Use cases ==  * '''And about that "official" thing...''' Much of the "unofficial" help written on the wiki is contributed by volunteers just as knowledgable as those writing the the official docs on `help.ubuntu.com`. The wiki has a lot of reliable help, along with some less reliable, so `help.ubuntu.com` is sacrificing a lot of comprehensiveness in return for not much extra trustworthiness.
Line 27: Line 19:
n/a  * '''Lack of visibility.''' As the Ubuntu wiki's FrontPage shows vividly, help documents are sharing the same wiki as documents about development, marketing, bureaucracy, artwork, individual contributors, and general brainstorming. This makes it unnecessarily difficult to find help, and lowers the profile of the documentation for users and contributors alike.
Line 29: Line 21:
== Scope ==  * '''Lack of searchability.''' Because some help documents are shipped with Ubuntu and others are found only on the wiki, they cannot be searched all at once. And because the wiki contains [[SystemInfo|5631 pages]], only 600 or so of which are help, even searching just the wiki produces many irrelevant results. For example, searching for "Bluetooth" returns [[https://wiki.ubuntu.com/?action=fullsearch&context=180&value=Bluetooth&fullsearch=Text|374 results]].
Line 31: Line 23:
n/a  * '''Lack of structure.''' Partly because help documents are mixed in with documents of many other types, they are not consistent in their presentation and organization.
Line 35: Line 27:
 0. Move Wiki Documentation - options:
  * Use help.u.c used for both stable and wiki based documentation, and wiki.u.c (or dev.u.c) used for development and community pages.
  * More radical - Split out wikis based on content (not distro) and use interwiki winks. These could run on separate machines and have separate search, but login should be managed centrally. Wiki instances might include: teams.u.c, help.u.c, teams.u.c, specs.u.c, and wiki.u.c.
   * I don't like this idea as I think that there is no point hiving off wiki pages unless there is a good reason: AFAICS there is only a good reason in the case of documentation.
  * Look into moin development like clustering and caching techniques (non exist so far AFAIK).
 0. Stop people deleting/renaming pages - A workable solution for the problem with people deleting and renaming pages is to implement access level control: thus is it possible to limit delete/rename rights to a group of editors who know what they are doing, and leave editing rights open to all. See HelpOnAccessControlLists. This _could_ be implemented on the current Ubuntu wiki, but it would lead to inconvenience for developers (e.g. MOTU) who work on fast changing pages, which often need to be deleted and renamed.
 0. Improve the visibility of the documentation in general - options:
  * Make a "help" tab on the top of the Ubuntu website which points to help.ubuntu.com, where users can find both static documentation and wiki documentation. Space for this tab could be done by merging "Support" and "Partners" or by some similar means.
  * Include a prominent link with a similar effect to that under the "Support" tab of the website (less powerful solution).
All help documents currently on `wiki.ubuntu.com` should be moved to a single site, `help.ubuntu.com/community`. This will make the help easier to advertise, easier to find, easier to search and browse, and easier to contribute to.

A trusted wiki team should have the ability to rename and delete pages, and to edit certain core pages (such as the front page, and the main page for an Ubuntu release.) People not in the wiki team can still edit other pages, and create new pages of their own.

Redirects should be set up for existing URLs on `wiki.ubuntu.com` to the new URLs on `help.ubuntu.com/community`.
Line 47: Line 35:
=== Code === There are three steps. A desirable preliminary step would be to implement the WikiLicensing spec.
Line 49: Line 37:
Minimal code needed. A second installation of moin with the same tweaks as on the Ubuntu wiki would be required at help.ubuntu.com. See below for issues to resolve. === Set up the new wiki ===
Line 51: Line 39:
=== Data preservation and migration === Set up a Moin wiki for use as `help.ubuntu.com/community`. The server currently at help.ubuntu.com is not powerful enough to handle particularly well all the requests which it receives, and this will become much worse once the wiki documentation is hosted at that address too. For this reason, we almost certainly need some Canonical server love.
Line 53: Line 41:
The migration to a new server can be done by identifying the relevant pages (CategoryDocumentation is a start, but is not a complete list) and copying them to the new server. Moin permits this to be done with a simple {{{cp}}} command. A script might be required to copy all such pages over and apply whatever solution is adopted for the old pages. Configure this server to include the following features:
  * access controls, with normal users not being able to delete/move pages (''see'' MoinMaster:HelpOnAccessControlLists)
  * Launchpad authentication
  * customised theme, and possibly additional Macros/parsers (MoinMaster:HelpOnParsers) for adding html documentation.
Line 55: Line 46:
== Outstanding issues == This is all really easy.
Line 57: Line 48:
This spec would require resolving the following issues:
 0. Any new wiki would need to use Launchpad authentication
 0. The server at help.ubuntu.com would have to be good enough
 0. Problems with moving the wiki documentation would mainly involve LINK-BREAKING. For example: a google search for {{{Ubuntu Wiki Sudo}}} leads to: RootSudo. Lots of people will have that page bookmarked. Moving the documentation would break this link. There are a number of possible solutions to such a problem, none of which are perfect:
  * Use #refresh to automatically redirect the user onto a new wiki page (not currently enabled on the Ubuntu wiki), see HelpOnProcessingInstructions and HelpOnConfiguration
  * Use #redirect onto a specifically created page. The recent Italian wiki migration has done this, for example see the page ItalianSudo.
=== Migration of pages ===
Line 64: Line 50:
== BoF agenda and discussion == This involves two stages:
Line 66: Line 52:
Please note that 1/3 of the participants to this BOF will be at Ubuntu Below Zero, and the spec may not therefore be an ideal candidate for a scheduled session. However we would appreciate some eyeballs on this and input!  0. Moving the pages
  * We'd probably need a script which does something like this (this would probably require some developer time):
   * Searches for pages which contain the phrase "Category``Documentation. Specifically, the script should search {{{data/pages/PageName/revisions/latestrevision}}} for that string, for all values of "Page``Name".
   * For each page as identified above, copies the relevant folder to the new wiki.
 0. Replace old pages with redirect solution. It is imperative to keep the old urls for important pages valid. There are two reasonable options. The script would also need to implement this for all the pages which have been moved.
  * Use #refresh to automatically redirect the user onto a new wiki page (not currently enabled on the Ubuntu wiki), see MoinMaster:HelpOnProcessingInstructions and MoinMaster:HelpOnConfiguration
  * Use #redirect onto a specifically created page with information about the change. The recent Italian wiki migration has done this, for example see the page ItalianSudo.

=== Script Algorithm ===

 1. Get list of all pages in the wiki with the string "Category``Documentation"
 2. IF Doc then copy the whole page directory to the new location
 3. IF Flag live``Run = 1 THEN edit the page to redirect to info page

'''Working prototype:''' [[attachment:migrate_pages.py]]

The script can be based on existing moin maintenance scripts, such as the globaledit.py script

'''Find documentation pages:'''
 {{{#!python
if __name__ == '__main__':

  from MoinMoin import PageEditor, wikiutil
  from MoinMoin.request import RequestCLI
  from MoinMoin import search

  query = search.QueryParser().parse_query('Category``Documentation')
  results = search.searchPages(request, query)
  for hit in results.hits:
      page = PageEditor.PageEditor(request, hit.page_name, do_editor_backup=0)
}}}
(remove `` from between the words Category and Documentation)
(remove the `` from

'''Copy the complete page:'''
 {{{#!python
      shutil.copytree(page.getPagePath(), destination)
}}}

'''Update page to redirect:'''
 {{{#!python
      if liveRun:
        print "Writing %s ..." % repr(pagename)
        page._write_file("#refresh 0 http://help.ubuntu.com/community/" +
                         wikiutil.quoteWikinameURL(page.page_name))
}}}
(does this increment the page version or just over-write it?)
 -- HenrikOmma

(It adds a new revision of the page)
 -- AndrewBennetts <<DateTime(2006-05-03T06:41:36Z)>>

=== Searchability ===

In the future, we would want to look at making a unified search which is capable of searching both the html official docs and the wiki based community docs. This can be done after the implementation of this specification, because otherwise the spec risks biting off more than it can chew.

== Comments ==

See [[/talk]] for commenting on this spec.

Summary

Ubuntu's online help and support documentation suffers from being on the same Ubuntu wiki used for several other purposes. This can be fixed by moving it to a separate wiki, with policies tailored to the writing of useful and reliable help.

Rationale

The main Ubuntu wiki incorporated the UbuntuDownUnder wiki in August 2005, and the Edubuntu wiki in October 2005 (see wiki/MergerPlan), so as to avoid fragmentation and duplication. But for help and support pages, being on this wiki causes several problems.

  • Help is not in one place. Currently the help on the Ubuntu wiki (wiki.ubuntu.com), and the help shipped with Ubuntu (also available at help.ubuntu.com), are two separate sets of documents. So those people who instinctively look to the Internet to answer their problems and end up on wiki.ubuntu.com are unlikely to guess that there is also help available at help.ubuntu.com, and vice versa. (Even if they were aware, it is bad to make them hop from site to site when that can be avoided.) Conversely, contributors to the wiki may unwittingly duplicate work that has already been done for the "official" help documents, and vice versa.

  • And about that "official" thing... Much of the "unofficial" help written on the wiki is contributed by volunteers just as knowledgable as those writing the the official docs on help.ubuntu.com. The wiki has a lot of reliable help, along with some less reliable, so help.ubuntu.com is sacrificing a lot of comprehensiveness in return for not much extra trustworthiness.

  • Lack of visibility. As the Ubuntu wiki's FrontPage shows vividly, help documents are sharing the same wiki as documents about development, marketing, bureaucracy, artwork, individual contributors, and general brainstorming. This makes it unnecessarily difficult to find help, and lowers the profile of the documentation for users and contributors alike.

  • Lack of searchability. Because some help documents are shipped with Ubuntu and others are found only on the wiki, they cannot be searched all at once. And because the wiki contains 5631 pages, only 600 or so of which are help, even searching just the wiki produces many irrelevant results. For example, searching for "Bluetooth" returns 374 results.

  • Lack of structure. Partly because help documents are mixed in with documents of many other types, they are not consistent in their presentation and organization.

Design

All help documents currently on wiki.ubuntu.com should be moved to a single site, help.ubuntu.com/community. This will make the help easier to advertise, easier to find, easier to search and browse, and easier to contribute to.

A trusted wiki team should have the ability to rename and delete pages, and to edit certain core pages (such as the front page, and the main page for an Ubuntu release.) People not in the wiki team can still edit other pages, and create new pages of their own.

Redirects should be set up for existing URLs on wiki.ubuntu.com to the new URLs on help.ubuntu.com/community.

Implementation

There are three steps. A desirable preliminary step would be to implement the WikiLicensing spec.

Set up the new wiki

Set up a Moin wiki for use as help.ubuntu.com/community. The server currently at help.ubuntu.com is not powerful enough to handle particularly well all the requests which it receives, and this will become much worse once the wiki documentation is hosted at that address too. For this reason, we almost certainly need some Canonical server love.

Configure this server to include the following features:

  • access controls, with normal users not being able to delete/move pages (see HelpOnAccessControlLists)

  • Launchpad authentication
  • customised theme, and possibly additional Macros/parsers (HelpOnParsers) for adding html documentation.

This is all really easy.

Migration of pages

This involves two stages:

  1. Moving the pages
    • We'd probably need a script which does something like this (this would probably require some developer time):
      • Searches for pages which contain the phrase "CategoryDocumentation. Specifically, the script should search data/pages/PageName/revisions/latestrevision for that string, for all values of "PageName".

      • For each page as identified above, copies the relevant folder to the new wiki.
  2. Replace old pages with redirect solution. It is imperative to keep the old urls for important pages valid. There are two reasonable options. The script would also need to implement this for all the pages which have been moved.
    • Use #refresh to automatically redirect the user onto a new wiki page (not currently enabled on the Ubuntu wiki), see HelpOnProcessingInstructions and HelpOnConfiguration

    • Use #redirect onto a specifically created page with information about the change. The recent Italian wiki migration has done this, for example see the page ItalianSudo.

Script Algorithm

  1. Get list of all pages in the wiki with the string "CategoryDocumentation"

  2. IF Doc then copy the whole page directory to the new location
  3. IF Flag liveRun = 1 THEN edit the page to redirect to info page

Working prototype: migrate_pages.py

The script can be based on existing moin maintenance scripts, such as the globaledit.py script

Find documentation pages:

  •    1 if __name__ == '__main__':
       2 
       3   from MoinMoin import PageEditor, wikiutil
       4   from MoinMoin.request import RequestCLI
       5   from MoinMoin import search
       6 
       7   query = search.QueryParser().parse_query('Category``Documentation')
       8   results = search.searchPages(request, query)
       9   for hit in results.hits:
      10       page = PageEditor.PageEditor(request, hit.page_name, do_editor_backup=0)
    

(remove from between the words Category and Documentation) (remove the from

Copy the complete page:

  •    1       shutil.copytree(page.getPagePath(), destination)
    

Update page to redirect:

  •    1       if liveRun:
       2         print "Writing %s ..." % repr(pagename)
       3         page._write_file("#refresh 0 http://help.ubuntu.com/community/" + 
       4                          wikiutil.quoteWikinameURL(page.page_name))
    

(does this increment the page version or just over-write it?)

(It adds a new revision of the page)

Searchability

In the future, we would want to look at making a unified search which is capable of searching both the html official docs and the wiki based community docs. This can be done after the implementation of this specification, because otherwise the spec risks biting off more than it can chew.

Comments

See /talk for commenting on this spec.


CategorySpec

BetterWikiDocs (last edited 2008-08-06 16:38:32 by localhost)