docs/CHANGES
author Thomas Waldmann <tw AT waldmann-edv DOT de>
Mon Dec 24 21:24:58 2007 +0100 (2007-12-24)
changeset 2482 640f21787334
parent 2459 683837b4fe04
child 2483 8aa26f1a2238
permissions -rw-r--r--
updated CHANGES
     1 MoinMoin Version History
     2 ========================
     3 
     4 Please completely read CHANGES text until you reach the version you were
     5 using until now. Otherwise you might miss some important upgrading and
     6 configuration hints.
     7 
     8 Starting with 1.5.3, update installation hints are marked with HINT.
     9 They assume you are upgrading from the last release version before (e.g. from
    10 1.5.2 to 1.5.3).
    11 
    12 This release has known bugs (see MoinMoin:MoinMoinBugs), but we think it is
    13 already better than the previous stable release. Our release policy is not
    14 trying to make a "perfect release" (as that release might NEVER get released),
    15 but to make progress and don't delay releases too much.
    16 
    17 Known main issues:
    18 
    19   * The GUI WYSIWYG editor has still some issues and limitations.
    20     If you can't live with those, you can simply switch it off by using:
    21     editor_force = True
    22     editor_default = 'text'  # internal default, just for completeness
    23 
    24   * TWikiDraw may have some issues - we need some JAVA guy caring for it!
    25 
    26   * "Backup" and especially "Restore" action (both new in 1.5) have some
    27     issues, so please DON'T USE THEM except if you want to help debugging
    28     and improving it and after having made a backup with some other, proven
    29     method. USE BOTH ON YOUR OWN RISK!
    30 
    31 Version 1.6.0:
    32  * Misc. fixes:
    33    Fixed parsing of free URLs, see:
    34        MoinMoin: href="http://moinmo.in/MoinMoinBugs/1.6LinksNotTerminatedOnRightParenthesis">MoinMoinBugs/1.6LinksNotTerminatedOnRightParenthesis
    35        MoinMoin: href="http://moinmo.in/MoinMoinBugs/ParenthesesBeforeDot">MoinMoinBugs/ParenthesesBeforeDot
    36    Please use [[...]] or surrounding blanks in cases of trouble.
    37    action.SyncPages: bug fix for MoinMoinBugs/1.6SyncBrokenByFormattedKeyword
    38    wiki parser: fix interwiki detection (matched stuff like '''Foo:''' before)
    39    wiki parser: fix parser shebang line detection, re-enable tests
    40    1.6 mig scripts: better error handling
    41    wikiutil.url_unquote: try harder when decoding to unicode, avoid crashing
    42    action.SyncPages: bug fix for MoinMoinBugs/1.6SyncBrokenByFormattedKeyword
    43 
    44 Version 1.6.0rc2:
    45  * Misc. fixes:
    46    stats macro which shows the preferred language distribution of the wiki users (Thanks to Nina Kuisma)
    47    fix suid, add action parameter to createTicket, improve checkTicket logging
    48    refactored action.PackagePages for CloneWikiPagesByPackagePages (Thanks to Federico Lorenzi)
    49    test_packages: further tests for PackagePages (Thanks to Federico Lorenzi)
    50    useragent/language stats: fixed division by zero, do not use 'sum' (reserved)
    51    moin export dump: added kw args to _attachment(), fixes exception when dumping pages
    52    adapting moin export dump to the current heading style (removing duplicate h1), thanks to Boleslaw Kulbabinski
    53    UserPreferences 'send account data' also accepts username now (not only email addr), thanks to Joel Nackman
    54    Creole parser fixes, '#format creole' works now
    55    WSGI: initialize logging (untested)
    56    Navigation macro: use re.escape to fix problems with pagenames containing special regex chars (thanks to Boleslaw Kulbabinski)
    57    action.edit: bug fix for missing #format (Page for send_page)
    58 
    59 
    60 Version 1.6.0rc1:
    61   New features:
    62     * textchas_disabled_group = None # (default)
    63       Set this to some group name and noone in this group will get textchas.
    64       E.g.: textchas_disabled_group = u'NoTextChasGroup'
    65     * Added a --dump-user option to the moin dump command. Thanks to Oliver O'Halloran.
    66 
    67   Bugfixes:
    68     * Nested parser/pre sections should work now, using this syntax:
    69       a) just use more curly braces if you have 3 closing in your content:
    70          {{{{
    71          }}} <- does not terminate the section!
    72          }}}}
    73       b) use {{{ + some magic string:
    74          {{{somemagicstring
    75          }}} <- does not terminate the section!
    76          somemagicstring}}}
    77       c) {{{whatever#!python
    78          # py code
    79          whatever}}}
    80       Pitfall: stuff like below does not work as it did in 1.5:
    81          {{{aaa
    82          bbb}}}
    83       Solution:
    84          {{{
    85          aaa
    86          bbb
    87          }}}
    88       Maybe this can get automatically converted by the mig script (TODO).
    89     * While fixing the nested parser/pre section, some other related rendering
    90       bugs were also fixed (e.g. missing blanks after }}}).
    91     * Misc fixes:
    92       Search: add debug logging, fix bugs (negative search terms failing, and others - backport from 1.7)
    93       Avoid empty highlight query arg, do not use highlight for titlesearch terms
    94       Wiki parser section nesting:
    95         Reverting parser nesting changesets
    96         Enable switching the scanning regex while processing some line (fixes missing blank after }}} bug, maybe other bugs, too)
    97         Integrate pre section into parser section processing, fix bugs, clean up
    98         Solve nesting problems by letting the user use more curly braces or a unique string, updated CHANGES
    99         Fixing parser arg parsing, fixing 'set' compatibility for py 2.3
   100         Fix end of parser/pre section detection for indented stuff, fix empty lines at beginning of rendered parser sections
   101       Do not treat SystemExit exception as a failure (fixes SystemExit showing up in the logs when using fastcgi)
   102       Fix NameError exception in gui converter
   103       Fix gui editor insertion of .jpeg images
   104       Fix ValueError exception for strange url_prefix_action URLs
   105       Fix attachment_link of docbook formatter
   106       Fix "MakeIconLinkLosesAltTitle", thanks to "bolekk".
   107       Fix for WrongAlignedAttachment (Thanks to Benjamin Weber)
   108       Fix MoinMoinBugs/SubscribeAndUnsubscribeShareSameUrl (thanks to Federico Lorenzi)
   109       Fix MoinMoinBugs/XmlRpcPutPageAllowsEmptyPageName (thanks to Jonas Wagner)
   110       Fix for MoinMoinBugs/TrivialChangeEasyAccess (thanks to Ninnu)
   111       Fix quicklink action using same URL for link/unlink (thanks to Federico Lorenzi)
   112       Better no content-length header than a wrong one, fixes truncated action=raw output for non-ascii pages
   113       Do not send any 404 content to bots
   114       MonthCalendar:
   115         Added some rel=nofollow so that at least some well-behaved bots won't read the calendar forever
   116         Avoid even bad behaved bots reading more than current year +/- 1 in the calendar, rel=nofollow for links to nonexisting day pages
   117 
   118 
   119 Version 1.6.0beta2:
   120   New features:
   121     * cfg.password_checker (default: use some simple builtin checks for too
   122       easy passwords and, if available, python-crack).
   123       Use password_checker = None to disable password checking.
   124     * Added some trivial xmlrpc examples (scripts).
   125     * Added some experimental and disabled code, that uses x-forwarded-for
   126       header (if present) to get the right "outside" IP before a request
   127       enters our chain of trusted (reverse) proxies.
   128       This code has the problem that we can't configure it in wikiconfig, so
   129       if you want to use it / test it, you have to edit the moin code:
   130       MoinMoin/request/__init__.py - edit proxies_trusted (near the top).
   131       We will try to make this easier to configure, but there was no time left
   132       before 1.6.0 release for doing bigger code refactorings needed for that.
   133 
   134   Bugfixes:
   135     * Do not modify cfg.page_icons_table (fixes sticky/wrong rev param in
   136       iconbar for themes using an icon bar).
   137     * Do not show 2 editor links if text editor is forced.
   138     * Fixed MoinMoinBugs/OrphanPagesFoundInMissingPage.
   139     * The regex for /* inline comments */ was way to generic and broke some
   140       pages. We now require whitespace before and after /* and */.
   141     * Misc. small fixes and backports from 1.7:
   142       fix traceback when there are errors in the config file, don't tell people to report a bug for that (backport from 1.7)
   143       don't require all plugins to be in the data/plugin dir, cache modules list (backported from 1.7)
   144       text_html_text_moin_wiki: linebreak in table cell should be written into wiki text as <<BR>> (backported from 1.7)
   145       text_html_text_moin_wiki: an empty formatted cell of a pasted table should not be saved as a formatted br (backported from 1.7)
   146       text_html_text_moin_wiki.process_inline: linebreaks as <<BR>> and not \n (backported from 1.7)
   147       introduced hitsInfo keyword for results.pageList (default is 0). Action fullsearch does set it to 1. So the macro FullSearch does not show the hits info. (backported from 1.7)
   148       Creole parser: fixed bug in anchors + test for it
   149       search.results: added missing hitsInfo=0 to pageListWithContext (backport from 1.7)
   150       only display textcha row on UserPreferences if there really is one
   151       CopyPage/RenamePage/DeletePage action: fix regex compile errors due to unescaped pagename usage, fix cosmetic bug, simplify/optimize code
   152       i18n: trying to fix recursion in formatMarkup in a cleaner way
   153 
   154   Other changes:
   155     * Updated the ldap_login code from 1.5 branch, supports TLS now.
   156       See MoinMoin/config/multiconfig.py for supported configuration options
   157       and their defaults (and please just change what you need to change,
   158       in your wikiconfig).
   159       PLEASE TEST THIS, IT IS COMPLETELY UNTESTED!
   160       Please test with OpenLDAP and MS Active Directory.
   161 
   162 
   163 Version 1.6.0beta1:
   164   New Features:
   165 
   166     * Changed markup for links, images and macros, see these wiki pages:
   167       HelpOnLinking, HelpOnMacros
   168     * TextCHAs (text-form CAPTCHAs).
   169       Due to increasingly annoying wiki spammers, we added the option to use
   170       TextCHAs (for page save (not for preview!), for attachment upload, for
   171       user creation (not for profile save)).
   172       This function is disabled by default. If you run a wiki that is editable
   173       by anonymous or non-approved users from the internet (i.e. All: or Known:
   174       in ACL terms), you should enable it in your wiki config by:
   175       textchas = { # DO NOT USE EXACTLY THESE QUESTIONS!!!
   176           'en': {
   177               u'H2O is ...': u'water', # bad: too common
   178               u'2 apples and three bananas makes how many fruits?': ur'(five|5)', # good
   179               u'2 apples and three pigs makes how many fruits?': ur'(two|2)', # good
   180               u'2+3': ur'5', # bad: computable
   181               u'
   182           },
   183           'de': { # for german users
   184               u'H2O ist ...': u'wasser',
   185           },
   186       }
   187       This means that english users will get some random question from the 'en'
   188       set, german users will get some from the 'de' set. If there is no 'de'
   189       set configured, moin will fallback to language_default and then to 'en',
   190       so make sure that you at least have a 'en' set configured (or whatever
   191       you have set as language_default).
   192       You need to use unicode for the questions and answers (see that u"...").
   193       For the answer, you need to give a regular expression:
   194       * In the easiest case, this is just some word or sentence (first en
   195         example). It will be matched in a case-insensitive way.
   196       * For more complex stuff, you can use the power of regular expressions,
   197         e.g. if multiple answers are correct (second en example). Any answer
   198         matching the regular expression will be considered as correct, any
   199         non-matching answer will be considered as incorrect.
   200 
   201       Tipps for making it hard to break for the spammers and easy for the users:
   202       * Use site-specific (not too common) questions.
   203       * Don't use too hard questions (annoys legitimate users).
   204       * Don't use computable questions.
   205       * Don't reuse textchas from other sites.
   206     * Added Xapian (see http://xapian.org/) based indexed search code.
   207       To use this:
   208       * Install xapian-core and xapian-bindings on your machine.
   209         We used 0.9.4, but newer code should hopefully work, too.
   210       * cfg.xapian_search = True
   211       * Execute this to build the index:
   212         $ moin ... index build   # indexes pages and attachments
   213         $ moin ... index build --files=files.lst  # same plus a list of files
   214         You should run those commands as the same user you use for your wiki,
   215         usually this is the webserver userid, e.g.:
   216         $ sudo -u www-data moin --config=... --wiki-url=wiki.example.org/ \
   217                index build --files=files.lst
   218     * New searches:
   219         - LanguageSearch: language:de
   220         - CategorySearch: category:Homepage
   221         - MimetypeSearch: mimetype:image/png (for attachments/files)
   222         - DomainSearch: domain:underlay or domain:standard
   223         - History Search: available in advanced ui
   224       Note: Some currently only available when Xapian is used.
   225     * New config options and their defaults:
   226         xapian_search        False  enables xapian-powered search
   227         xapian_index_dir     None   directory for xapian indices
   228                                     (can be shared for wiki farms)
   229         xapian_stemming      True   toggles usage of stemmer, fallback
   230                                     to False if no stemmer installed
   231         search_results_per_page 10  determines how many hits should be
   232                                     shown on a fullsearch action
   233         xapian_index_history False  indexes all revisions of pages to
   234                                     allow searching in their history
   235     * The action menu now calls the actions for the revision of the page you
   236       are currently viewing. If you are viewing the current page revision, you
   237       get the same behaviour as in moin 1.5, but if you are viewing an old
   238       page revision, action "raw" will now show you the raw text of this OLD
   239       revision (not of the current revision as moin 1.5 did it).
   240       Note that not every action does evaluate the rev=XX parameter it gets.
   241       Also please note that the edit, info, ... links in the editbar do NOT
   242       use the rev parameter, but operate on the latest page revision (as
   243       they did in moin 1.5).
   244     * Enhanced SystemAdmin's user browser, so a SuperUser can enable/disable
   245       users from there.
   246     * Info action lost the links for "raw", "print" and "revert" actions,
   247       because you can now just view an old revision and select those actions
   248       from the menu there.
   249     * The standalone server script moved to the toplevel directory. This makes
   250       it possible to directly start moin.py without additional configuration
   251       to run a MoinMoin DesktopEdition like wiki setup.
   252       Be careful: DesktopEdition uses relaxed security settings only suitable
   253       for personal and local use.
   254     * Added the MMDE scripts to contrib/DesktopEdition.
   255     * Removed "underscore in URL" == "blank in pagename magic" - it made more
   256       trouble than it was worth. If you still want to have a _ in URL, just
   257       put a _ into pagename.
   258     * FeatureRequests/WikiEmailIntegration, HelpOnConfiguration/EmailSupport
   259     * HTML parser (called "html") that allows you to use HTML on the page.
   260       Thanks to the trac team for the nice code.
   261     * You can have a common cache_dir for your farm (will save a bit space
   262       and cpu time as it shares some stuff).
   263       You need to set "cache_dir = '/some/farm/cachedir' in your farmconfig.
   264     * Added XMLRPC methods for attachment handling. Thanks to Matthew Gilbert.
   265     * Added TLS/SSL support to the standalone server. Thanks to Matthew Gilbert.
   266       To use TLS/SSL support you must also install the TLSLite library
   267       (http://trevp.net/tlslite/). Version 0.3.8 was used for development and
   268       testing.
   269     * cfg.log_reverse_dns_lookups [default: True] - you can set this to False
   270       if rev. dns lookups are broken in your network (leading to long delays
   271       on page saves). With False, edit-log will only contain IP, not hostname.
   272     * ?action=sitemap emits a google sitemap (XML), listing all your wiki pages
   273       and the wiki root URL.
   274       Page                      Priority / Frequency / Last modification
   275       --------------------------------------------------------------------
   276       /                         1.0 / hourly / <now>
   277       cfg.page_front_page       1.0 / hourly / page last edit
   278       TitleIndex,RecentChanges  0.9 / hourly / <now>
   279       content pages             0.5 / daily / page last edit
   280       system/help pages         0.1 / yearly / page last edit
   281     * We use rel="nofollow" for some action links in the hope that some search
   282       engines don't fetch the targets (if they do, they will just get 403 and
   283       cause unnecessary traffic).
   284     * Included EmbedObject macro for embedding different major mimetypes:
   285       application, audio, image, video, chemical, x-world. 
   286       You are able to change the defaults of allowed mimetypes in the config var mimetypes_embed.
   287       The config var mimetypes_xss_protect is used to deny mimetypes. The order of both variables  
   288       is Allow, Deny  (mimetypes_embed, mimetypes_xss_protect)
   289     * @SIG@ etc. generate local time stamps now, no difference visible on page
   290       view.
   291     * Speeded up linkto search by avoiding read locks on the pagelinks file.
   292     * The i18n system no loads *.po files directly (no *.py or *.mo any more)
   293       and caches the results (farm wide cache/i18n/*).
   294     * Added the diff parser from ParserMarket, thanks to Emilio Lopes, Fabien
   295       Ninoles and Juergen Hermann.
   296     * Added support for "304 not modified" response header for AttachFile get
   297       and rss_rc actions - faster, less traffic, less load.
   298     * Added support for @SELF to the NewPage macro.
   299     * Conflict icon in RecentChanges.
   300     * New XMLRPC methods (see doc strings for details):
   301       * getMoinVersion
   302       * system.multicall -- multicall support
   303       * Authentication System: getAuthToken/appyAuthToken
   304       * getDiff -- method to get binary diffs
   305       * mergeDiff -- method to local changes remotely
   306       * interwikiName -- method to get the IWID and the interwiki moniker
   307       * getAllPagesEx -- method to get the pagelist in a special way (revnos,
   308         no system pages etc.)
   309       * getAuthToken -- make and authentication token by supplying username/password
   310       * applyAuthToken -- set request.user for following xmlrpc calls (within the
   311                           same multicall)
   312       * getUserProfile -- method to get user profile data for request.user
   313     * XMLRPC putPage method adjusted to new AuthToken, config vars 
   314       xmlrpc_putpage_enabled and xmlrpc_putpage_trusted_only removed.
   315     * actions_excluded now defaults to ['xmlrpc'] - this kind of disables the
   316       built-in wiki xmlrpc server code (not completely: it will just answer
   317       with a Fault instance for any request). If you want to use xmlrpc v1 or
   318       v2, you have to remove 'xmlrpc' from the actions_excluded list (for
   319       example if you want to use wikisync, mailimport or any other feature
   320       using xmlrpc). If you enable xmlrpc, it will be possible that someone
   321       changes your wiki content by using xmlrpc (it will of course honour ACLs).
   322     * IWID support - i.e. every wiki instance has a unique ID.
   323     * The list of InterWiki sites is editable in the wiki (page InterWikiMap),
   324       it is getting reloaded every minute.
   325     * Synchronisation of wikis using the SyncPages action.
   326     * GetText2 macro that allows to translate messages that contain data.
   327     * showtags action that lists all tags related to a page.
   328     * If you have "#acl" (without the quotes) on a page, this means now:
   329       "this page has own (empty) ACLs, so do not use acl_rights_default here"
   330       Please note that this is COMPLETELY DIFFERENT from having no ACL line at
   331       all on the page (acl_rights_default is used in that case).
   332     * Added support for actions in the irssi parser. Thanks to Georg Brandl.
   333     * */MoinEditorBackup pages are not created any more (TODO: write mig script
   334       that removes existing ones from data/pages). We now have a drafts
   335       functionality as follows:
   336       * If you edit a page and cancel the edit, use preview or save, a draft
   337         copy gets saved for you to a internal cache area (data/cache/drafts/).
   338       * If it is a save what you did and it succeeds, the draft copy gets
   339         killed right afterwards.
   340       * If you accidentally used cancel or your browser or machine crashes
   341         after you used preview, then just visit that page again and edit it.
   342         the editor will notify you that there is a draft of this page and you
   343         will see a "Load draft" button. Click on it to load the draft into the
   344         editor and save the page.
   345       * The draft storage is per user and per page, but only one draft per page.
   346     * cfg.quicklinks_default and cfg.subscribed_pages_default can be used to
   347       preload new user profiles with configurable values.
   348     * Added support for ircs: URLs (secure IRC).
   349     * It is now supported to resize an image from within the gui editor.
   350     * We now log a rename action as SAVE/RENAME in edit-log and display
   351       appropriate comments if the user did not supply an own comment.
   352       We also use a different icon to display the rename action on RecentChanges.
   353       TODO: add a different icon for "renamed", we currently just use the same
   354             as for "updated" with different alt text, see theme/__init__.py.
   355     * RecentChanges:
   356       * If a change has happened after your bookmark, the updated/new/renamed
   357         icon links to the bookmark diff.
   358       * If a page does not exist any more (because it was deleted or renamed),
   359         we link the deleted icon to the diff showing what was deleted (for the
   360         delete action). For the rename action, we just show the deleted icon.
   361     * The login page gives now the possibility to recover a lost password, thanks to 
   362       Oliver Siemoneit. This is especially useful for wikis where access to user 
   363       preferences is restricted by acl.
   364     * We now have the possibility to add a Discussion page 
   365       (FeatureRequests/DiscussionAndOrCommentPages).
   366     * "Package Pages" action supports attachments now.
   367     * The wiki parser can be used with css classes now:
   368       {{{#!wiki comment
   369       This will render output within a div with class "comment".
   370       You can use any wiki markup as usual.
   371       }}}
   372       You can also combine multiple css classes like this:
   373       {{{#!wiki red/dotted/comment
   374       This will render a red background, dotted border comment section.
   375       }}}
   376       The same thing will work for any other css classes you have.
   377       If the css classes contain the word "comment", they will trigger some
   378       special feature, see next item:
   379     * New wiki markup for /* inline comments */ - they get rendered as a span
   380       with class="comment", see next item:
   381     * There is a new item in the edit bar: "Comments". If you click it, the
   382       visibility of all class "comment" tags will be toggled. There is a user
   383       preferences item "show_comments" to set if the default view shows them or not.
   384     * Added SisterPages support:
   385       * action=sisterpages will generate a list of url pagename lines for all
   386         pages in your moin wiki.
   387       * action=pollsistersites will poll all sister sites listed in
   388         cfg.sistersites = [(wikiname, fetchURL), ...]
   389         The fetch URL for the sistersites depends on the wiki engine, e.g.:
   390         # moin based wiki:
   391         ('MoinExample', 'http://moin.example.org/?action=sisterpages')
   392         # oddmuse based wiki:
   393         ('EmacsWiki', 'http://www.emacswiki.org/cgi-bin/test?action=sisterpages')
   394         # JspWiki based wiki:
   395         ('JspWiki', 'http://www.jspwiki.org/SisterSites.jsp')
   396       * If the current page exists on some sister wiki, a link to it will be
   397         added to the navibar.
   398       You can use sister wikis for adding another dimension to your wiki UI: use
   399       it for simple multi language support, or for comments, or anything else
   400       "related" you need.
   401       TODO: add sistersites_force with sister sites we link to even if they do not
   402             have the page yet (will work only for moin as we don't know
   403             pagename>url transformation of other wikis)
   404     * Make the FootNote macro filter duplicates and display a list of numbers
   405       instead of a list of identical footnotes. Thanks to Johannes Berg for the
   406       patch.
   407     * autofilters for databrowser widget. Thanks to Johannes Berg for the patch.
   408     * Action DeletePage and RenamePage can now be used for subpages of a page, too.
   409     * Added Action CopyPage so you can use now an existing page or page hierarchy
   410       as template for a new page, see FeatureRequests/CloneOrCopyPages.
   411       TODO: we need a copy icon in RC
   412     * Session handling for logged-in users and (not by default due to expiry
   413       problems) anonymous users.
   414     * Interwiki auth: You need to define cfg.trusted_wikis and
   415        cfg.user_autocreate to use it. Logging in works by entering:
   416       Name: RemoteWikiName RemoteUserName
   417       Password: remotepass
   418       Then moin contacts RemoteWikiName after looking it up in the interwiki
   419       map and tries to authenticate there using RemoteUserName and remotepass.
   420       If it succeeds, the remote wiki will return the remote user profile items
   421       and your local moin will autocreate an account with these values.
   422     * Antispam master url is now configurable via cfg.antispam_master_url.
   423       The default is to fetch the antispam patterns from MoinMaster wiki.
   424     * Antispam now checks the edit comments against BadContent also.
   425     * action=view does use mimetypes of EmbedObject too and text files will be shown
   426       by using their colorized parsers
   427     * Hierarchical ACLs are now supported, i.e. pages inheriting permissions
   428       from higher-level pages. See HelpOnAccessControlLists.
   429     * New text/creole parser that allows you to use WikiCreole 1.0 markup.
   430 
   431   Bugfixes:
   432     * lots of bugfixes related to link parsing
   433     * On action "info" page, the "revert" link will not be displayed for empty
   434       page revisions (but you just can delete the current page to the same
   435       result: an empty rev.)
   436     * Fix vanishing strike markup after gui editor usage.
   437     * Fix deletion of empty Interwiki links ([wiki:MoinMaster: mm entry page]).
   438     * Fix mod_python attachment upload bug (thanks to Nick Phillips).
   439     * Fix show_version to show it in the same way as SystemInfo.
   440     * Allow "-" in usernames (fixes "Invalid user name" msg).
   441     * Fixed smiley caching bug (smileys didn't change theme).
   442     * Fixed backtrace when user removed css_url entry from user_form_fields.
   443     * Fixed the output of macro and "attachment:" usages of the rst parser.
   444     * Removed Twisted request object reverse DNS lookup.
   445     * cfg.editor_quickhelp was not parsed with the wiki parser when customized
   446     * Fixed MoinMoin: href="http://moinmo.in/MoinMoinBugs/GuiEditorDeletesNewBulletText.">MoinMoinBugs/GuiEditorDeletesNewBulletText.
   447     * Fixed MoinMoin: href="http://moinmo.in/MoinMoinBugs/HtmlTextConvertTables.">MoinMoinBugs/HtmlTextConvertTables.
   448     * Updated ImageLink macro.
   449     * Added a (less broken) MoinMoin.support.difflib, details see there.
   450     * BadContent and LocalBadContent now get noindex,nofollow robots header,
   451       same as POSTs.
   452     * Fixed handling of anchors in wiki links for the Restructured text parser.
   453     * Fixed http header output.
   454     * Fixed request.cfg corruption in the fckdialog code that could lead
   455       to e.g. stalled servers (thanks to David Linke)
   456     * Fixed typo in NewPage that lead to a NameError.
   457     * Fixed standalone server failing to shutdown if interface == "".
   458     * Conflict resolution fixes.
   459     * Python 2.5 compatibility fixes in the Page caching logic.
   460     * Fixed sre pickle issues in the wikidicts code.
   461     * cgitb can hide particular names, this avoids information leaks
   462       if the user files cannot be parsed for example.
   463     * Fixed User.__repr__ - it is insane to put the ID in there.
   464     * Worked around the FastCGI problem on Lighttpd: empty lines in the error
   465       log, thanks to Jay Soffian.
   466     * Fixed the MetaDict code to use locks.
   467     * Fixed bug in request.py that avoided showing a traceback if there was a fault
   468       after the first headers were sent.
   469     * Fixed severe race conditions in the meta dict and the sync tags code.
   470     * Mute the tempnam warning in the caching module.
   471     * diff3 algorithm extended, a new mode should reduce the conflicts,
   472       fixed a bug that silently truncated pages if there was content added
   473       on one side at the end.
   474     * Standalone opens it logfile unbuffered from now on, thanks to
   475       Carsten Grohmann.
   476     * Now MoinMoin does not anymore think that every page links to various user
   477       homepages anymore.
   478     * Now multiple formatters can be used per request, the send_page code was
   479       not reentrant to this regard. Fixes "empty" search results.
   480     * Not a moin bug, but it severely annoyed IE users and also was less
   481       comfortable for users of other browser: since about 1.5.4, we served
   482       attachments with Content-Disposition: attachment - so that the user has
   483       to save them to disk. This was to fix a possible XSS attack using attached
   484       HTML files with Javascript inside for stealing your moin cookie or doing
   485       other nasty things. We improved this by using different behaviour depending
   486       on the potential danger the attached file has when served inline:
   487       The config option contains a few mimetypes that are known to be inherently
   488       unsafe to this regard. If you know more dangerous stuff, please just
   489       add the mimetypes there to protect your users and file a bug report
   490       telling us what we missed.
   491     * Avoid infinite recursion in Page.parsePageLinks.
   492     * Now ImageLink could be used with InterwikiLinks for pages.
   493     * Cookies were made more secure by signing each cookie with its own
   494       secret and checking expiry, that way a cookie can no longer be stolen
   495       and used again after logging out.
   496 
   497   Other changes:
   498     * HINT: if you run standard CGI, copy and edit the new moin.cgi from
   499       wiki/server/moin.cgi (we made it more similar to how standalone or
   500       Twisted start script works).
   501     * HINT: instead of "from MoinMoin.multiconfig import DefaultConfig" you
   502       need to use "from MoinMoin.config.multiconfig import DefaultConfig" now.
   503       You need to change this in your wikiconfig.py or farmconfig.py file.
   504       See MoinMoin/multiconfig.py for an alternative way if you can't do that.
   505     * HINT: you need to change your auth stuff, the new way is:
   506       from MoinMoin.auth import moin_login, moin_session
   507       from MoinMoin.auth.http import http
   508       auth = [http, moin_login, moin_session]
   509       Do it in a similar way for other auth methods.
   510     * HINT: you need to change your url_prefix setting in 2 ways:
   511       1. The setting is now called url_prefix_static (to make it more clear
   512          that we mean the static stuff, not the wiki script url).
   513       2. The strongly recommended (and default) value of it is '/moin_static160'
   514          for moin version 1.6.0 (and will be ...161 for moin 1.6.1). It is
   515          possible and recommended to use a very long cache lifetime for static
   516          stuff now (Expires: access plus 1 year), because we require to change
   517          the URL of static stuff when the static stuff changes (e.g. on a
   518          version upgrade of moin) to avoid problems with stale cache content.
   519          Your moin will be faster with lower load and traffic because of this.
   520          For standalone server, we use 1 year expiry for static stuff now.
   521          For Apache, Lighttpd and other "external" servers, you have to care
   522          for configuring them to use a long expiry and change url_prefix_static
   523          related configuration on upgrade.
   524       HINT: if you run standalone or Twisted server, the easiest way to get a
   525             working configuration (with server configuration matching wiki
   526             configuration) is to NOT set url_prefix_static at all. Moin will
   527             use matching configuration defaults in this case.
   528     * url_prefix_action ['action'] was introduced for lowering load and traffic
   529       caused by searchengine crawlers. Up to now, crawlers where causing a high
   530       load in internet moin wikis because they tried to get about everything,
   531       including all actions linked from the user interface.
   532       Known crawlers only get 403 for most actions, but nevertheless they first
   533       tried. There was no means keeping them away from actions due to the rather
   534       braindead robots.txt standard. You can only disallow pathes there, but
   535       moin's actions were querystring based, not path based (this would need
   536       regex support in robots.txt, but there is no such thing).
   537       This changed now. Moin is able to generate action URLs you can handle in
   538       robots.txt, like /action/info/PageName?action=info. So if you don't want
   539       bots triggering actions, just disallow /action/ there. Keep in mind that
   540       attachments are handled by /action/AttachFile, so if you want attached
   541       files and pictures indexed by search engine, don't disallow
   542       /action/AttachFile/ in your robots.txt. In order to use this feature,
   543       set url_prefix_action in your wikiconfig to e.g. "action".
   544     * attachment links for non-existing attachments look different now:
   545       the note about the non-existing attachment moved to the link title,
   546       the link is shown with nonexistent class (grey).
   547     * We don't use ...?action=show any more for the "Clear message" links shown
   548       in the message boxes, but directly link to the page.
   549     * We use (again) the same browser compatibility check as FCKeditor uses
   550       internally, too. So if GUI editor invocation is broken due to browser
   551       compatibility issues or a wrong browser version check, please file a bug
   552       at FCKeditor development or browser development.
   553     * Mail notifications contain a link to the diff action so the user
   554       can see the coloured difference more easily. Thanks to Tobias Polzin.
   555     * Refactored conflict resolution and XMLRPC code.
   556     * Added a module for binary diffs.
   557     * The thread monitor supports the Python 2.5 feature of directly grabbing
   558       the current stack frames of all threads now so it has become much faster.
   559     * Made the irssi parser more tolerant (Thanks to "TheAnarcat").
   560     * Changed the rst parser to be compatible to the new docutils interface
   561       for directives.
   562     * We moved the IE hacks to theme/css/msie.css that gets included after all
   563       other css files (but before the user css file) using a conditional
   564       comment with "if IE", so it gets only loaded for MSIE (no matter which
   565       version). The file has some standard css inside (evaluated on all MSIE
   566       versions) and some * html hacks that only IE < 7 will read.
   567       HINT: if you use custom themes, you want to update them in the same way.
   568     * AttachFile displays the upload dialogue now at top, this avoids lots of
   569       scrolling if you attach some new files to a page that already has lots of
   570       files attached.
   571     * Removed "IE7 Hack" of Dean Edwards (has nothing to do with MS IE7).
   572       It was not enabled by default, just by a cfg.hacks mechanism.
   573       Reasons: it had trouble with FCKEditor and was not updated since a longer
   574                time. OTOH, Microsoft released IE7. And there are lots of
   575                other and better browsers anyway.
   576     * HINT: We removed Lupy based indexed search code. If you were brave enough
   577       to use cfg.lupy_search, you maybe want to try cfg.xapian_search instead.
   578 
   579   Developer notes (these should be moved to the end in the release):
   580     * changed formatter.attachment_link call (it is now more flexible,
   581       because you can render the stuff between link start and link end yourself)
   582     * Page.url() does not escape any more. You have to use wikiutil.escape()
   583       yourself if you want to write the URL to HTML and it contains e.g. &.
   584     * The testing wikiconfig moved to tests/wikiconfig.py, the testing wiki
   585       is now created in tests/wiki/...
   586     * HINT: Killed "processors" (finally), formatter method changed to:
   587       formatter.parser(parsername, lines)
   588     * Refactored some actions to use ActionBase base class.
   589     * Moved "test" action from wikiaction to MoinMoin/action/
   590       (and use ActionBase).
   591     * Moved MoinMoin/config.py to MoinMoin/config/__init__.py.
   592     * Moved MoinMoin/multiconfig.py to MoinMoin/config/multiconfig.py.
   593     * Moved "SystemInfo" macro from wikimacro to MoinMoin/macro/.
   594     * Moved wikiaction.py stuff to MoinMoin/action/__init__.py.
   595     * Moved wikimacro.py stuff to MoinMoin/macro/__init__.py.
   596     * Moved wikirpc.py stuff to MoinMoin/xmlrpc/__init__.py.
   597     * Moved wikitest.py stuff to action/test.py (only used from there).
   598     * Moved formatter/base.py to formatter/__init__.py (FormatterBase).
   599     * Moved util/ParserBase.py to parser/ParserBase.py.
   600     * Moved / splitted request.py into MoinMoin/request/*.
   601       Most stuff will be broken, please help fixing it (usually some imports
   602       will be missing and the adaptor script will need a change maybe):
   603       Tested successfully: CGI, CLI, STANDALONE, FCGI, TWISTED
   604       TODO: MODPY, WSGI
   605     * Moved util/antispam.py to security/antispam.py.
   606     * Moved util/autoadmin.py to security/autoadmin.py.
   607     * Moved security.py to security/__init__.py.
   608     * Moved wikiacl.py to security/__init__.py.
   609     * Moved logfile/logfile.py to logfile/__init__.py.
   610     * Moved mailimport.py to mail/mailimport.py.
   611     * Moved util/mail.py to mail/sendmail.py.
   612     * Moved auth.py to auth/__init__.py.
   613       Moved util/sessionParser.py to auth/_PHPsessionParser.py.
   614       teared auth code into single modules under auth/* - moin_session handling
   615       and the builting moin_login method are in auth/__init__.py.
   616     * Added wikiutil.MimeType class (works internally with sanitized mime
   617       types because the official ones suck).
   618     * Renamed parsers to module names representing sane mimetypes, e.g.:
   619       parser.wiki -> parser.text_moin_wiki
   620     * Added thread_monitor debugging aid. It can be activated using:
   621       from MoinMoin.util import thread_monitor; thread_monitor.activate_hook()
   622       and then triggered by requesting URL ...?action=thread_monitor - please
   623       be aware that monitoring threads has a big performance impact on its own,
   624       so you only want to temporarily enable this for debugging.
   625       By default, it dumps its output to the data_dir as tm_<timestamp>.log,
   626       you can change this at bottom of action/thread_monitor.py if you want to
   627       see output in your browser.
   628     * Introduced scope parameter to CacheEntry() - if you specify 'farm', it
   629       will cache into a common directory for all wikis in the same farm, if you
   630       specify 'wiki', it will use a cache directory per wiki and if you specify
   631       'item', it will use a cache directory per item (== per page).
   632       Creating a CacheEntry without explicit scope is DEPRECATED.
   633     * Smileys moved from MoinMoin.config to MoinMoin.theme.
   634     * Removed all _ magic in URLs and filenames.
   635     * request.action now has the action requested, default: 'show'.
   636     * Cleaned up duplicated http_headers code and DEPRECATED this function
   637       call (it was sometimes confused with setHttpHeaders call) - it will
   638       vanish with moin 1.7, so please fix your custom plugins!
   639       The replacement is:
   640           request.emit_http_headers(more_headers=[])
   641       This call pre-processes the headers list (encoding from unicode, making
   642       sure that there is exactly ONE content-type header, etc.) and then
   643       calls a server specific helper _emit_http_headers to emit it.
   644       Tested successfully: CGI, STANDALONE, FCGI, TWISTED
   645       TODO: CLI, MODPY, WSGI
   646     * setResponseCode request method DEPRECATED (it only worked for Twisted
   647       anyway), just use emit_http_headers and include a Status: XXX header.
   648       Method will vanish with moin 1.7.
   649     * cfg.url_prefix is DEPRECATED, please use cfg.url_prefix_static.
   650     * d['title_link'] is not supported any more. You can easily make that link
   651       on your own in your theme, see example in MoinMoin/theme/__init__.py,
   652       function "title".
   653     * There is a new Page method called Page.get_raw_body_str that returns
   654       the encoded page body. This is useful if you just deal with byte data
   655       (e.g. while generating binary diffs).
   656     * The TagStore/PickleTagStore system is used to store the syncronisation tags.
   657     * XMLRPC functions may return Fault instances from now on
   658     * Moin got multicall support, including a module that makes it usable on the
   659       client-side without requiring Python 2.4
   660     * Added no_magic to text_html formatter to disable tag autoclosing.
   661     * Added logging framework, using stdlib's "logging" module. Just do
   662       import logging ; logging.debug("your text"). Depending on configuration
   663       in the server Config class, your stuff will be written to screen (stderr),
   664       to a moin logfile, to apache's error.log, etc.:
   665       logPath = None # 'moin.log'
   666       loglevel_file = None # logging.DEBUG/INFO/WARNING/ERROR/CRITICAL
   667       loglevel_stderr = None # logging.DEBUG/INFO/WARNING/ERROR/CRITICAL
   668       NOTE: this is NOT in wikiconfig, but e.g. in moin.cgi or moin.py or ...
   669     * MOIN_DEBUG can be set in the environment to let MoinMoin ignore exceptions
   670       that would lead to a traceback in the browser. Thanks to Raphael Bossek.
   671     * There is a new MoinMoin.Page.ItemCache class now with automatic cache
   672       invalidation based on global edit-log. We currently use it to cache page
   673       acls, speedup Page.get_rev and reading the page local edit-log.
   674     * Added wikiutil.renderText parse and format raw wiki markup with all page elements.
   675     * The user file format has changed, old files will be read correctly but
   676       will silently be upgraded to the new format so old versions will not
   677       read the new files correctly (this only affects 'subscribed_pages' and
   678       'quicklinks' which will be lost when downgrading.)
   679 
   680 
   681 
   682 Version 1.5.current:
   683   Bugfixes:
   684     * AttachFile overwrite mode (introduced in 1.5.7) did not check delete
   685       rights, but only write rights. Now it checks that the user has write AND
   686       delete rights before overwriting a file.
   687     * GetVal respects now ACLs on the Dict page
   688     * Respect ACLs when sending <link rel="Appendix" ...> for attachments.
   689     * Fixed potential XSS issues related to feeding of gui editor.
   690     * Fixed XSS issue in RenamePage/DeletePage action.
   691     * Avoid 'current' file corruption in out-of-space conditions.
   692     * Fix "Toggle line numbers" link in code areas, so it gets translated
   693       for the current user's language.
   694     * added missing data/plugin/converter package
   695 
   696 Version 1.5.8:
   697   New features:
   698     * Added timing.log to help performance debugging. Use cfg.log_timing = True
   699       to update <data_dir>/timing.log (default is False, meaning no logging).
   700 
   701       Example log entries:
   702 
   703 
   704       Timestamp       PID   Timing Flag action     URL
   705       -----------------------------------------------------------------------------
   706       20070512 184401 22690 vvv         None       moinmoin.wikiwikiweb.de/RssFeeds
   707       20070512 184401 22690 0.267s    - show       moinmoin.wikiwikiweb.de/RssFeeds
   708 
   709       Timestamp: YYYYMMDD HHMMSS (UTC)
   710       PID: the process ID of the moin process
   711       Timing: when action starts, it will be "vvv"
   712               when it ends, it logs the total time it needed for execution
   713       Flag (some are only logged at end of action):
   714       +   Page exists
   715       -   Page does not exist
   716       B   user agent was recognized as bot / spider
   717       !x! Action took rather long (the higher the x, the longer it took - this
   718           makes it easy to grep for problematic stuff).
   719       Action: action name (None is when no action was specified, moin assumes
   720               "show" for that case)
   721       URL: the requested URL
   722 
   723       For more information about tuning your moin setup, see:
   724       http://moinmoin.wikiwikiweb.de/PerformanceTuning
   725     * Added support for ircs, webcal, xmpp, ed2k and rootz protocols - we
   726       moved all protocols to config.url_schemas, so this is not empty any more.
   727       It is possible to use these protocols now on wiki pages and in the
   728       navi_bar. We just generate the URLs, it is up to your browser what it
   729       does when clicking on those links.
   730     * cfg.traceback_show (default: 1) can be used to disable showing tracebacks.
   731       cfg.traceback_log_dir (default: None) can be used to set a directory
   732       that is used to dump traceback files to. Your users will get a notice to
   733       which (random) file in that directory the traceback was been written.
   734       NOTE: while you can feel free to set traceback_show = 0 and
   735       traceback_log_dir = None, we will also feel free to reject bug reports
   736       when you (or your site's users) don't give us enough information (like a
   737       traceback file) to debug the problem. If you set traceback_show = 0,
   738       we recommend pointing traceback_log_dir to a directory with reasonable
   739       free space and putting a page onto your wiki that describes who has to
   740       get contacted (usually the wiki server admin) in case a traceback happens.
   741       The admin can then locate the traceback file and submit it to moin
   742       development, if the bug is not already known (see MoinMoin:MoinMoinBugs).
   743       Of course we will also need all the other details of a bug report, not
   744       only the traceback file.
   745 
   746   Other changes:
   747     * Updated spider agents list.
   748     * Reduce bot/spider cpu usage for SystemInfo, OrphanedPages, WantedPages,
   749       PageHits, PageSize, WordIndex macros (we just return nothing for bots).
   750 
   751   Bugfixes:
   752     * XSS fixes, see http://secunia.com/advisories/24138/ (item 1 and 2).
   753     * ACL security fixes:
   754       * MonthCalendar respects ACLs of day pages now.
   755       * Check the ACL for the rst markup include directive.
   756     * Fixed cleaning of edit comments (control chars in there could damage
   757       edit-log).
   758     * Fixed in-process caching of antispam patterns (didn't update the cache
   759       for multi-process, persistent servers).
   760     * Correct encoding/decoding for surge-log data, fixes leftover
   761       surge-logXXXXXXX.tmp files in data/cache/surgeprotect.
   762     * Fixed mode of cache files (mkstemp creates them with 0600 mode).
   763     * Symbolic entities with numbers (like &sup2;) did not work, fixed.
   764     * We open data/error.log earlier now and we also use it for FastCGI.
   765     * Fixed unicode cfg.page_group_regex.
   766     * Fixed moin.spec to use english date format.
   767     * GUI converter: fixed conversion of relative wiki links.
   768     * Fixed NewPage macro button label to not be formatted as wiki text.
   769 
   770 Version 1.5.7:
   771   New features:
   772     * added url_prefix_local which is used for stuff that must be loaded from
   773       same site as the wiki engine (e.g. FCKeditor GUI editor applet), while
   774       url_prefix can be a remote server serving the static files (css/img).
   775       If not set (or set to None), url_prefix_local will default to the value
   776       of url_prefix.
   777     * We save some CPU and disk I/O by having EditTemplates and LikePages macro
   778       (both used on MissingPage) check whether the requesting entity was
   779       identified as a spider (e.g. search engine bot) and do nothing in that
   780       case. Normal users won't see any difference.
   781     * For AttachFile, you can now choose to overwrite existing files of same
   782       name (nice for updating files).
   783 
   784   Bugfixes:
   785     * XSS Fixes:
   786       * fixed unescaped page info display.
   787       * fixed unescaped page name display in AttachFile, RenamePage and
   788         LocalSiteMap actions
   789     * WantedPages listed existing pages that are not readable for the user,
   790       but are linked from pages that ARE readable for the user (so this is NOT
   791       a privacy/security issue). We now don't list those pages any more as it
   792       is pointless/confusing, the user can't read or edit there anyway.
   793     * MoinMoin: href="http://moinmo.in/MoinMoinBugs/TableOfContentsUsesNonExistingIncludeLinks">MoinMoinBugs/TableOfContentsUsesNonExistingIncludeLinks
   794     * MoinMoin: href="http://moinmo.in/MoinMoinBugs/ActionsExcludedTriggerError">MoinMoinBugs/ActionsExcludedTriggerError
   795     * GUI editor/converter:
   796       * ignore <col>/<colgroup>/<meta> elements
   797       * support <a> within blockquote
   798     * Remove generated=... attribute from pagelink html output (this attr is
   799       for internal use only). w3c validator is now happier again.
   800     * Fixed css class "userpref" (not: "userprefs") of the Login form.
   801     * Fixed the version number check in the xslt parser for 4suite >= 1.0.
   802     * We reset the umask to the wanted value every request. This should fix
   803       wrong file modes when used with Twisted (twistd uses a hardcoded 0077
   804       umask in daemonize()).
   805     * Avoid trouble when saving pages with antispam function when MoinMaster
   806       wiki is having troubles (catch xmlrpc Fault).
   807 
   808   Other changes:
   809     * Standalone server does not do reverse DNS lookups any more (this is a
   810       standard feature of BaseHTTPServer stdlib module, but we override this
   811       now and just print the IP).
   812     * We moved the IE hacks to theme/css/msie.css that gets included after all
   813       other css files (but before the user css file) using a conditional
   814       comment with "if IE", so it gets only loaded for MSIE (no matter which
   815       version). The file has some standard css inside (evaluated on all MSIE
   816       versions) and some * html hacks that only IE < 7 will read.
   817       HINT: if you use custom themes, you want to update them in the same way.
   818     * Improved ldap auth:
   819       * cfg.ldap_name_attribute was removed because of new cfg.ldap_filter.
   820         If you had ldap_name_attribute = 'sAMAccountName' before, just use
   821         ldap_filter = '(sAMAccountName=%(username)s)' now.
   822       * New cfg.ldap_filter used for the ldap filter string used in the ldap
   823         search instead of the rather limited, partly hardcoded filter we used
   824         before. This is much more flexible:
   825         ldap_filter = '(sAMAccountName=%(username)s)'
   826         You can also do more complex filtering expressions like:
   827         '(&(cn=%(username)s)(memberOf=CN=WikiUsers,OU=Groups,DC=example,DC=org))'
   828       * Added some processing to filter out result entries with dn == None.
   829       * We set REFERRALS option to 0 before initializing the ldap server
   830         connection (this seems to be needed for Active Directory servers).
   831       * We support self-signed ssl certs for ldaps - completely untested.
   832       * New cfg.ldap_surname_attribute (usually 'sn'), was hardcoded before.
   833       * New cfg.ldap_givenname_attribute (usually 'givenName'), hardcoded before.
   834       * New cfg.ldap_aliasname_attribute (usually 'displayName') - if this
   835         attribute is not there or empty (in the results of the ldap lookup for
   836         the user), we just make up the aliasname from surname and givenname
   837         attribute.
   838       * We only request the attributes we need from ldap (was: all attrs).
   839       * We deny user login (and break out of auth chain) for the following cases:
   840         * if a user is not found by ldap lookup
   841         * if we find more than one matching entry
   842         * if the password is empty or incorrect
   843         * if some exception happens
   844       * Please note that there is an updated ldap sample config in directory
   845         wiki/config/more_samples/.
   846       * Added experimental LDAP SSL/TLS support (untested, please help testing),
   847         see also the sample config.
   848     * Work around a IE7 rendering problem with long pages getting more and
   849       more narrow. We just applied the same "fix" as we used for IE6, using
   850       "display: none" for span.anchor for IE browsers.
   851     * RSS feed related:
   852       * We used to emit a <link> tag for the action=rss_rc RSS feed on any
   853         page. This was changed, we now emit that link only on RecentChanges and
   854         the current user's language translation of RecentChanges.
   855         This was changed because Google Toolbar requests the RSS feed linked
   856         by such a link tag every time it sees one. Thus, if you used the wiki
   857         normally, it requested the RSS feed every few seconds and caused
   858         problems due to surge protection kicking in because of that.
   859       * HINT for custom theme users: if your theme code calls
   860         rsslink(), then you need to change that to rsslink(d) for 1.5.7+.
   861 
   862 
   863 Version 1.5.6:
   864   A general security notice:
   865       Check your Python version, there was a buffer overflow issue in Python
   866       recently! Details: http://moinmoin.wikiwikiweb.de/PythonUnicodeEscapeBug
   867 
   868   Bugfixes:
   869     * Fix AttributeError traceback with Standalone server (if_modified_since)
   870     * Fix AttachFile "304 not modified" and redirect status code for Twisted
   871     * http auth: we now decode username and password to unicode (using
   872       config.charset == utf-8). Same for SSL client cert auth and CN.
   873     * Avoid infinite recursion in Page.parsePageLinks.
   874     * Fixed standalone server failing to shutdown if interface == "".
   875     * Now MoinMoin does not think anymore that every page links to various user
   876       homepages.
   877     * Made the irssi parser more tolerant (Thanks to "TheAnarcat").
   878     * Now multiple formatters can be used per request, the send_page code was
   879       not reentrant to this regard. Fixes "empty" search results.
   880     * Fixed problem with "=" in ImageLink macro links.
   881     * Not a moin bug, but a silly stdlib os.tempnam function made trouble to
   882       some people because it lets you override the path given in the code
   883       by setting the environment variable TMP(DIR). We now use a different
   884       function to avoid renaming trouble when TMP(DIR) points to a different
   885       file system.
   886     * Fixed antispam update on every save (Thanks to "TheAnarcat").
   887     * GUI converter: don't throw away rowclass for tables.
   888     * GUI editor formatter: allow height for table cells.
   889     * GUI editor formatter: comment texts are output using the formatter now. 
   890 
   891   New features:
   892     * Mail notifications contain a link to the diff action so the user
   893       can see the coloured difference more easily. Thanks to Tobias Polzin.
   894     * FeatureRequests/MoveAttachments - you can move attachments from one
   895       page to another (and also rename the attachment at the same time).
   896       Thanks to Reimar Bauer.
   897     * Added support for linking to attachment: and inline: URLs with ImageLink.
   898     * Added UNIX socket support for FastCGI, just set the port to some (socket)
   899       filename. Details see: MoinMoin:FeatureRequests/FastCgiUnixSocket
   900     * [[Attachlist(pagename,mimetype)]] lists attachments of pagename (default:
   901       current page) with optional mimetype restriction (default: all).
   902       Thanks to Reimar Bauer.
   903 
   904   Other changes:
   905     * Minor performance improvements (might be noticeable if you have many
   906       custom navi_bar entries and high server load).
   907     * Avoid usage of no-cache because it breaks attachment download on IE6.
   908       This is a IE bug, not a moin bug.
   909     * Added XHTML to the unsafe list.
   910     * Changed the rst parser to be compatible to the new docutils interface
   911       for directives.
   912     * Updated EmbedObject macro.
   913 
   914 
   915 Version 1.5.5a:
   916   Bugfixes:
   917     * fixed ticket creation to only use constant values
   918 
   919 Version 1.5.5:
   920   HINT: read docs/README.migration.
   921   HINT: there was NO change in the underlay/ pages since 1.5.4.
   922   HINT: If you experience problems with the reStructured Text (rst) parser,
   923         please downgrade docutils to "0.4" because there were major interface
   924         breaking API refactorings on the docutils trunk.
   925 
   926   Bugfixes:
   927     * GUI editor fixes:
   928       * Fixed MoinMoinBugs/GuiEditorModifiesInterwikiPreferred.
   929       * Fixed MoinMoinBugs/TableAlignmentProbsWithGUI.
   930     * Not a moin bug, but it severely annoyed IE users and also was less
   931       comfortable for users of other browser: since about 1.5.4, we served
   932       attachments with Content-Disposition: attachment - so that the user has
   933       to save them to disk. This was to fix a possible XSS attack using attached
   934       HTML files with Javascript inside for stealing your moin cookie or doing
   935       other nasty things. We improved this by using different behaviour depending
   936       on the potential danger the attached file has when served inline:
   937       mimetypes_xss_protect = ['text/html', 'application/x-shockwave-flash', ]
   938       This is the default value. If you know more dangerous stuff, please just
   939       add the mimetypes there to protect your users and file a bug report
   940       telling us what we missed.
   941     * Fixed MoinMoinBugs/ReStructuredTextRelativeLinksBroken, thanks to Stefan
   942       Merten.
   943     * Make tickets used for some actions more safe.
   944 
   945   New features:
   946     * edit_ticketing [True] - we protect page save by a ticket (same stuff we
   947       already use for DeletePage and RenamePage action).
   948       NOTE: If you don't use your browser for editing, but some tool like
   949             "editmoin" or "MoinMoin plugin for jEdit", you'll need an update
   950             of them supporting the ticket.
   951             Alternatively, you can use edit_ticketing = False setting - this
   952             is not recommended for internet wikis as it will make spamming them
   953             easier.
   954     * If we detect some spammer, we kick him out by triggering surge protection
   955       (if surge protection is not disabled).
   956 
   957 Version 1.5.5rc1:
   958   Bugfixes:
   959     * Fixed MoinMoinBugs/XmlRpcBrokenForFastCgi - thanks to Johannes Berg.
   960     * Fixed gui editor converter confusing of `` and {{{}}} markup.
   961     * Fixed emission of HTTP headers (esp. Vary: Cache-Control:).
   962     * Fixed a bad crash that happens (on ANY page!) when you put a *Dict
   963       page's name as a member into a *Group page.
   964     * Fix MyPages action title to use an unformatted string.
   965     * Fix double quoted-printable encoding in generated emails (note: this is
   966       not a moin bug - this just works around bugs in python stdlib).
   967     * Fix mode of drawing files (use config.umask).
   968     * Fix trouble with /?action= urls by dropping getPageNameFromQueryString
   969       code. 
   970     * Fixed sre unpickle issues seen on some machines by avoiding to pickle
   971       the regex.
   972     * Fix Clock code, add more timers.
   973     * Worked around FastCGI problem on Lighttpd: empty lines in the error log.
   974     * Fix (add) locking for caching's .remove() call, small fixes to lock code.
   975     * Print error message when --target-dir=path is missing from moin export
   976       dump command.
   977 
   978   New features:
   979     * Added support for "304 not modified" response header for AttachFile get
   980       and rss_rc actions - faster, less traffic, less load.
   981     * Limit rss with full diffs to 5 items.
   982     * Allow surge_action_limits = None to disable surge protection.
   983     * moin.fcg improved - if you use FastCGI, you must use the new file:
   984       * can self-terminate after some number of requests (default: -1, this
   985         means "unlimited lifetime")
   986       * the count of created threads is limited now (default: 5), you can use
   987         1 to use non-threaded operation.
   988       * configurable socket.listen() backlog (default: 5)
   989     * Added indonesian i18n (id).
   990     * Some measures against spammers trying to brute force their spam into moin.
   991     * EmbedObject macro: added mov, mpg and midi support
   992     * moin ... export dump --target-dir=PATH --page=PAGENAME_REGEX
   993       You must specify --target-dir (where dump will write the html files to)
   994       and you may specify --page and either a page name or a regex used to
   995       match all pages you want to export. Default is to export all pages.
   996 
   997   Other changes:
   998     * Tuning:
   999       * more efficient locking code on POSIX platforms, we do much less I/O
  1000         for locking now
  1001       * removed most chmod calls in favour of a single os.umask call
  1002     * Improved Python 2.5 compatibility. Note: if you think that MoinMoin
  1003       is using too much RAM, you might want to look at Python 2.5 because
  1004       of its improved memory management.
  1005     * Throw away SAVE comments longer than 200 chars (you can't enter those by
  1006       the user interface, so only spammer using automatic POSTs do them).
  1007     * Updated spider user agent list.
  1008     * BadContent and LocalBadContent now get noindex,nofollow robots header,
  1009       same as POSTs.
  1010     * Standalone opens it logfile unbuffered from now on, thanks to
  1011       Carsten Grohmann.
  1012     * Avoid trouble when request.write() data contains None, just skip it -
  1013       thanks to Juergen Hermann.
  1014     * Instead of showing a ConfigurationError, moin now emits "404 Not found"
  1015       http headers and a hint about what could be wrong. This won't fill up
  1016       your logs just because of typos and spiders still trying old URLs.
  1017 
  1018  
  1019 Version 1.5.4:
  1020     HINT: read docs/README.migration.
  1021 Version 1.5.4-current:
  1022     * increased maxlength of some input fields from 80 to 200
  1023 
  1024 Version 1.5.current:
  1025   Developer notes:
  1026     * We switched to Mercurial SCM, see here for more infos:
  1027       http://moinmoin.wikiwikiweb.de/MoinDev/MercurialGuide
  1028 
  1029   Bugfixes:
  1030     * fix MonthCalendar macro for non-ASCII pagenames (thanks to Jonas Smedegaard)
  1031     * remove 'search' and 'google' from bot user agent list and add some more
  1032       specific terms
  1033     * Fix the forgotten password email login URL and also properly encode the
  1034       email body. Thanks to Robin Dunn for the patch.
  1035     * Applied a patch by Matthew Gilbert for increased compatiblity with
  1036       latest docutils.
  1037 
  1038 
  1039 Version 1.5.3:
  1040   New Features:
  1041     * Added CSS classes for TableOfContents macro.
  1042 
  1043   Bug Fixes:
  1044     * GUI editor / GUI editor converter:
  1045       * Fixed missing GUI editor link in edit bar.
  1046       * Fixed table/row/cell style spaces.
  1047       * Changed <p> generation for macros.
  1048       * Fixed handling of subpages.
  1049       * Fixed processing of complex list elements (thanks to Craig Markwardt).
  1050       * Fixed processing of html \n (thanks to Craig Markwardt).
  1051       * Fixed joining of comment lines with text below them.
  1052       * Fixed table height attribute crash.
  1053     * Fixed sslclientcert auth.
  1054     * Added some missing files to i18n processing, translatable strings more
  1055       complete now.
  1056     * Change <p> generation from self-closing (<p />) to auto-closing (only
  1057       emit <p>, let browser find place for </p>).
  1058     * Fix eating of newline before tables.
  1059     * Fixed incorrect login hint for not logged-in users trying a disallowed
  1060       action.
  1061     * Fixed nasty missing or double </a> formatter bug (mostly happening when
  1062       user has enabled questionmarks for nonexisting pages).
  1063 
  1064   Other Changes:
  1065     * We catch and ignore html to wiki conversion errors in case of hitting
  1066       the cancel button, so you can get out of the error screen.
  1067 
  1068 Version 1.5.3-rc2:
  1069   New Features:
  1070     * Modified SystemInfo macro to give human readable units and disk usage
  1071     * cfg.editor_quickhelp makes the quick help below the editor configurable
  1072       (at least as far as the default_markup is concerned). If set to None,
  1073       it doesn't display any quickhelp. Thanks to Seth Falcon for the patch.
  1074 
  1075   Bugfixes:
  1076     * Fixed double class attribute for nonexistent links
  1077     * Fixed double </a> with qm_noexist option
  1078     * Fixed table xxx="yyy" style attribute parsing
  1079     * If not (editor_force and editor_default == 'text') then display GUI mode
  1080       switch button (this is only a partial fix, but enough to deny the GUI
  1081       mode to your users completely)
  1082     * Fixed XSS issue which could lead to cookie theft etc.
  1083     * Fixed definition list "same level" indenting.
  1084     * Fixed pagename in log for PackagePages action.
  1085     * Made <p> self-closing and line-anchors more well-behaved, thanks to
  1086       Martin Wilck for the patch. I didn't apply the <ol> patch, because this
  1087       is no real problem, just a problem of a bad standard.
  1088     * Fixed gui editor *bgcolor crash.
  1089     * Support/Fix tableclass attr with gui editor.
  1090 
  1091   Other changes:
  1092     * Moved back UserPreferences action link from menu to top of page (renaming
  1093       it to "Preferences"), added "Cancel" button to make it possible to return
  1094       to the previous page without saving preferences.
  1095     * Removed formatter.url "attrs" keyword arg that took premade html, we use
  1096       separate kw args per attribute now.
  1097     * Moved broken tests to MoinMoin/_tests/broken (= disabling them).
  1098       All "active" tests run ok now.
  1099       If you want to compare, I included the output of this test run:
  1100       $ make test >tests/make_test.out
  1101 
  1102  
  1103 Version 1.5.3-rc1:
  1104 
  1105   New features:
  1106     * HINT: please read README.migration
  1107     * Login and Logout are actions now, therefore you stay on the page where
  1108       you were before.
  1109     * UserPreferences is also an action now and moved from top border (in
  1110       modern theme) to the "more actions" dropdown menu. You also stay on the
  1111       same page.
  1112     * There is also a [[Login]] macro now. You can put it on any page you want
  1113       and if the user is not logged in, it renders the login form. If the user
  1114       is logged in, it doesn't render anything.
  1115     * We check cfg.superuser to be a list of user names (as documented) and
  1116       deny superuser access if it is not. This avoids security issues by
  1117       wrong configuration.
  1118     * auth methods changed:
  1119       HINT: if you wrote own auth methods, please change them as you see in
  1120             MoinMoin/auth.py and test them again before relying on them.
  1121       * now get a user_obj kw argument that is either a user object returned
  1122         from a previous auth method or None (if no user has been made up yet).
  1123         The auth method should either return a user object (if it has
  1124         determined one) or what it got as user_obj (being "passive") or None
  1125         (if it wants to "veto" some user even if a previous method already has
  1126         made up some user object).
  1127       * return value of continue_flag is now True in most cases (except if
  1128         it wants to "veto" and abort).
  1129       * moin_cookie auth method now logs out a user by deleting the cookie and
  1130         setting user_obj.valid = 0. This makes it possible to still get the
  1131         user's name in subsequent auth method calls within the same request.
  1132       * added ldap_login and smb_mount auth methods, see MoinMoin/auth.py and
  1133         wiki/config/more_samples/ldap_smb_farmconfig.py
  1134     * MonthCalendar now takes an additional argument for specifying a template
  1135       to use to directly invoke the page editor when clicking on non-existing
  1136       day pages.
  1137     * Added ImageLink macro. Thanks to Jeff Kunce, Marcin Zalewski, Reimar
  1138       Bauer and Chong-Dae Park for working on it.
  1139     * Lupy stuff (still experimental, partly broken and disabled by default):
  1140       * Attachment search using lupy (lupy_search = 1 in your config)
  1141         Title search will also search attachment filenames.
  1142         Full text search will also search attachment contents.
  1143       * Indexing filter plugins, see MoinMoin:FiltersForIndexing
  1144         Some filters depend on external converters that might not be available
  1145         for any platform (see Depends: line in filter plugin).
  1146         Feel free to contribute more filter plugins, especially if you wrote
  1147         some nice platform independant filter in Python for some popular file
  1148         format! Filters implemented so far (depending on):
  1149         MS Word, RTF, MS Excel (antiword, catdoc)
  1150         PDF (pdftotext)
  1151         OpenOffice.org XML based data formats (-)
  1152         XML, HTML (-)
  1153         text/* (-)
  1154         JPEG's EXIF data (-)
  1155         Binary generic (-)
  1156       * As you might know, Lupy is "retired" (that means it isn't developped
  1157         by its authors any more). We are currently evaluating Xapian as new
  1158         indexing search engine in moin.
  1159         If we succeed, we will replace Lupy stuff by some Xapian interface
  1160         code in moin.
  1161         But: the filters will likely stay, as we also need them with Xapian.
  1162     
  1163     * A new MoinMoin script interface was introduced:
  1164       
  1165       Syntax: moin [options] <cmdmodule> <cmdname> [options]
  1166       
  1167       For example:
  1168       moin --config-dir=/my/cfgdir --wiki-url=wiki.example.org/ \
  1169            export dump --page=WikiSandBox
  1170       
  1171       This will call the "moin" script, which will use the --config-dir and
  1172       --wiki-url options to initialize, then it will go to MoinMoin.script
  1173       module, import the export.dump module from there and run it, providing
  1174       the additional --page value to it.
  1175 
  1176       The old scripts that have not been migrated to this new interface can
  1177       still be found in MoinMoin/script/old/ - including the old migration
  1178       scripts.
  1179     * moin ... account create --name=JoeDoe --email=joe@doe.org
  1180     * moin ... account disable --name=JoeDoe
  1181     * moin ... acount check     <-- this is what usercheck script was before
  1182     * moin ... maint cleancache <-- this is what cachecleaner script was
  1183     * moin ... maint cleanpage  <-- this is what pagescleaner script was
  1184 
  1185   Bugfixes:
  1186     * cookie_lifetime didn't work comfortable for low values. The cookie was
  1187       created once on login and never updated afterwards. So you got logged
  1188       out cookie_lifetime hours later, no matter whether you were active at
  1189       that time or not. This has been changed, we update the cookie expiry now
  1190       on every request, so it will expire cookie_lifetime after your last
  1191       request (not after login).
  1192     * Fixed logout problems when using cfg.cookie_path.
  1193     * Fixed cookie_path for root url wikis.
  1194     * Lupy search now behaves a bit less funky. Still no guarantees...
  1195     * We lowered the twisted server timeout to 2 minutes now (was: 10) because
  1196       it just used up too many files (open TCP connections until it timeouts)
  1197       on our farm.
  1198     * The algorithm used for processing the farmconfig.wikis list was changed
  1199       to work for big farms (>= 50 wikis), too. This works around the python
  1200       "re" module limitation of having a maximum of 100 named groups in a RE.
  1201     * Fixed a TypeError which occurred for formatters that dislike None values.
  1202       (cf. http://moinmoin.wikiwikiweb.de/MoinMoinBugs/PythonErrorEditingFrontPage)
  1203     * Fixed GUI editor converter error for https:... image URLs.
  1204     * ThemeBase (use by modern/rightsidebar): removed duplicate AttachFile from
  1205       actions menu (we already have it in editbar).
  1206     * Speedup group/dicts scanning for persistent servers.
  1207     * Implemented HEAD requests for standalone server, this should fix some of
  1208       the strange effects happening when using "Save as" on attachments.
  1209     * Not a moin bug, but rather a workaround for non-standard non-ASCII DNS
  1210       hostnames: we just use the IP instead of crashing now.
  1211     * Spurious cyclic usage error in i18n fixed.
  1212     * Fixed antispam for python 2.5a xmlrpclib.
  1213     * I18n for linenumber toggle in listings.
  1214     * All action menu entries are translatable now.
  1215 
  1216   Other:
  1217     * Added css classes for the rst admonitions. Thanks to TiagoMacambira!
  1218 
  1219 Version 1.5.2:
  1220 
  1221   New features:
  1222     * Added FullSearchCached macro which is statically cached.
  1223       Use it if you do not depend on fresh search results but prefer raw speed.
  1224     * Added surge protection, see HelpOnConfiguration/SurgeProtection.
  1225     * Allow hex and symbolic entities.
  1226     * If there is a user with empty password, we just generate a random one
  1227       when he requests it getting sent by mail. Thanks to Reimar Bauer.
  1228     * The superuser now can switch to another user using UserPreferences -
  1229       nice to help your users when they forgot their password or need other
  1230       help. You need to logout/relogin to use your own userid afterwards.
  1231       This function only works correctly if you use moin_cookie authentication.
  1232       Thanks to Reimar Bauer.
  1233     * Add new markup for bulletless lists: just use a "." instead of "*".
  1234 
  1235   Other changes:
  1236     * Added "voyager" to bot useragent list.
  1237     * Added locking for caching subsystem.
  1238     * Deron Meranda's formatter API cleanup.
  1239     * Added div and span to formatter API.
  1240     * Removed old unfinished form and export code.
  1241     * updated i18n
  1242 
  1243   Fixes:
  1244    * Fixed table attribute parsing.
  1245    * Fixed cookie handling wrt properties adherance.
  1246    * The new "." list markup makes it possible to have a bulletless list with
  1247      elements on the same level. Before this change and only using indentation
  1248      with blanks, that would get merged into a single paragraph.
  1249    * It is possible now to have multiple paragraphs in the same list element,
  1250      just leave an empty line in between the paragraphs.
  1251    * Fixed GAP processing for ordered lists.
  1252    * Fix text_gedit formatter's invalid list nesting.
  1253    * Fixed hr crash in blockquote (but needs more work).
  1254    * Fixed FootNote's formatter usage.
  1255    * Fixed rst's headline levels.
  1256    * Fixed MoinMoinBugs/WikiParserThinksItIsInsidePreWhenItIsNot
  1257    * Fixed MoinMoinBugs/ListItemGeneratedOutsideList
  1258    * Fixed that macros were followed by a wrong <p>.
  1259    * Added <blockquote> to the block elements in the text_html formatter,
  1260      so it does not close it erratically when you close a inner <p>.
  1261    * GUI editor converter now also accept http: urls without // (relative or
  1262      same server urls).
  1263    * Fixed the DocBook parser in cases where the pagename was non-ascii.
  1264    * Fixed MoinMoinBugs/ProcessInlineDontSupportUlElement
  1265 
  1266 
  1267 Version 1.5.1:
  1268 
  1269   Fixes:
  1270     * Fixed rst parser docutils version check
  1271     * Repaired attachment unzipping feature.
  1272     * Fixed the AddRevision command of the PackageInstaller.
  1273     * improved the migration scripts (used to migrate pre-1.3 wikis to 1.3+):
  1274       * do not crash on empty lines in event log
  1275       * fix edit log format for very old moin data (like 0.11)
  1276       * workaround for an ugly win32 operating system bug leading to wiki text
  1277         file mtime not matching edit logs timestamp values if there was some
  1278         timezone change since last edit (e.g. a daylight saving tz switch),
  1279         but differing 3600s.
  1280         This affected pre-1.3 moin wiki servers running on win32 OS only.
  1281         We now try to correct those inconsistencies in mig05 by fuzzy matching.
  1282     * fixed bracketed link scheme icon (css class)
  1283     * we included a modified copy of Python 2.4.2's copy.py as some previous
  1284       python versions seem to have problems (2.3.x, x < 5 and also 2.4[.0]),
  1285       see: http://moinmoin.wikiwikiweb.de/MoinMoinBugs/DeepCopyError
  1286       Our own copy.py was slightly modified to run on 2.3.x and 2.4.x.
  1287     * Fixed the problem of not being able to change the date/time format back
  1288       to "Default" (UserPreferences).
  1289     * We generate the GUI editor footer now the same way as the text editor
  1290       footer.
  1291     * Include a CSS workaround for yet another IE bug, see:
  1292       MoinMoinBugs:InternetExplorerPeekABooBugInRightSideBar
  1293     * classic theme: added GUI editor link
  1294     * classic theme: added pagename header to editor screen
  1295     * the "mail enabled" check now also checks whether mail_from is set
  1296 
  1297   Other changes:
  1298     * Updated FCKeditor to current CVS (2006-01-08 == 2.2+)
  1299     * Split up show_hosts into show_hosts and show_names
  1300     * attachment:file%20with%20spaces.txt in attachment list
  1301     * added support for file:// in GUI editor link dialogue, see also:
  1302       MoinMoin:FileLinks
  1303     * cfg.mail_smarthost now supports "server:port" syntax, the default port
  1304       is 25, of course.
  1305     * removed unused kwargs showpage/editable/form from wikiutil.send_footer
  1306     * updated i18n (translation texts, additional languages)
  1307     * removed interwiki:pagename from print view's top of page, added it to
  1308       the "lasted edited" line at bottom right.
  1309 
  1310 
  1311 Version 1.5.0:
  1312   HINT: 1.5.0 uses the same data/pages format as 1.3.x. The only thing you want
  1313         to check is whether the 1.5.x version you are upgrading to has NEW mig
  1314         scripts compared to the version you are running now (e.g. in 1.3.5 we
  1315         added some scripts that fixed some small problems).
  1316         See the MoinMoin/scripts/migration/ directory.
  1317         You must run every mig script in sequence and only ONCE ever.
  1318   Fixes:
  1319     * Fix <x=y> table attributes parsing. Thanks to Reimar Bauer.
  1320     * Fixed a few bugs in the reStructured text parser. Note that you
  1321       need to install docutils 0.3.10 or newer (snapshot from December 2005
  1322       or newer) to make reStructuring parsing work:
  1323      * Case preservation for anonymous links
  1324      * MoinMoin links get the appropriate CSS class
  1325      * Images do not get special CSS markup anymore
  1326      Thanks to Matthew Gilbert.
  1327     * Fixed a bug in the WSGI code which led to incorrect exception handling.
  1328     * Removed all nationality flags. They used to be used for indicating some
  1329       specific language (NOT nationality) and this was simply wrong and a bad
  1330       idea.
  1331     * Fixed some header rendering issues (CSS).
  1332     * SystemAdmin macro now checks against cfg.superuser list.
  1333 
  1334   Other changes:
  1335     * Added turkish i18n. To be considered as alpha as it got in last minute.
  1336 
  1337 
  1338 Version 1.5.0rc1:
  1339   This is the first release candidate of MoinMoin 1.5.0.
  1340   
  1341   Fixes:
  1342     * fixed broken logs when a DeletePage (maybe also RenamePage) comment
  1343       contained CR/LF characters (could happen when using copy&paste)
  1344     * fixed GUI editor MoinEditorBackup page containing HTML instead of wiki
  1345       markup
  1346     * fixed invalid HTML in FootNotes
  1347     * fixed HTML source in EditorBackup after canceling GUI editor
  1348     * Footnotes of included pages are not shown at the bottom of the including page.
  1349     * Bug in Dict handling that often breaks first entry
  1350 
  1351 Version 1.5.0beta6:
  1352   Authentication:
  1353     * Added SSO module for PHP based apps. Currently supported: eGroupware 1.2.
  1354       No need to login in two systems anymore - MoinMoin will read the PHP session
  1355       files.
  1356 
  1357   Fixes:
  1358     * Improved rendering of bullet lists and external links in Restructured text.
  1359       Thanks to Matthew Gilbert.
  1360     * Fixed modern theme rendering, including some fixes and workarounds for
  1361       broken MS IE.
  1362     * When checking for email uniqueness, do not compare with disabled user
  1363       profiles.
  1364     * Fix sending of HTTP headers for Despam action.
  1365     * Add some margin left and right of the link icons.
  1366 
  1367   Other changes:
  1368     * Made it easier for auth methods needing a user interface (like ldap or
  1369       mysql stuff). Unlike http auth, they usually need some "login form".
  1370       We made UserPreferences login form values (name, password, login, logout)
  1371       available as kw args of the auth method, so it is easy and obvious now.
  1372     * Make login and logout show at the same place. Is only shown when
  1373       show_login is True (default).
  1374     * Disabled login using &uid=12345.67.8910 method. Please use name/password.
  1375     * Made builtin moin_cookie authentication more modular: the cookie is now
  1376       touched by MoinMoin.auth.moin_cookie only, with one minor discomfort:
  1377       When creating a user, you are not automatically logged in any more.
  1378     * We now use the packager for additional help and system pages in all other
  1379       languages except English. The packages are attached to SystemPagesSetup
  1380       page and can be installed from there after getting "superuser" powers.
  1381       The "extra" package contains a collection of orphan pages not listed on
  1382       some SystemPagesIn<Language>Group page.
  1383 
  1384 
  1385 Version 1.5.0beta5:
  1386   Fixes:
  1387     * Fixed a minor user interface bug: it showed RenamePage and DeletePage
  1388       actions in the menu if you only had write rights and then complained
  1389       when you really tried when you had no delete rights additionally.
  1390     * We don't remove RenamePage and DeletePage from menu any more if user is
  1391       unknown. This stuff is only driven by ACLs now.
  1392     * Some fixes to Despam action.
  1393     * Fixed moin_dump (broken by some recent theme init change).
  1394     * Fixed a few tests by moving the theme init from moin_dump to RequestCLI.
  1395     * removed old_onload reference from infobox.js
  1396     * Fixed MoinMoin logo for IE.
  1397     * search: fixed whitespace handling in linkto: search terms
  1398     * Increased stability of the tests system by outputting results to sys.stdout
  1399       instead of request. Note that this changes the semantics for e.g. mod_py or
  1400       mod_fcgi.
  1401     * Fixed packaging system in the case of AddRevision that does not alter the page.
  1402     * Fixed a few bugs in the XML formatters (dom_xml, text_xml, xml_docbook).
  1403     * Fixed link icons. We now just use a.xxx.before where xxx is the link scheme,
  1404       e.g. a.http.before. See theme's common.css.
  1405     * Hopefully fixed some issue with non-ASCII attachment filenames.
  1406     * Workaround for Opera 8.5 making silly "No addition" categories.
  1407     * Do not show GUI editor for non-wiki format pages, because we only have a
  1408       converter from html to wiki right now.
  1409     * Fix the modern CSS issues for editbar, when it shifted content far right.
  1410       Also removed the absolute height value that never was right.
  1411     * Fix mod_python adaptor bugs failing to handle Location correctly.
  1412       See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=339543
  1413 
  1414   Other changes:
  1415     * Added irc:// to the builtin supported link schemas. You can remove it
  1416       from config.url_schemas in case you have patched it in there.
  1417     * Added cfg.user_autocreate (default: False). Use True to enable user
  1418       profile autocreation, e.g. when you use http authentication, so your
  1419       externally authenticated users don't need to create their moin profile
  1420       manually. The auth method (see cfg.auth list) must check this setting
  1421       if it supports auto creation.
  1422     * Added user_autocreate support for auth.http and auth.sslclientcert.
  1423     * Added "." and "@" to allowed characters in usernames. This is needed
  1424       e.g. when using mod_pubcookie for authentication. mod_pubcookie returns
  1425       userids like "geek@ANDREW.CMU.EDU" (e.g. the Kerberos domain is part of
  1426       the id). Thanks to Brian E. Gallew for his patch, which we used for
  1427       inspiration for user autocreation changes.
  1428     * Changed auth method to return a tuple (user_obj, continue_flag), see
  1429       comments in auth.py.
  1430     * auth methods now create user objects with kw args auth_method and
  1431       auth_attribs, so that moin knows later how the user was authenticated
  1432       and which user object attributes were determined by the auth method.
  1433     * Added MoinMoin/scripts/import/IrcLogImporter.py to import supybot's
  1434       IRC logs into a moin wiki. We use MonthCalendar compatible page names,
  1435       so you can use the calendar for showing / navigating the logs.
  1436     * Removed packager binary from FCKeditor (fixing a Debian policy problem).
  1437     * Worked around .png transparency bugs of IE with the new logo. We ship
  1438       two logos: moinmoin.png without an alpha channel (IE compatible) and
  1439       moinmoin_alpha.png which has an alpha channel and looks better on
  1440       browsers with full .png support.
  1441     * Allow a .zip file to have a directory in it if it is the only one.
  1442 
  1443 Version 1.5.0beta4:
  1444   Fixes:
  1445     * use <span class="anchor"> instead of <a> for line-xxx anchors, this
  1446       fixes some rendering problems on IE
  1447     * Fixed the ReStructured text parser when it was used with non-HTML
  1448       formatters. Increased compatiblity with new docutils code.
  1449       (Thanks to Matt Gilbert.)
  1450   Other changes:
  1451     * cfg.stylesheets = [] (default). You can use this on wiki or farm level
  1452       to emit stylesheets after the theme css and before the user prefs css.
  1453       The list entries must be ('screen', '/where/ever/is/my.css') style.
  1454     * Added sample code for auth using an external cookie made by some other
  1455       program. See contrib/auth_externalcookie/*. You need to edit it to
  1456       fit whatever cookie you want to use.
  1457 
  1458 Version 1.5.0beta3:
  1459   Fixes:
  1460     * fixed editor preview throwing away page content for new pages
  1461     * require POST for userform save and create* action
  1462     * use request.normalizePagename() while collecting pagelinks
  1463     * do not offer gui editor for safari
  1464   Other changes:
  1465     * tell user if account is disabled
  1466     * added support for linking to .ico and .bmp
  1467     * attachment methods for the text_xml and xml_docbook formatters
  1468     * new favicon
  1469     * updated i18n (fixed nl, did nobody notice this?) and underlay
  1470     * changed show_interwiki default to 0
  1471 
  1472 Version 1.5.0beta2:
  1473   Fixes:
  1474     * fix wrong _ in title links (MoinMoinBugs/AddSpaceWikiNameAtHead)
  1475     * fix gui editor (converter) crash on save
  1476     * MoinMoinBugs/PageHitsFails
  1477     * MoinMoinBugs/PackagePagesFailsBecauseAllowedActionsMissing
  1478     * Avoid destroying existing page content if editor is called with
  1479       template parameter for an existing page.
  1480     * fix countdown javascript for browser status line in editor
  1481     * added page title display for editor
  1482     * added header div for classic theme
  1483 
  1484   Authentication and related:
  1485     * Added a WhoAmI.py wiki xmlrpc plugin to check whether auth works
  1486       correctly for xmlrpc. There is a counterpart script WhoAmI.py that
  1487       uses http auth when calling the xmlrpc plugin, so you can use it to
  1488       check http auth.
  1489 
  1490 Version 1.5.0beta1:
  1491     * Requirements changed to require Python >= 2.3. We recommend that
  1492       you use the latest Python release you can get. The reason we
  1493       dropped 2.2.2 support is because no developer or tester uses this
  1494       old version any more, so incompatibilities crept in the code
  1495       without anybody noticing. Using some recent Python usually is no
  1496       real problem, see there for some hints in case you still run an
  1497       old python: http://moinmoin.wikiwikiweb.de/NewPythonOnOldLinux
  1498       The hint also does apply to other POSIX style operating systems,
  1499       not only Linux.
  1500     * We recommend you use MoinMoin/scripts/cachecleaner.py to clean the
  1501       wiki's cache (see comments at top of the script).
  1502       The cache will automatically be rebuilt (some operations may take
  1503       some time when first being used, e.g. linkto: search, so be patient!).
  1504 
  1505   Config Changes:
  1506      * there is a file CHANGES.config with just the recently changed stuff
  1507        from multiconfig.py
  1508      * new defaults:
  1509        * page_front_page old: u"FrontPage" new: u"HelpOnLanguages"
  1510          please just read the help page in case you see it :)
  1511        * bang_meta old: 0 new: 1
  1512        * show_section_numbers old: 1 new: 0
  1513        * some regexes that used to be [a-z]Uxxxx$ are now [a-z0-9]Uxxxx$
  1514        * navi_bar has no page_front_page as first element any more
  1515      * removed settings and code [new behaviour]:
  1516        * acl_enabled [1]
  1517        * allow_extended_names [1]
  1518        * allow_numeric_entities [1]
  1519        * backtick_meta [1]
  1520        * allow_subpages [1]
  1521      * new settings:
  1522       * cfg.mail_sendmail = "/usr/sbin/sendmail -t -i" can be used if sending
  1523         via SMTP doesn't work on your server. Default is None and that means
  1524         using SMTP.
  1525       * language_default replaces the old default_lang setting (just renamed).
  1526       * language_ignore_browser = True can be used to let moin ignore the
  1527         user's browser settings (e.g. if you run a local-language only wiki
  1528         and your users use misconfigured or buggy browsers often). Default is
  1529         False. Don't forget to set language_default when using this.
  1530  
  1531     * Wiki Editor changes / new WYSIWYG editor
  1532      * fully imported the javascript based LGPLed FCKeditor (many thanks
  1533       to Fred CK for his great work). See http://fckeditor.net/ for details.
  1534      * config for FCKeditor is at wiki/htdocs/applets/moinfckeditor.js
  1535      * added cfg.interwiki_preferred (default = []) to set a list of wikis to
  1536        show at the top of the wiki selection list when inserting an
  1537        interwiki link (just use the same wiki name as in interwiki
  1538        map). If the last list item is None, then the preferred wikis
  1539        will not be followed by the entries of the interwiki map.
  1540     * moved save/preview/... buttons to the top so that they can be
  1541       easily reached
  1542     * reduced edit_rows default to 20 lines
  1543     * Added support for edit by doubleclick in the diff view
  1544 
  1545     * Improved wiki farm support
  1546      * make user files sharable between several wikis in a farm
  1547       * allow/use interwiki subscriptions
  1548       * use interwiki links in page trail
  1549       * save bookmark per wiki name
  1550      * cfg.cookie_domain can be used to set a cookie valid for a complete
  1551        domain (default: None == only for this host). If you use '.domain.tld',
  1552        the cookie will be valid for all hosts *.domain.tld - good for host
  1553        based wiki farms.
  1554      * cfg.cookie_path can be used to set a cookie valid for a wiki farm under
  1555        some base path (default: None == only for this wiki's path). If you use
  1556        '/wikifarm',  the cookie will be valid for all wikis
  1557        server.tld/wikifarm/* - good for path based wiki farms.
  1558      * Interwiki user homepage (if you have MANY users)
  1559        Generated links for usernames are interwiki now, use cfg.user_homewiki
  1560        (default: 'Self') to specify in which wiki the user home pages are
  1561        located. Note: when pointing this to another wiki, the /MoinEditorBackup
  1562        functionality will be disabled.
  1563        @SIG@ also uses interwiki when needed.
  1564 
  1565     * Authentication, ACLs and related
  1566      * Modular authentication: cfg.auth is a list of functions that return a
  1567        valid user or None, use it like this:
  1568            from MoinMoin.auth import http, moin_cookie
  1569            auth = [http, moin_cookie]
  1570      * cfg.auth_http_enabled was removed, please use cfg.auth instead.
  1571      * http auth now supports "Negotiate" scheme, too
  1572      * Added sslclientcert auth method (Apache: untested, Twisted: not
  1573        implemented, IIS: no idea). See MoinMoin/auth.py for details.
  1574        Submit a patch if you have improvements.
  1575      * cfg.superuser is a list of unicode usernames. It is used by some
  1576        critical operations like despam action or PackageInstaller.
  1577      * removed allowed_actions, we now use actions_excluded only and it
  1578        defaults to [], that means, no action is excluded, everything is
  1579        allowed (limited by ACLs). In case of RenamePage and DeletePage,
  1580        this shouldn't be a problem as both can be reverted. In case you
  1581        did not allow attachments, you now have to use:
  1582        actions_excluded = ['AttachFile']
  1583      * special users (All, Known, Trusted) in Groups are now supported
  1584      * MoinMoin.security.autoadmin SecurityPolicy added
  1585        When using this security policy, a user will get admin rights on his
  1586        homepage (where pagename == username) and its sub pages. This is needed
  1587        for the MyPages action, but can also get used for manual ACL changes.
  1588        It can also be used for Project page auto admin functionality, see the
  1589        comments in the script for details.
  1590        Further it can automatically create the user's group pages when the
  1591        user saves his homepage.
  1592      * there is a UpdateGroup xmlrpc call, see MoinMoin/xmlrpc/UpdateGroup.py -
  1593        you can use this to update your *Group pages e.g. when generating them
  1594        from an external group database.
  1595 
  1596     * UserPreferences changes
  1597      * Alias name: is used for display purposes, when "name" is cryptic. It is
  1598        shown e.g. in the title attribute of userid links (displayed when
  1599        moving the mouse over it).
  1600      * "Publish my email (not my wiki homepage) in author info" - use this
  1601        if you don't have a wiki homepage, but if you want to be contactable
  1602        by email. When you edit a page, your email address will be published
  1603        as mailto: link on RecentChanges, at bottom of page (last editor) and
  1604        in page info. If the wiki runs publically on the internet, be careful
  1605        using this or your email address might be collected by spammers.
  1606      * Preferred Editor: whether you want to use the text editor (as in
  1607        previous moin versions), the gui editor (new!) or both (you will get
  1608        2 edit links in that case).
  1609      * a user can add/remove the current page to/from his quicklinks with an
  1610        appropriate action now
  1611      * if cfg.user_email_unique = False, we don't require user's email
  1612        addresses to be unique
  1613      * removed show_fancy_links user preferences setting to simplify code and
  1614        caching. Displaying those icons is now done by CSS styles (see
  1615        common.css). Maybe needs fixing for non-standard themes and RTL langs.
  1616 
  1617     * Markup
  1618      * added strikethrough markup: --(striked through text here)--
  1619      * @ME@ expands to just the plain username (no markup added) on save
  1620     
  1621     * User homepages
  1622      * when a user accesses his own non-existing homepage (pagename ==
  1623        username), the wiki will present the MissingHomePage system page
  1624        content, explaining what a user homepage is good for and offer
  1625        one-click editing it with content loaded from HomepageTemplate
  1626      * creation of homepage subpages is assisted by the MyPages action, which
  1627        offers rw, ro page creation (and a related group) or creation of private
  1628        pages. If you are not in the user_homewiki, you will get redirected
  1629        there first.
  1630 
  1631   Other changes/new features:
  1632     * Added PackageInstaller and unzipping support (see wiki page
  1633       HelpOnActions/AttachFile for further details).  PackageInstaller requires
  1634       the user to be in cfg.superuser list.
  1635      * Added an PackagePages action to simplify the package creation.
  1636     * Added location breadcrumbs - when you are on some subpage, the page
  1637       title parts link to the corresponding parent pages, the last part does
  1638       the usual reverse linking.
  1639     * added WSGI server support, thanks to Anakim Border, see:
  1640       wiki/server/moinwsgi.py (moin as WSGI app, uses the flup WSGI server,
  1641                                see http://www.saddi.com/software/flup/)
  1642       MoinMoin/server/wsgi.py (adaptor code)
  1643     * added a "Despam" action to make de-spamming a wiki easy (mass revert
  1644       bad changes done by a single author or bot). You need to be in
  1645       cfg.superuser to use it.
  1646     * Better diffs with links to anchors to the changed places
  1647     * Enhanced table support in the DocBook formatter.
  1648     * Added 'moin' daemon script, that let you run moin standalone
  1649       server as daemon and control the server with simple command line
  1650       intreface: moin start | stop | restart | kill
  1651     * Add 'restart' option to mointwisted script
  1652     * Add properties option to standalone server config. Allow
  1653       overriding any request property like in other server types.
  1654     * Add support for running behind proxy out of the box with out
  1655       manual url mapping.
  1656       See HelpOnConfiguration/IntegratingWithApache
  1657     * added a WikiBackup action, configure it similar to this:
  1658       data_dir = "/path/to/data"
  1659       backup_include = [data_dir, ] # you can add other dirs here
  1660       backup_users = ["BackupUserName", ] # only TRUSTED users!
  1661       You usually don't need to change the default backup_exclude setting.
  1662       The default backup_include list is EMPTY and so will be your
  1663       backup in case you don't configure it correctly.
  1664       If you put your data_dir there, the backup will contain private
  1665       user data like email addresses and encrypted passwords.
  1666     * Added a SubscribeUser action which allows the administrator to subscribe users to the
  1667       current page.
  1668     * Added thread count to SystemInfo macro.
  1669     * Added Petr's newest patch against the DocBook code. It allows you to use macros (esp. the include macro) in DocBook pages in order to build larger documents.
  1670     * Added a RenderAsDocbook action which redirects to the DocBook formatter.
  1671     * Added searching for wiki-local words lists under <data_dir>/dict/.
  1672       They are used additionally to the global lists in MoinMoin/dict/.
  1673     * moin_dump now also dumps attachments referenced from the page.
  1674       It doesn't dump stuff that is just attached, but not referenced!
  1675     * On RecentChanges we now force the comment to be breakable, this improves
  1676       rendering of over-long words or on narrow browser windows - especially
  1677       for themes with limited content width like rightsidebar.
  1678     * We now have the "new" icon on RecentChanges clickable, just links to the
  1679       page.
  1680     * Print view now shows "interwikiname: pagename" (for show_interwiki = 1).
  1681 
  1682   International support:    
  1683     * mail_from can be now a unicode name-address 
  1684       e.g u'Jürgen wiki <noreply@jhwiki.org>'
  1685 
  1686   Theme changes:
  1687     * logo_string is now should be really only the logo (img).
  1688       If you included your wiki's name in logo_string you maybe want to remove
  1689       it now as it is shown as part of the location display now anyway (if
  1690       you set show_interwiki = 1).
  1691     * You maybe want to remove page_front_page from your navi_bar - we link to
  1692       that page now from the logo and (new, if you set show_interwiki = 1) from
  1693       the interwiki name displayed in location display, so you maybe don't need
  1694       it in navi_bar, too.
  1695     * If you have a custom theme, you should / may:
  1696      * sync modern/css/screen.css #pagelocation #pagetrail stuff to your
  1697        screen.css or pagelocation display (title()) will look strange (like a
  1698        list).
  1699      * remove "#title h1 ..." CSS (or any other CSS assuming h1 is a page
  1700        title and not just a first level heading), it is not used any more.
  1701      * we now render = heading = as <h1> (was <h2> before 1.5),
  1702        == heading == as <h2> (was <h3>), etc.
  1703      * maybe move both title() and trail() to header area, like the builtin
  1704        themes do it.
  1705      * there is a new interwiki() base theme method that optionally (if
  1706        show_interwiki = 1) shows the interwiki name of this wiki and links to
  1707        page_front_page. The css for it is #interwiki.
  1708 
  1709   Developer notes:    
  1710     * Plugin API was improved. When plugin module is missing,
  1711       wikiutil.PluginMissingError is raised. When trying to import a
  1712       missing name from a plugin module, wikiutil.PluginMissingError is
  1713       raised. You must update any code that use wikiutil.importPlugin.
  1714       Errors in your plugin should raise now correct tracebacks. See
  1715       http://moinmoin.wikiwikiweb.de/ErrorHandlingInPlugins
  1716     * pysupport.importName was changed, it does not check for any
  1717       errors when trying to import a name from a module. The calling
  1718       code should check for ImportError or AttributeError. Previous
  1719       code used to hide all errors behind None.
  1720     * Its easier now to customize the editbar by overriding
  1721       editbarItems() in your theme, and returning a list of items to
  1722       display in the editbar. To change a single editbar link, override
  1723       one of the xxxLink methods in your theme.
  1724 
  1725   Internal Changes:
  1726     * request.formatter (html) is available for actions now
  1727     * theme API's d['page_home_page'] is gone (sorry) and replaced by
  1728       d['home_page'] which is either None or tuple (wikiname,pagename).
  1729       It is better to use the base classes function for username/prefs anyway.
  1730     * introduced cfg.hacks for internal use by development, see comment in
  1731       multiconfig.py and file HACKS.
  1732     * added IE7 (v0.9) from Dean Edwards (see http://dean.edwards.name/IE7/) -
  1733       that should fix quite some IE bugs and annoyances (on Win32).
  1734       * for enabling IE7, use cfg.hacks = { 'ie7': True }
  1735     * reducewiki now also copies all attachments (we use that to make underlay
  1736       directory from moinmaster wiki's data_dir)
  1737 
  1738   Fixes:  
  1739     * Fixed a typo in xslt.py which led to a traceback instead of an
  1740       error message in case of disabled XSLT support.
  1741     * Fixed crash in twisted server if twisted.internet.ssl is not
  1742       available.
  1743     * Fixed wrong decoding of query string, enable wiki/?page_name urls
  1744       with non ascii page names.
  1745     * Fixed wrong display of non ascii attachments names in
  1746       RecentChanges and page revision history.
  1747     * Fixed a crash when trying to run standalone server on non posix os.
  1748     * Fixed highlight of misspelled words in Check Spelling action.
  1749     * Fixed case insensitivity problems on darwin (Mac OS X). See
  1750       MoinMoinBugs/MacHfsPlusCaseInsensitive
  1751     * Added RecentChanges (only the english one) to the pages getting
  1752       html_head_index headers
  1753     * text_html cache files written with this code will invalidate themselves
  1754       if they detect to be older than the wikiconfig. Note: you should remove
  1755       all old text_html cache files once after upgrading, they will then be
  1756       rebuilt automatically with the new code.
  1757     * Fixed MoinMoinBugs/12_to_13_mig10_Walk
  1758     * Fixed the word_rule: a word like AAAbbAbb isn't teared into two parts
  1759       any more (was: AA<link>AbbAbb</link>)
  1760     * Fixed false positive InterWiki markup for languages like Finnish.
  1761       InterWiki links are only rendered if the left side has an appropriate
  1762       entry in the interwiki map, otherwise it is rendered as simple text.
  1763     * Fixed unicode error when uploding non-ascii file name using mod
  1764       python.
  1765     * Fixed error handling of wikirpc requests, should give more
  1766       correct errors and prevent no error output and blocking the
  1767       client in some cases.
  1768     * Fixed the "lost password" mail processing. If a user entered some email
  1769       address unknown to the system, he was not notified of this, but just got
  1770       a useless mail with no account data in it. Now the system directly tells
  1771       the user that he entered an unknown email address.
  1772     * Fixed SystemInfo, it now also lists parsers in data/plugin/parser dir.
  1773     * Fix error handling on failure, improved error display
  1774     * Fix error handling when importing plugins or importing modules
  1775       dynamically. The fix is not backward compatible with older plugins.
  1776     * Fix chart action, returns a page with error message when chart
  1777       can not be created.
  1778     * Fixed formatter usage in the ShowSmileys macro.
  1779     * Fixed updating pagelinks cache for [:page:text] or [wiki:Self:page text],
  1780       fixes display of LocalSiteMap and rendering of such links.
  1781     * Hopefully fixed urllib problems (esp. with py 2.4.2, but also before) by
  1782       using our own urllib wrapper that handles encoding/decoding to/from
  1783       unicode, see wikiutil.py. Also made a similar fix for making and parsing
  1784       query strings.
  1785     * Fixed MonthCalendar tooltips when containing special chars like quotes.
  1786     * Added html escaping for diff text for RSS feed with diff=1.
  1787     * The distance between page content beginning and the first = heading =
  1788       was much too much. Fixed.
  1789     
  1790 Version 1.4:
  1791 
  1792     We used that version number for an internal and early development version
  1793     for what will be called moin 2.0 at some time in the future.
  1794     There will never be a 1.4.x release.
  1795 
  1796 
  1797 Version 1.3.5 (2005-08-04, Revision moin--main--1.3--patch-883)
  1798 
  1799 Fixes:
  1800     * small CSS fix for rightsidebar theme
  1801     * applied some Debian patches (thanks to Jonas!):
  1802       * de i18n spelling fixes
  1803       * AttachFile fix, we strip CR in .draw files now
  1804       * when loading spellcheck dictionaries, we want utf-8, but we make
  1805         a 2nd try with iso-8859-1 encoding.
  1806 
  1807 New Features:
  1808 
  1809     * enabled using https with the Twisted server:
  1810       You need to use port 443, have PyOpenSSL (+ ssl libs it depends on)
  1811       installed and have some site key and certificate PEM files configured in
  1812       your twistedmoin.py file:
  1813       sslcert = ('/whereever/cert/sitekey.pem', '/whereever/cert/sitecert.pem')
  1814 
  1815 
  1816 Version 1.3.5rc1 (2005-07-31, Revision moin--main--1.3--patch-865)
  1817 
  1818 Fixes:
  1819 
  1820     * Fixed security bug when acl of deleted page was ignored. See:
  1821       http://moinmoin.wikiwikiweb.de/MoinMoinBugs/ACLIgnoredAfterDelete
  1822     * AttachFile did not display the original filename plus there
  1823       was a confusion in input field labelling ('Rename to').
  1824     * Fixed shortcut link non-existent page detection.
  1825     * Fixed non-working bookmark function on python 2.2.x.
  1826     * Fixed wikirpc getPageInfo call on python 2.2.x.
  1827     * Fixed the failing import of plugins from the data/plugin/
  1828       directories if run in zipimport environments.
  1829     * Fixed traceback which occurred on negated searches.
  1830     * Fixed crash when trying to render error message on twisted, fast
  1831       cgi and modpy.
  1832     * Fixed error message with modpy, used to show wrong errors below
  1833       the real message.
  1834     * Fixed search and goto text fields for better compatibility with
  1835       dark themes and better control through css.
  1836     * Show an edit link if MissingPage is missing and a warning in the
  1837       server log.
  1838     * Fixed missing footer in the editor.
  1839     * Fixed indented (invalid) headings with broken links in table of
  1840       contents.
  1841     * Fixed crash when file name is too long, show standard error message.
  1842     * Save trail file in a safe way, should be enough for normal use.
  1843     * Fixed remember_last_visit user preferences option when show_trail
  1844       is not selected.
  1845     * Fixed the tests for Standalone, Twisted, FastCGI and Mod_Python.
  1846       Run with ?action=test from any page.
  1847     * Fixed rare bug when wrong search type was performed when pasting
  1848       search term in Safari.
  1849     * Fixed crash for custom formatters and dom_xml (which occurred if
  1850       smileys were in the page).
  1851     * Editor opens on double click in pages with single quote in the
  1852       name, like "Ben's Wiki".
  1853     * '/.' in page names are not replaced any more by '/(2e)'
  1854     * Fixed the long delays while saving pages using RequestCLI.
  1855     * Fixed variable expanding for users with non WikiName.
  1856     * Fixed MonthCalendar's calculation of "today" to use the user's
  1857       time zone setting.
  1858     * Fixed moin_dump script, use same configuration options as other
  1859       scripts.
  1860     * Fixed url_mappings to work in proxied setups and sent mails
  1861       again. Also fixed for image links. Thanks to JohannesBerg.
  1862     * Fixed page shown after saving a drawing (esp. when saved from a
  1863       sub page). Fixed help link for drawings.
  1864     * Fixed mig10 script to run on Python < 2.3.
  1865     * The twisted server defaulted to a socket timeout of 12 hours!
  1866       We reduced that to a more sane 10 minutes, that should still be more
  1867       than enough. This fixed the "too many open files" problem we
  1868       encountered quite often recently. Thanks to Helmut Grohne!
  1869 
  1870 Other Changes:
  1871 
  1872     * Added {hu} flag.
  1873     * Added cz, pt and pt-br i18n.
  1874     * We send a 404 http status code for nonexisting wiki pages now,
  1875       maybe this will repell some search engines from requesting gone
  1876       pages again and again. The wiki user still sees the MissingPage
  1877       wiki stuff, so a user usually won't notice this change.
  1878     * Return 500 error code on failure and exceptions.
  1879     * Added some more bot / leech tool user agent strings.
  1880     * Prevent page floating elements from floating out of the page over
  1881       the footer, in modern, rightsidebar and classic themes.
  1882     * Encode URLs in a safer way
  1883     * We allow usernames with ' character in them now (like Tim O'Brian).
  1884     * Added support for the new security flags in docutils 0.3.9.
  1885     * @MAILTO@ expands now to safer [[MailTo()]] macro.
  1886     * Clarified and i18ned lost password mails.
  1887     * Added 'TitleIndex' and 'SiteNavigation' (+ translation) to the
  1888       list of pages that use html_head_index (so that robots
  1889       "index,follow").  Please make sure to have either FindPage,
  1890       TitleIndex or SiteNavigation in your navi_bar or in your
  1891       page_front_page content if you want search engines to find all
  1892       your pages.
  1893     * Make it possible to send account data when being logged in (for
  1894       future reference or whatever purpose).
  1895     * Speed up when running with persistent servers, the wiki config
  1896       does only get loaded once and misc. stuff is being cached between
  1897       requests now.
  1898     * The unit tests are disabled when using multi threading, because
  1899       the wiki configuration is shared between diffrent threads.
  1900     * The main code path (using standalone server) of MoinMoin runs on
  1901       PyPy now.
  1902     * Formatters do automatically transform HTML to plain text if they are
  1903       called with raw HTML code.
  1904     * Using larger socket backlog on Standalone and FastCGI servers
  1905       should be more reliable on high load.
  1906     * We now strip leading path from attachments uploaded by IE (this is
  1907       a bug in IE, not in MoinMoin). Better use a sane browser, like Firefox.
  1908     * added "teleport" to the user agent blacklist
  1909 
  1910 New Features:
  1911 
  1912     * Integrated Lupy indexer for better search performance. It is disabled
  1913       by default as of 1.3.5 as it still has known issues.
  1914       See multiconfig.py if you want to test it.
  1915     * Integrated MonthCalendar 2.1, with some new features:
  1916       * a mouseover bubble that shows first level headlines of the linked
  1917         day page
  1918       * all calendars with same pagename move when using cal navigation,
  1919         thanks to Oliver Graf
  1920       * included AnnualMonthlyCalendar patch of Jonathan Dietrich
  1921         (use [[MonthCalendar(Yearly,,,+1,,6,1)]] syntax for birthdays and
  1922         other annually repeating stuff)
  1923       Make sure you remove old MonthCalendar.* from data/plugin/macro so that
  1924       moin will use the new code in MoinMoin/macro/MonthCalendar.py.
  1925       Maybe also clear the text_html cache.
  1926     * Added the new XSLT parser and the DocBook parser. This should increase
  1927       the 4suite compatiblity. See HelpOnXmlPages for details.
  1928       It now should run on 4suite 1.0a4 and 1.0b1. Thanks to Henry Ho!
  1929     * Added the DocBook formatter. This will let you generate DocBook markup
  1930       by writing simple wiki pages. It needs PyXML.
  1931     * It is now possible to customize parts of the UserPreferences page in
  1932       your wikiconfig (changing defaults, disabling fields, removing fields):
  1933       * Use user_checkbox_* for the checkboxes.
  1934       * Use user_form_* for other fields.
  1935       * See MoinMoin/multiconfig.py for the built-in defaults.
  1936     * New standalone server classes: ThreadPoolServer using pool of
  1937       threads, ThreadingServer with thread limit and ForkingServer.
  1938     * New standalone server configuration options: serverClass,
  1939       threadLimit, requestQueueSize.
  1940     * Use "PythonOption Location" in mod_python setup to solve script_name
  1941       problems.
  1942 
  1943 Developer notes:
  1944     
  1945     * Theme can now override maxPagenameLength() method to control page
  1946       name shortening.
  1947     * A search Match now provides access to the full re match via
  1948       the re_match attribute (use to access groups of the match)
  1949     * Underlay is not managed by arch any more. The tree contains an
  1950       underlay tarball, and you should untar after you update from main.
  1951     * "make update-underlay" will untar underlay
  1952     * "make merge" will star-merge main into your tree
  1953     * "make test" will now create and run in a fresh testwiki instace
  1954     * "make clean" options added
  1955     * _tests module does not have a global request any more. To refer to
  1956       the current request in a test, use self.request.
  1957     * _tests.TestConfig class require a request in the constructor.
  1958     * "python tests/runtests.py test_module" will run only test_module
  1959     * request.cfg stays between requests (for persistent servers).
  1960 
  1961 
  1962 Version 1.3.4 (2005-03-13, Revision moin--main--1.3--patch-666)
  1963 
  1964 Fixes:
  1965 
  1966     * Fixed ACL check in LikePages macro that caused links to unreadable 
  1967       pages to show.
  1968     * Fixed ACL check in newpage action.
  1969     * Fixed a security problem when admin policy defined in a custom
  1970       SecurityPolicy class was ignored.
  1971     * Fixed ACL check in action=show so that a user who may not read a page
  1972       also can't find out WHEN the protected page was updated.
  1973     * Workaround on Windows 95, 98, ME in order to clear the dircache.
  1974       This fixes some bugs related to an outdated page list and newly created
  1975       pages that did not appear immediately.
  1976     * Fixed decoding issues of page names on Windows, finally.
  1977       http://moinmoin.wikiwikiweb.de/MoinMoinBugs/BrokenUmlautsInLinksIn131
  1978     * Fixed traceback on IIS.
  1979       http://moinmoin.wikiwikiweb.de/MoinMoinBugs/request%2epy_broken_on_IIS
  1980     * Fixed wikirpc for standalone server.
  1981     * Other fixes (encoding and str/unicode data type related) to wikirpc
  1982       server, fixing some non-ascii issues hopefully.
  1983     * Fixed broken query strings for Standalone installations.
  1984     * Fixed backlinks - the result did not always show all links, often it 
  1985       showed too many irrelevant matches (MoinMoinBugs/BacklinksAreBroken).
  1986     * Fixed the acceptance of the show_hosts setting. Now you should be able
  1987       to hide any IP or host name from being published by MoinMoin by enabling
  1988       this option.
  1989     * Fixed wrong line endings on email messages.
  1990     * Fixed MoinMoinBugs/StandaloneUnquotesTooMuch.
  1991     * Fixed crash when trail file is missing.
  1992     * Fixed a traceback when searching for single ( or ).
  1993     * Added mig10 script to fix crashes with uncoverted edit-locks and file
  1994       attachments. Just use it as you did with mig1..mig9 before.
  1995     * Added mig11 script to add __init__.py files to data/plugin (and below).
  1996     * added some fixes for the xslt parser (thanks to fanbanlo), it might be
  1997       still broken, but someone with deeper knowledge about xslt should fix it.
  1998     * Replaced image link with W3C's "html 4.01 compliance" icon by a simple
  1999       text link to avoid https: or config trouble.
  2000     * Catch OverflowError backtrace when illegal date strings (e.g. <1970 or
  2001       >2038) are fed to moinmoin's time routines. It will just output current
  2002       date / time in those cases.
  2003     * UserPreferences now also set a date_fmt preference and Date macro
  2004       honours it. You may have to reset your UserPreferences value for that.
  2005     * Fixed free parent and subpage links in interwiki notation.
  2006       http://moinmoin.wikiwikiweb.de/MoinMoinBugs/FreeParentLinksAreBroken
  2007     * Fixed a traceback for invalid ReST markup.
  2008     * Fixed UnicodeError in SystemAdmin's Attachment Browser.
  2009 
  2010 Other Changes:
  2011 
  2012     * Optimized the IRC parser.
  2013     * Support for zipimport of the MoinMoin package. This allows you to use
  2014       py2exe and similar programs.
  2015     * Show the editor's name in the mail subject.
  2016     * Added the pragmas description and keywords. They will add <meta> headers
  2017       if used.
  2018     * Added MoinMoin/scripts/xmlrpc-tools/putPageTest.py example script, useful
  2019       as a starting point for importing data using wiki xmlrpc.
  2020     * Optimised display on Opera browser.
  2021 
  2022 New features:
  2023 
  2024     * The search modifier "linkto:" was introduced. You can use it to search
  2025       for links.
  2026     * The NewPage macro now can take a PageTemplate parameter, see HelpOnMacros.
  2027     * New config settings (so you don't need to edit wikirpc.py any more):
  2028       xmlrpc_putpage_enabled = 0 (if 1, enables writing to arbitrary page names)
  2029       xmlrpc_putpage_trusted_only = 1 (if 0, doesn't require users to be
  2030        authenticated by http auth - DANGEROUS, DO NOT SET TO 0!!!)
  2031     * Added support for Digest and NTLM authentication with CGI (e.g. if you
  2032       use those Apache modules)
  2033     * The datetime string accepted by Date and DateTime macros was extended to
  2034       accept a timezone specification, so now +/-HHMM is also valid, e.g.:
  2035       2005-03-06T15:15:57Z (UTC, same as +0000)
  2036       2005-03-06T15:15:57+0000 (UTC)
  2037       2005-03-06T16:15:57+0100 (same time given as local time for time zone
  2038                                 with offset +0100, that is CET, e.g. Germany)
  2039       2005-03-06T10:15:57-0500 (same time given as local time for time zone
  2040                                 with offset -0500, EST, US Eastern Std. Time)
  2041       The values given as macro argument will be transformed to UTC internally
  2042       and then adapted again according to viewing user's UserPreferences, so
  2043       the user will see the same moment in time but shown in his local time
  2044       zone's time (at least if he set his UserPreferences correctly and didn't
  2045       forget changing them twice a year for DST and non-DST).
  2046     * Readded (now optional) editlink footer to Include macro. Add
  2047       ',editlink' to call to enable this.
  2048     * star "smileys" e.g. {*}{*}{*}{o}{o}
  2049 
  2050 
  2051 Version 1.3.3 (2005-01-24, Revision moin--main--1.3--patch-595)
  2052 
  2053 Fixes:
  2054 
  2055     * fixed ACL security problem in search
  2056     * fix for IIS with CGI allowing page names that contain chars
  2057       that are not in the system code page
  2058     * fixed MoinEditorBackup revisions to start with 1 now
  2059     * improved page locking ('current' file)
  2060     * Unittests (normally shown at end of action=test output) are currently
  2061       disabled for everything except CGI, because they only work reliably with
  2062       CGI, giving wrong results for other request methods.
  2063 
  2064 
  2065 Version 1.3.2 (2005-01-23, Revision moin--main--1.3--patch-587)
  2066 
  2067 Fixes:
  2068 
  2069     * ACL bugfix for deleted pages with ACL protection.
  2070     * ACL bugfix for "Default" acl.
  2071     * Fixed updating of groups and dicts
  2072     * Python 2.2.x related fixes (worked on 2.3+)
  2073       * Fixed traceback in RecentChanges.
  2074       * Fixed traceback with links browser.
  2075     * Fixed 0 revision display in 'Show changes'.
  2076     * Fixed traceback in Antispam which occurred when it could not connect
  2077       to MoinMaster. Log the errors to stderr or error.log.
  2078     * Fixed bug in Page init (no date, use rev). Fixes problem with
  2079       #deprecated PI.
  2080     * Fixed empty lists in empty search results.
  2081     * Cosmetic fix for modern theme (when viewed with Internet Explorer).
  2082     * Fixed migration 9 script, do not drop newline, do not drop error.log, 
  2083       note about missing error.log.
  2084     * Fixed repair_language.py script, keep ending newline on revisions.
  2085     * Show headings and macro content in correct direction when mixing content 
  2086       in several directions in the same page and using caching.
  2087     * Fixed bug in standalone re farmconfig.
  2088     * Fixed DOS condition in antispam code.
  2089     * Use smaller margin in print mode to get better results with 
  2090       Mozilla/Firefox.
  2091     * Fixed some user input escaping issues.
  2092     * Fixed a problem when one wiki plugin override other wikis plugins in 
  2093       same farm.
  2094     * Fixed some broken tests.
  2095     * Fixed recursive include in pstats.
  2096     * Fixed bug in standalone - HTTP result code was 200 even when the access
  2097       was forbidden.
  2098     * Fixed traceback when trying to login with non-ascii password.
  2099     * Fixed traceback when xml is not available, reported on Python 2.2.?
  2100     * Fixed slideshow to show slides in sorted order again.
  2101     * Fixed serving multiple wikis on same IP/different ports with twisted and
  2102       farmconfig.
  2103     * It is possible to run with data_underlay_dir = None for special
  2104       application, but be aware that the wiki won't be usable unless you have
  2105       at least some of the system pages from underlay/ available.
  2106     * Files with Unicode characters in their filename are possible now.
  2107     * Bugfix for broken [:page#anchor:text] links.
  2108     * Workaround an instability of the gdchart module leading to
  2109       stalled servers etc.
  2110     * Fixed some event-log decoding issues that affect charts rendering.
  2111 
  2112 Other changes:
  2113 
  2114     * Major speed improvement over 1.3.1. Many times faster title search,
  2115       creating new page, opening page editor and any operation that list pages.
  2116       See http://moinmoin.wikiwikiweb.de/MoinBenchmarks
  2117     * Improved README.migration.
  2118     * Cleaner design for login/register interface, login is always the default
  2119       button when the user click Enter.
  2120     * If there are problems found in the configuration, log the error
  2121       and display helpful error messages in the browser.
  2122     * More forgiving unicode configuration policy, you must use the u'string' 
  2123       format only for unicode values.
  2124     * Added profiling to CGI.
  2125     * The content of farmconfig.py is similar to wikiconfig.py now.
  2126     * Unexpected errors while loading cache files are logged.
  2127     * i18n for icon ALT tags.
  2128     * Include request initialization code in the profile in standalone server.
  2129     * When creating new theme, style sheets are inherited correctly, no need
  2130       to override style sheets just to get them working.
  2131     * Many times faster plugin system. Typical pages are about 35% faster, 
  2132       pages with many plugins can be many times faster. 
  2133     * Spiders are allowed to fetch attachments.
  2134     * Old user files containing password hash encoded in pre 1.3 charset
  2135       are auto repaired on first login.
  2136     * data_dir defaults to './data', underlay_data_dir to './underlay' now.
  2137       It is a good idea to replace those by absolute pathes in wikiconfig.py.
  2138     * Renamed "Refresh" to "Delete Cache" - it was misused by users. The action 
  2139       was also moved into the action menu in the modern and rightsidebar themes.
  2140     * Added a workaround for TableOfContents missing some links by making it
  2141       uncacheable via a "time" dependency.
  2142     * Removed interwiki icon and title attribute for wiki:Self:... links.
  2143     * Unittests (normally shown at end of action=test output) are currently
  2144       disabled because they worked unreliably, giving wrong results sometimes.
  2145 
  2146 New features:
  2147 
  2148     * Create new pages easily using configurable interface and page templates 
  2149       with the new NewPage macro.
  2150     * ReStructuredText (rst) support is built-in now. See HelpOnParsers.
  2151     * New experimental feature in mointwisted.py - each interface may 
  2152       specify a port: '12.34.56.78:80'. Without a port, the port option
  2153       is used.
  2154 
  2155 API changes:
  2156 
  2157     * For a complete list of changes, see MoinMoin:ApiChanges.
  2158     * wikiutil.importPlugin's first argument is now a wiki config instance 
  2159       (request.cfg) and there is no path keyword.
  2160     * Wiki plugins always override MoinMoin plugins. wikiutil.importPlugin
  2161       implements this override.
  2162     * util.pysupport.importName does not accept path - you should call 
  2163       it with correct module name, e.g 'wikiconfig.plugin.parser.wiki' for 
  2164       wiki plugins, or 'MoinMoin.parser.wiki'. 
  2165     * wikiutil.extensionPlugin was renamed to wikiPlugins and it gets config 
  2166       instance instead of path.
  2167     * New function wikiutil.importWikiPlugin used to import wiki plugins 
  2168       using a cache in a thread safe way.
  2169     * New config option config.use_threads is used to activate thread 
  2170       safe code.
  2171     * New keyword arguments for getPageList, enable 10X faster operation
  2172       for common cases by controlling page filtering.
  2173     * New up to 100X times faster getPageCount
  2174 
  2175 
  2176 Version 1.3.1 (2004-12-13, Revision moin--main--1.3--patch-434)
  2177 
  2178 Fixes:
  2179 
  2180     * Fixed "Error Cyclic usage" crash when user had Italian (it), Korean
  2181       (ko), Serbian (sr) or Vietnamese (vi) as user interface language.
  2182     * Fall back to en (instead of crashing) when user uses a language moin
  2183       does not support / does not support any more (like pt,sv,fi,sr).
  2184     * In 1.3.0, people accidentally put iso-8859-1 chars into wiki configs,
  2185       but those where expected to be pure utf-8 and thus it crashed.
  2186       Fixed by using unicode strings (varname = u'whatever'), a matching
  2187       encoding setting (see top of script comment) and, when decoding strings,
  2188       using decode to ASCII with replace mode (this replaces non-ASCII chars,
  2189       but at least it won't crash - and you get a warning to better use
  2190       Unicode strings).
  2191     * Fixed long time broken table formatting. ||<style="see css spec" a||b||
  2192       Now even generates valid HTML! The old markup for align, valign, width,
  2193       bgcolor still works, but synthesizes style attribute data.
  2194     * SystemAdmin macro shows attachments of ALL pages now.
  2195     * Users without write acl rights will be able to see attachments again and
  2196       also have AttachFile action in menu.
  2197     * Fixed wrong match count in search results, find all matches in page 
  2198       titles, show all matches in contents in some rare cases.
  2199     * Run about 200% faster with long running processes (standalone, Twisted), 
  2200       about 20% faster with cgi, by better internal data handling in wikidicts.
  2201     * On SF, the dict files use utf-8 encoding now. We included them also in
  2202       distribution, see contrib/dict/.
  2203     * Fixed permissions to shared template stuff.
  2204     * Speeded up search, fixed wrong match counts.
  2205     * Speeded up internal data handling (wikidicts).
  2206     * Fixed rare unicode error after deleting a page (reported only on SuSE
  2207       Linux 9.0 / Python 2.3.0).
  2208     * Fixed file permissions of files in the data dir.  
  2209     * Fixed some cosmetic problems in migration scripts and use sys.path.insert
  2210       to get latest moin code when executing them.
  2211 
  2212 Other Changes:
  2213 
  2214     * Improved docs, system and help pages.
  2215     * Updated translation files.
  2216 
  2217 Known Bugs:
  2218 
  2219     * Internet Explorer renders our HTML/CSS in a suboptimal way.
  2220       (MoinMoin: href="http://moinmo.in/MoinMoinBugs/InternetExplorer)">MoinMoinBugs/InternetExplorer)
  2221       Workaround: use a non-broken browser like FireFox / Mozilla.
  2222       Fixed in MoinMoin 1.3.2.
  2223     * Passwords using non-ascii do not work.
  2224       (MoinMoin: href="http://moinmo.in/MoinMoinBugs/NonAsciiPasswordsBroken)">MoinMoinBugs/NonAsciiPasswordsBroken)
  2225     * The TOC macro is broken partly.
  2226       (MoinMoinBugs/TableOfContentsBrokenForIncludedPages,
  2227        MoinMoinBugs/TableOfContentsLacksLinks)
  2228     * See also: http://moinmoin.wikiwikiweb.de/MoinMoinBugs
  2229       
  2230 
  2231 Version 1.3.0 (2004-12-06, Revision moin--main--1.3--patch-400)
  2232 
  2233     As you see from the length of the 1.3 changes below, 1.3 is a major(!)
  2234     upgrade. We could have also named it "2.0", but we decided against.
  2235     So take the time for reading the informations thoroughly and do the
  2236     migration exactly as we tell you - this is no 5 minutes upgrade!
  2237 
  2238     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  2239     !!! We heavily changed configuration, data encoding, dir layout:    !!!
  2240     !!!  * the default encoding changed to utf-8.                       !!!
  2241     !!!  * also, we changed the escaping for special chars to %XX%YY in !!!
  2242     !!!    URL and (xxyy) in file system.                               !!!
  2243     !!!  * layout of data dir changed completely                        !!!
  2244     !!! If you upgrade an existing wiki, you must run the migration     !!!
  2245     !!! scripts or you will get data corruption or other problems.      !!!
  2246     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  2247 
  2248     HINT: Upgrading your wiki - critical information
  2249 
  2250       If you are NOT starting from scratch, you MUST convert your existing
  2251       data - see README.migration for details.
  2252 
  2253       If you use ##language: xx comments on your OWN pages, you should also run
  2254       repair_language script. Not needed for help/system pages as we already
  2255       have done that for you.
  2256 
  2257       MoinMoin uses Unicode internally now (UCS-2 with 16 bits or UCS-4 with
  2258       32 bits, depending on your Python installation). The encoding used
  2259       for page files and html output is set by config.charset.
  2260 
  2261       Moin 1.3 uses utf-8 encoding only, there is NO SUPPORT for using a
  2262       charset different from utf-8 with 1.3. If you try, you are on your own.
  2263 
  2264     Directory layout
  2265 
  2266       Directory layout was heavily changed. Each page now is a directory,
  2267       containing page revisions, attachments, cache files and edit-log.
  2268       
  2269       You can delete a page or move a page from one wiki to another
  2270       easily. Look at the wiki/data directory to see.
  2271       
  2272       Example:
  2273         old: data/text/FrontPage
  2274         new: data/pages/FrontPage/revisions/00000042
  2275              data/pages/FrontPage/current (contains: 00000042)
  2276         old: data/backup/FrontPage.xxxxxxxx
  2277         new: data/pages/FrontPage/revisions/00000023
  2278 
  2279       For cleaning up cache files, use MoinMoin/scripts/cachecleaner.py 
  2280       (see comments in script).
  2281 
  2282    Python / Libs
  2283       
  2284       * For using RSS, you need to have PyXML installed:
  2285         Python 2.4*   -> PyXML 0.8.4 (cvs version)
  2286         Python 2.3.x  -> PyXML 0.8.3
  2287         Python 2.2.2+ -> ???
  2288         This will also make "Live Bookmarks" of Mozilla Firefox working.
  2289         New: if you don't have PyXML installed, the RSS icon on RecentChanges
  2290         will not be displayed any more. Python with no PyXML installed
  2291         generates invalid RSS XML.
  2292 
  2293    Page names handling
  2294 
  2295       * Handling of special characters in file names changed from _xx format
  2296         to (xx...) format.
  2297       * In URLs, moin now uses %xx%yy quoting, (because this is supported by 
  2298         browsers), and sub pages use "/" instead of the ugly "_2f".
  2299       * Underscore character "_" is used now as a space character " " both 
  2300         in file names and URLs. " " and "_" will be handled equivalent at most
  2301         places in the future (represented as "_", rendered as " ").
  2302       * To prevent wiki abuse and user typing errors, page names are normalized 
  2303         in URLs, query strings, the "go" box and when renaming pages. This 
  2304         include leading, trailing and multiple slashes and white space. Certain 
  2305         invisible unicode characters are removed from page names.
  2306       * Group page names are restricted even more, any non unicode alpha-numeric
  2307         character is removed. This is done to enable changing acl syntax in 
  2308         the future. The restriction might be loosen on future versions.
  2309       * You can edit config.page_invalid_chars_regex to control which characters
  2310         are allowed in page names (Changing it is not supported).
  2311       * When you enter page name, it is normalized and you are redirected to
  2312         the normalized page, or if nothing left (e.g '/////'), to FrontPage.
  2313       * When renaming a page to a name that can be normalized to an empty string,
  2314         the new page name will be "EmptyName" and the user will not get an
  2315         error message.
  2316        
  2317    Underlay directory
  2318 
  2319      * Pages (especially system and help pages) are now located in an underlay
  2320        directory (data_underlay_dir). You will see the pages there if they are
  2321        NOT covered (overlayed) by a page in the normal pages directory
  2322        (as set using data_dir).
  2323        MAKE SURE THAT data_underlay_dir IS CORRECT OR YOU WILL SEE MANY EMPTY
  2324        PAGES ONLY IN A NEW WIKI.
  2325      * If you edit a page that is shown from underlay directory, it will be
  2326        copied to the normal page directory on save (copy-on-write).
  2327      * You can use one copy of the underlay directory shared by many
  2328        wiki instances. Each wiki will then have only your local, self-made
  2329        wiki pages in its data directory, and only system and help pages in the
  2330        single, shared underlay directory - this simplifies upgrades a lot.
  2331      * It is recommended to keep your underlay system and help pages immutable
  2332        using acl, so you can upgrade your wiki easily. The default help and
  2333        system pages already have those ACLs (using MoinPagesEditorGroup).
  2334      * Do not forget to remove your old help and system pages after migrating
  2335        your wiki. We don't provide a script for that as that would be
  2336        dangerous for edited pages. Just use some file manager (e.g. mc) to
  2337        clean the data/pages/ directory. As soon as you have removed the
  2338        system pages there, you will see the new pages in the underlay dir.
  2339        See the EditedSystemPages page for a list of pages that exist in both
  2340        data and underlay directory (use this page as admin!).
  2341 
  2342        When updating from 1.2 or lower to 1.3 or higher, you will want to
  2343        clean out the copies of the system pages in your {{{wiki/data}}}
  2344        directory. All of these pages will now reside in the underlay
  2345        directory. If you have system pages from 1.2 or lower in your
  2346        wiki/data/ directory, they will overshadow the more up-to-date
  2347        documentation. This can be done using the following manual procedure:
  2348        1. You have just converted from 1.2 or lower to post-1.3.
  2349        2. Go to your wiki's EditedSystemPages.
  2350        3. Find all the pages that are MoinMoin system or help pages. You will
  2351           know if it is one of those pages because it is not your page.
  2352        4. Check if it is okay to delete by either:
  2353           1. Using the this page "info" link and check the Revision History to
  2354              see if it is greater than 1. If so, there are modifications, so do
  2355              not delete the page and evaluate the modifications to see if they
  2356              are necessary.
  2357           2. Using your file browser (Windows Explorer, etc) to go to your
  2358              wiki/data/<<systemPage>>/revisions/ directory and to see if there
  2359              are no modifications. If there are, do not delete the page and
  2360              evaluate the modifications to see if they are necessary.
  2361        5. Delete that wiki/data/<<systemPage>> using your file browser.
  2362 
  2363     Multiple languages
  2364 
  2365       * New file name quoting method allow 50% longer page names in languages
  2366         that use more than one byte per character, like Hebrew, Korean etc.
  2367       * Configuration file uses 'utf-8' encoding now. Certain values that are
  2368         marked with [Unicode] can use any character in your language. Examples 
  2369         are page names in navi_bar, page types regular expressions and site name.
  2370       * For configuration examples adopted to your language, check ConfigMarket 
  2371         in the MoinMoin wiki.
  2372       * The system and help pages that come with moin are now in utf-8.
  2373       * MissingPage system page localized, should display in your language.
  2374       * We did many i18n (translation) updates.
  2375       * CSS file use utf-8 encoding. User css is also expected to be utf-8.
  2376         This is relevant only if you use non-ASCII values in the CSS file.
  2377       * config.upperletters and config.lowerletters were removed.
  2378         We now use a pre-made ucs-2 spanning set and you usually don't have to
  2379         change it. See MoinMoin/util/chartypes.py if you're interested.
  2380       * ACL works with any user name or group name in any language, even names 
  2381         with spaces.
  2382       * Now you can use any charset in config.charset. Note: only utf-8 is 
  2383         a supported configuration!
  2384       * Improved url handling, now creating pages directly from the browser 
  2385         url box with non-ascii names works in most cases, even when 
  2386         config.charset is not utf-8.
  2387       * When using non-utf-8 config.charset, characters in URLs that does
  2388         fit in the charsets are replaced with "?" (instead of crashing).
  2389       * All themes and most macros and actions are Right to Left friendly.
  2390         Full RTL support planned for 1.3 release.
  2391       * If page language is specified with #language processing instruction
  2392         the page is displayed in the correct direction. Pages without
  2393         language are displayed using the wiki default_lang.
  2394 
  2395     Multiple configurations
  2396 
  2397       * You can run multiple wikis from the same wiki directory or server. 
  2398         For example, you can run one Twisted server that serve multiple wikis, 
  2399         instead of running multiple servers. Samples of the new configuration
  2400         are supplied in wiki/config/*.
  2401       * You can't just use your old moin_config.py file. It is now called
  2402         wikiconfig.py and the config variables now have to be in a class
  2403         "Config" and that class must inherit from
  2404         MoinMoin.multiconfig.DefaultConfig - see the provided wikiconfig.py
  2405         sample for details.
  2406         This is very useful, e.g. you could derive a GermanConfig from
  2407         DefaultConfig. After that, you can derive configs for wikiA and wikiB
  2408         from that GermanConfig.
  2409       * farmconfig.py contains a mapping attribute called "wikis" with pairs of
  2410         wikiconfig module name and regular expression. The regular expression
  2411         is matched against the URL of the request and the first matching entry
  2412         determines the config module to be imported by MoinMoin.
  2413       * If you use farmconfig.py's "wikis" mapping, then any wiki has a private
  2414         config module, named after the wiki - e.g. wiki named moinmoin would
  2415         use moinmoin.py.
  2416       * If you only have a single wiki, you do not need farmconfig.py. just make 
  2417         a wikiconfig.py and it will be used no matter what URL is requested. 
  2418       * There is one common global "config" that holds sitewide settings (like
  2419         umask or charset) - you do not need to change settings there.
  2420         This file is located in the MoinMoin code: MoinMoin/config.py.
  2421       
  2422     General configuration
  2423 
  2424       * SecurityPolicy now uses "write" instead of "edit" (so it is may.write
  2425         now). This is to get it in sync with ACLs.
  2426       * SecurityPolicy now automatically can use everything in acl_rights_valid.
  2427       * There is a new config option "config_check_enabled". It will warn about
  2428         any unknown variable name (probably typo) to stderr or error.log. 
  2429         If something doesn't work at all and changing the config does no 
  2430         difference, switch it on and look at the error message. 
  2431       * The sample config file comes with config_check_enabled = 1. If you 
  2432         introduce additional variables yourself, you definitely want to switch 
  2433         that check off or it will fill your log.
  2434       * If you define "page_front_page" variable, this name will show in the 
  2435         navigation bar now, instead of the default "FrontPage".
  2436 
  2437     New search engine
  2438 
  2439      * Full text and title search do support multiple search terms now - 
  2440        see HelpOnSearching for details.
  2441      * Regular expressions are still supported but have to be turned on per
  2442        search term. Search terms in macros using regular expressions will have
  2443        to be fixed.
  2444      * The URL interface of the search engine has also changed. Links that 
  2445        point directly to search actions may be broken.
  2446 
  2447     User names
  2448 
  2449       * User names can not use group names, even if ACLs are not enabled.
  2450         This will prevent error later, if you start to use acl in the future
  2451         (acl is going to be mandatory in 1.5).
  2452       * User names are not restricted any more to only CamelCase. 
  2453       * To prevent imposing as other users, leading, trailing and multiple 
  2454         whitespace in user names is not allowed. Only Unicode alpha numeric 
  2455         characters are allowed, with optional one space character between 
  2456         words.
  2457       * When a user name with a group name or "bad" name is trying to 
  2458         access the wiki, he is redirected to the UserPreferences page and 
  2459         asked to create a new account.
  2460       * When trying to login or create a new account with a bad name, 
  2461         correct error message is displayed in all cases.   
  2462 
  2463     CGI
  2464 
  2465       * You can not use your old moin.cgi file, as we removed cgimain.py 
  2466         (was deprecated since 1.2). Copy the new file from the server dir.     
  2467 
  2468     Moin servers - Twisted and standalone
  2469 
  2470       * Configuration self checking on startup. Will raise an error in case
  2471         of bad configuration or non-accessible directories.
  2472       * Both use shorter and identical configuration options.
  2473       * Server scripts contain detailed comments and examples.
  2474       * Configuration defaults changed to fit most users.
  2475       * There is memory profiler option for debugging, switched off by default.
  2476       * If you perform a standard install, server scripts should run out
  2477         of the box or with minimal change.
  2478 
  2479     Twisted server
  2480 
  2481       * All code moved into the new server package, the server script
  2482         contains only configuration options.
  2483       * Listen to more than one interface with "interfaces" list.
  2484       * Code updated to new Twisted API.
  2485       * Use mointwisted script to start and stop the server, using 
  2486         "mointwisted start" and "mointwisted stop".
  2487       * The Twisted server runs as daemon by default.
  2488       * All moin Twisted files are called now mointwisted instead of 
  2489         moin_twisted.
  2490       * Fixed getting username from Twisted request (http auth)
  2491 
  2492     Standalone server
  2493 
  2494       * Configuration moved from moin_config.py to moin.py.
  2495       * If run as root, you can set both user and group for the server.
  2496       * Can use logfile instead of logging to stderr.
  2497       * Fixed missing unquoting of query string (caused problems in rare cases).
  2498 
  2499     mod_python server
  2500 
  2501      * moin_modpy server files renamed to moinmodpy.
  2502 
  2503     Wiki Markup
  2504 
  2505      * '''strong''', ''em'' and __underline__ have now paragraph scope. You can
  2506        set these attributes on words level. For multiple paragraphs, wrap each 
  2507        with needed markup.
  2508      * If you leave unclosed ''', '' and __  markup, its is closed when the 
  2509        paragraph ends.
  2510 
  2511     User interface
  2512 
  2513      * Due to many changes in CSS files, the wiki may look "broken" until
  2514        your reload once or twice, or empty your browser cache.
  2515      * The "Send mail notification" checkbox is replaced by "Trivial change"
  2516        checkbox. The default behavior did not change - regular edit is not
  2517        a trivial change, and mail will be sent to subscribes. If you check
  2518        trivial change, mail will be sent only to users who selected to 
  2519        get trivial changes in their user preferences.
  2520      * New theme "modern" has been added, and used as default theme. 
  2521      * classic and rightsidebar improved.
  2522      * viewonly theme removed, as any theme can be use now as viewonly
  2523        by using #acl All:read in the wikiconfig.
  2524      * All themes use new navibar, displaying both wiki links, user links
  2525        and the current page.
  2526      * navibar and pagetrail use now shortened page names, so very long
  2527        names does not break the interface visually.
  2528      * All themes have improved search interface at the top of the window.
  2529      * Only avaiable actions are displayed, so most situations when a user
  2530        try to do something he can't do are prevented.
  2531      * When creating a new page, no action is available until the page 
  2532        is created. You can't attach files to non-existing page any more.
  2533      * Non registered users get a "login" link. Registered uses get
  2534        "username" link to their home page, and "user preferences" link.
  2535      * Messages more clear using bold type, designed by css.
  2536      * Few useless messages removed (but there are many more)
  2537      * Default wiki logo uses the wiki name instead of the MoinMoin troll 
  2538        logo.
  2539 
  2540     Other fixes and changes
  2541     
  2542      * Most generated html code is valid "html 4 strict". There are still
  2543        some problems that still have to be fixed, mainly macros, table
  2544        attributes, and inline markup crossing (<a><b></a></b>).
  2545      * WantedPages can include and exclude system pages, which makes it 
  2546        much more useful.
  2547      * Fixed a bug in TitleIndex where not all system pages are excluded.    
  2548      * RenamePage action now renames everything, including backups, page
  2549        history, attachments. It does not change toplevel editlog, though.
  2550        After you rename a page, you are redirected to the new page.
  2551      * Syntax colorization supports more languages (Java, C++, Pascal)
  2552      * Inline: display of attachments was extended. A Parser now knows which
  2553        extensions it can handle.
  2554      * TableOfContents and Include macros now cooperate a bit better. There
  2555        are still problems with multiple Includes of the same page.
  2556      * Excluded actions at bottom of page are not displayed any more.   
  2557      * Editor: removed the columns size setting, just using 100% of browser
  2558        window width (it didn't work because of that anyway). Also removed that
  2559        "reduce editor size" link at top of editor as you would lose your
  2560        changes when using it.
  2561      * Removed the option to choose text smileys instead of images, this made
  2562        more trouble than it was worth. The text version is still given in ALT
  2563        attribute.
  2564      * Moved stuff from contribution/ to MacroMarket page on MoinMoin wiki
  2565      * Some nasty people try to use a running moin as a proxy (at least they
  2566        did on moinmaster.wikiwikiweb.de:8000, maybe due to the magic port
  2567        number). We changed the code to check for that and just return 403
  2568        in that case. Moin can not be used as a proxy anyway.
  2569      * moin.cgi?test was removed in favor of a new buildin test
  2570        action. It works for all deployments, just use ?action=test.
  2571      * Sending mail does use tls if server supports it.
  2572 
  2573     3rd party developer notes
  2574 
  2575      * Themes should be now sub class of MoinMoin.theme.ThemeBase. Sub
  2576        classes will get automatically all new improved user interface
  2577        elements for free.
  2578      * Theme authors should update their theme for 1.3. Some keys removed
  2579        from them dict. See ThemeBase class in MoinMoin/theme/__init__.py. 
  2580      * Actions writers should call request.setContentLangauge with the 
  2581        correct language used by the action. This enable themes and other
  2582        code to use correct direction.
  2583      * The Formatter interface was changed. Formatters and parsers using 
  2584        the formatter interface have to be adjusted.
  2585      * started deprecation of Processors: they are still recognized, but
  2586        implementors should start to rewrite their Processors as Parsers.
  2587        A processor with the same name as a parser in a pre #! section is
  2588        currently preferred. This will change in the next release.
  2589 
  2590     Deprecation notes
  2591 
  2592      * Processors are deprecated, see section above.
  2593 
  2594      * Using the cookie (or the login url with ID) only and not setting (or
  2595        setting and not remembering) your email/password in UserPreferences
  2596        is DEPRECATED. Those quite unsecure methods will likely be dropped
  2597        in next moin version.
  2598 
  2599      * Operating with acl_enabled = 0 is also DEPRECATED. Due to some other
  2600        improvements planned, we will have to operate with ACLs enabled ONLY
  2601        in a future moin version, so this setting will likely be dropped.
  2602        So clean up your user accounts (see moin_usercheck.py) and switch ACLs
  2603        on NOW.
  2604        There are no drawbacks, so you will like it. Having ACLs enabled
  2605        doesn't mean you really have to USE them on wiki pages...
  2606 
  2607      * allow_extended_names = 0 is deprecated (default was/is 1).
  2608        Future versions will be able to use extended names (aka free links) in
  2609        any case and the config setting will be removed.
  2610 
  2611      * allow_subpages = 0 is deprecated (default was/is 1).
  2612        Future versions will be able to use subpages in any case and the config
  2613        setting will be removed.
  2614 
  2615      * attachments = {...} - we would like to remove that setting because of
  2616        several reasons:
  2617        * when not being extremely careful, this can easily lead to security
  2618          problems (like when uploading a .php exploit and then executing it
  2619          by accessing it directly via web server)
  2620        * makes code more complicated - code that we want to change completely
  2621          in next version
  2622        If you need that feature, speak up now and tell us your reasons WHY you
  2623        need it.
  2624 
  2625 
  2626 Version 1.2.4 (2004-10-23, Revision 1.187)
  2627 
  2628 This will probably be the last 1.2.x release as we are soon doing release
  2629 candidates for 1.3 release (with big internal changes) and are expecting
  2630 release 1.3 in december 2004.
  2631 
  2632 Fixes:
  2633     * fixed "None" pagename bug in fullsearch/titlesearch
  2634     * fixed projection CSS usage
  2635     * the compiled page is removed when a page is deleted, so no ghost page
  2636       appears after deletion
  2637     * fixed AbandonedPages day-break problem
  2638     * fixed [[GetVal(WikiDict,key)]]
  2639     * the msg box is now outside content div on PageEditor, too
  2640     * privacy fix for email notifications: you don't see other email addresses
  2641       in To: any more. mail_from is now also used for To: header field, but
  2642       we don't really send email to that address.
  2643     * privacy fix for /MoinEditorBackup pages that were made on previews of
  2644       pages that were not saved in the end
  2645     * fix double content div on PageEditor preview
  2646 
  2647 Other changes:
  2648     * workaround for broken Microsoft Internet Explorer, the page editor now
  2649       stops expanding to the right (e.g. with rightsidebar theme).
  2650       Nevertheless it is a very good idea to use a non-broken and more secure
  2651       browser like Mozilla, Firefox or Opera!
  2652 
  2653     * from MoinMoin.security.antispam import SecurityPolicy in your
  2654       moin_config.py will protect your wiki from at least the known spammers.
  2655       See MoinMoin:AntiSpamGlobalSolution for details.
  2656 
  2657     * xmlrpc plugin for usage logging, currently used for antispam accesses
  2658 
  2659     * (re-)added configurable meta tags:
  2660         * html_head_queries = '''<meta name="robots" content="noindex,nofollow">\n'''
  2661         * html_head_posts   = '''<meta name="robots" content="noindex,nofollow">\n'''
  2662         * html_head_index   = '''<meta name="robots" content="index,follow">\n'''
  2663         * html_head_normal  = '''<meta name="robots" content="index,nofollow">\n'''
  2664 
  2665     * i18n updates/fixes
  2666 
  2667     * New UserPreferences switch:
  2668       you may subscribe to trivial changes (when you want to be notified about ALL
  2669       changes to pages, even if the author deselected to send notifications).
  2670 
  2671     * New AttachList and AttachInfo macros - thanks to Nigel Metheringham and
  2672       Jacob Cohen.
  2673 
  2674 Version 1.2.3 (2004-07-21, Revision 1.186)
  2675 
  2676 Fixes:
  2677     * fixed NameError "UnpicklingError" in user.py
  2678     * fixed version number in moin.spec
  2679     * reverts done by bots or leechers
  2680       There was a bad, old bug that triggered if you did not use ACLs. In that
  2681       case, moin used some simple (but wrong and incomplete) function to
  2682       determine what a user (or bot) may do or may not do. The function is now
  2683       fixed to allow only read and write to anon users, and only delete and
  2684       revert to known users additionally - and disallow everything else.
  2685     * avoid creation of unneccessary pages/* directories
  2686     * removed double content divs in general info and history info pages
  2687     * fixed wiki xmlrpc getPageHTML
  2688     * fixed rightsidebar logout URL, also fixed top banner to link to FrontPage
  2689     * use config.page_front_page and .page_title_index for robots meta tag
  2690       (whether it uses index,follow or index,nofollow), not hardcoded english
  2691       page names
  2692     * ACL security fix for PageEditor, thanks to Dr. Pleger for reporting
  2693     * default options for new users are same as for anon users
  2694 
  2695 Version 1.2.2 (2004-06-06, Revision 1.185)
  2696 
  2697 Fixes:
  2698     * python related:
  2699      * own copy of difflib removed
  2700        Until moin 1.2.1 we had our own copy of python 2.2.3's difflib coming
  2701        with moin. This was to work around some problems with broken older 2.2
  2702        python installations. We removed this now because if you have py 2.3,
  2703        there is even a better difflib coming with python (and that fixes an
  2704        extremely slow diff calculation happening in some rare cases).
  2705        So the good news is that when you run python 2.3, you don't need to do
  2706        anything and it will run great. If you run python 2.2.3, it will mostly
  2707        work good and you also don't need to do anything. The bad news is that
  2708        if you run an old and broken 2.2 installation (2.2.1, maybe 2.2.2) you
  2709        will have to fix it on your own (just copy difflib.py from python 2.2.3
  2710        over to your python 2.2.x installation).
  2711        But better upgrade to python 2.3 (for debian woody, there's a backport),
  2712        as 2.3 generally runs better and faster than 2.2.
  2713      * scripts changed to use #!/usr/bin/env python (not /usr/bin/python2.2)
  2714 
  2715     * user accounts and ACLs:
  2716      * we now require the user to specify a password for a new account (you
  2717        were not able to login without a password anyway)
  2718      * it is not allowed any more to create user accounts with user names
  2719        matching config.page_group_regex - please check manually that you do
  2720        not already have such users existing (like a user named "AdminGroup"):
  2721        cd data/user ; grep name=.*Group *  # there should be no output!
  2722      * subscription email sending now honours ACLs correctly
  2723 
  2724     * markup / rendering / user interface fixes:
  2725      * fixed merging multiple lines indented by the same amount of blanks
  2726      * ## comments don't break tables in two parts
  2727      * added a "remove bookmark" link to RecentChanges
  2728      * fixed action=titleindex (added \n after each entry)
  2729 
  2730     * RSS fixes:
  2731      * non-ASCII characters should work now
  2732      * RSS feed (Recentchanges?action=rss_rc) gives UTC timestamps now
  2733      * removed attribute breaking RSS feed on RecentChanges
  2734 
  2735     * better email generation:
  2736      * if you use python >=2.2.2, we add a Message-ID header to emails
  2737      * if you use python 2.2.1, there is no email.Header. Instead of crashing
  2738        (like previous moin 1.2.x releases), we just use the subject "as is" in
  2739        that case. If it is not ASCII, this is not standards compliant.
  2740      * If you have >=2.2.2 it will use email.Header to make standards compliant
  2741        subject lines.
  2742      * use config.mail_from as sender address when sending "lost my password"
  2743        emails
  2744 
  2745     * file attachments:
  2746      * fixed for standalone server
  2747      * attachment URLs (when handled by moin) don't include server name
  2748      * fixed some wrong &amp;amp; in html src
  2749     
  2750     * better themeability:
  2751      * some entries in dict "d" where only present in header theme calls, some
  2752        only in footer theme calls. Now almost all is present in both calls.
  2753      * added some missing "content" divs so sidebar themes look better
  2754 
  2755     * fixed some crashes producing backtraces:
  2756      * no IOError when diffing against deleted page
  2757      * no backtrace in xml footnote generation
  2758      * no SystemInfo crash when no editlog exists in new wikis
  2759      * xmlrpc.getRecentChanges fixed
  2760 
  2761     * MoinMoin.util.filesys.rename is now a wrapper around os.rename that
  2762       fixes os.rename on broken win32 api semantics
  2763 
  2764 Other Changes:
  2765     * saving traffic and load by improved robot meta tag generation:
  2766      * "noindex,nofollow" on queries and POSTs
  2767      * "index,follow" on FrontPage and TitleIndex (give robots a chance ;))
  2768      * "index,nofollow" on all other pages (hopefully saving lots of senseless
  2769        requests for page?action=...) 
  2770      * removed config.html_head_queries (was used for same stuff)
  2771     * added russian i18n (utf-8)
  2772     * misc. other translation updates / fixes
  2773     * added rightsidebar theme
  2774     * TitleIndex now folds case, so "APage" and "anotherPage" are both under
  2775       letter "A".
  2776     * added macro/PageHits.py - it calculates the hits each page gets since
  2777       beginning of logging
  2778 
  2779 
  2780     * Full text and title search do now support multiple search terms - 
  2781       see HelpOnSearching for details
  2782  
  2783     * The Formatter interface was changed. Formatter and parser using 
  2784       the formatter interface have to be adjusted.
  2785 
  2786 Version 1.2.1 (2004-03-08, Revision 1.184)
  2787 
  2788 Fixes:
  2789     * minimum requirement to run moin 1.2/1.2.1 is python 2.2.2
  2790      * not: 2.2(.0), as this does not have True/False
  2791      * not: 2.2.1, as this does not have email.Header. You maybe can work
  2792        around that one by:
  2793       * getting the python 2.2.x (x>=2) /usr/lib/python2.2/email directory
  2794       * putting it into directory 'x' (whereever you like)
  2795       * doing a sys.path[0:0] = ['x'] in moin.cgi [or other appropriate place]
  2796       No guarantee, this is untested.
  2797     * Twisted: the http headers missed the charset data, fixed
  2798     * mod_python: fixes for mod_python 2.7
  2799     * wiki/data/plugin/__init__.py added - fixes not working plugin modules
  2800     * plugin processors work now, too
  2801     * fixed displaying non-existent translations of SiteNavigation in footer
  2802     * fixed zh-tw iso name (wrong zh_tw -> correct zh-tw)
  2803     * fixed reversed diffs in RecentChanges RSS
  2804     * fixed "last change" info in footer (wasn't updated)
  2805     * fixed event.log missing pagename (and other) information
  2806     * fixed horizontal line thickness >1
  2807     * fixed setup.py running from CVS workdir
  2808     * fixed crash when doing action=info on first revision of a page
  2809     * fixed hostname truncation in footer
  2810     * minor css fixes
  2811     * fixed clear msg links (they missed quoting, leading to strange page
  2812       names when you click on some of them)
  2813     * fixed python colorizer processor
  2814     * fixed quoting of stats cache filenames
  2815     * catched "bad marshal data" error when switching python versions
  2816 
  2817 Other changes:
  2818     * updated danish (da) i18n
  2819     * updated japanese (ja) i18n
  2820     * added serbian (sr) i18n
  2821     * added chinese (zh) i18n
  2822     * added a simple "viewonly" theme based on classic theme - you can use
  2823       this as default theme, so anonymous users won't get the usual wiki stuff,
  2824       but a far simpler (and less powerful) user interface.
  2825       It also displays the navibar at the left side.
  2826     * added moin.spec for building RPMs
  2827     * included MoinMoin/i18n/* into distribution archive (nice for translators)
  2828     * included some stuff under MoinMoin/scripts - xmlrpc-tools and account
  2829       checking stuff. removed some version control clutter from the dist
  2830       archive, too.
  2831 
  2832     * code colorization was refactored and some new languages (Java, C++,
  2833       Pascal) where added.
  2834     * inline: display of attachments was extended. A Parser now knows which
  2835       extensions it can handle.
  2836 
  2837 Version 1.2 (2004-02-20, Revision 1.183)
  2838 
  2839 New features:
  2840     * MoinMoin now requires Python >=2.2.2., we recommend to use Python >=2.3.2
  2841       (with 2.3.x, MoinMoin runs about 20-30% faster).
  2842     * by refactoring request processing, we made it possible to run moin under
  2843       persistent environments:
  2844         * twisted-web (http://twistedmatrix.com)
  2845         * httpdmain.py (use moin.py for starting this mini server)
  2846         * mod_python
  2847         * FastCGI
  2848       Of course, CGI is still possible.
  2849     * wiki pages will be compiled to bytecode now (by default), so no need for
  2850       slow parsing/formatting on every view ("WASP", see caching_formats)
  2851     * when using a persistent environment (like twisted) and WASP, you get up
  2852       to 20x speed - compared to CGI and moin 1.1
  2853     * added support for diffs between arbitrary revisions.
  2854     * removed requirement of the external diff utility
  2855     * config.auth_http_enabled (defaults to 0) - use this to enable moin
  2856       getting your authenticated user name from apache (http basic auth,
  2857       htpasswd) - if you enable this, your basic auth username has to be the
  2858       same as your wiki username.
  2859       Should work with CGI, FCGI and maybe even with mod_python.
  2860       Does not change behaviour of moin under twisted or standalone server.
  2861     * config.tz_offset = 0.0 sets a default timezone offset (in hours
  2862       from UTC)
  2863     * config.cookie_lifetime (int, in hours, default 12) sets the lifetime of
  2864       the MOIN_ID cookie:
  2865         == 0  --> cookie will live forever (no matter what user has configured!)
  2866         > 0   --> cookie will live for n hours (or forever when "remember_me")
  2867         < 0   --> cookie will live for -n hours (forced, ignore "remember_me"!)
  2868     * added themeing and some themes (if you improve the existing themes or
  2869       make nice new ones, please contribute your stuff!). The default theme is
  2870       set by config.theme_default (and defaults to 'classic').
  2871     * now supporting plugin directory for parsers, processors, themes, xmlrpc.
  2872     * action=info now defaults to showing page revision history again
  2873     * all actions accessing the logfile (as RecentChanges or history) are now
  2874       much faster
  2875     * #refresh processing instruction, config.refresh
  2876         * config.refresh = (minimum_delay, target_allowed)
  2877             * minimum delay is the minimum waiting time (in seconds) allowed
  2878             * target_allowed is either 'internal' or 'external', depending on
  2879               whether you want to allow only internal redirects or also
  2880               external ones. For internal redirects, just use the Wiki pagename,
  2881               for external, use http://... url.
  2882         * #refresh 3                    == refresh this page every 3 seconds
  2883         * #refresh 5 FrontPage          == internal redirect to FrontPage in 5s
  2884         * #refresh 5 http://google.com/ == redirect to google in 5s
  2885       Use very carefully! Allowing a low minimum_delay and putting a #refresh
  2886       on RecentChanges might slow down your wiki significantly, when some
  2887       people just let their browser refresh and refresh again. Also, it does
  2888       cause quite some traffic long-term. So better do not use this without
  2889       good reason! Default is None (switched off).
  2890     * hide most UserPreferences options before user has logged in, less
  2891       confusing for new users
  2892     * "config.page_dict_regex" defines what pages are dictionary definitions
  2893       Currently dictionaries are used for UserHomePage/MyDict where you can
  2894       define key:: value pairs that get processed like @DATE@ expansion when
  2895       saving a page. The 2 "@" will be added to your keys automatically.
  2896       Please do not use @xxx@ strings on the right side (value), results may
  2897       vary if you do.
  2898       You can also access wiki dictionaries by using the internal macro
  2899       [[GetVal(page,key)]]" - that will go to page "page" and return the
  2900       value (right side) corresponding to "key".
  2901       Implementation note: groups are a subset of the dictionary functionality.
  2902     * standalone server should work now (see server/moin.py), so you don't
  2903       need to setup apache or twisted for a local personal wiki, you only need
  2904       python and moin for that now, no additional stuff any more!
  2905     * if you run your wiki with charset = "utf-8" (the default is still
  2906       iso8859-1), you might want to have a look at contributions/utf8-pages/
  2907       to see if there are already translated system pages for your language.
  2908 
  2909 Fixes:
  2910     * new importPlugin routine (the old one didn't work correctly)
  2911     * removed 0xA0 characters breaking utf-8
  2912     * system page recognition now uses wiki groups (see AllSystemPagesGroup),
  2913       fixing the long-time broken system page exclusion on TitleIndex.
  2914     * mostly HTML 4.01 Strict compliant HTML
  2915     * design is done by CSS now, HTML is semantic markup only 
  2916     * removed target attribute from links, also [^NewWindow] markup - this
  2917       is a HTML 3.2 feature and not valid in HTML 4.01
  2918     * updated TWikiDrawPlugin to 20021003 version, with further modifications
  2919       including source. It can draw imagemaps now and saves PNG. On display a
  2920       GIF will be searched if no PNG is found. We recommend changing all GIFs
  2921       to indexed PNGs cause this fallback might disappear in later versions.
  2922 
  2923       Sample code using bash and ImageMagick (be sure you know what you do):
  2924       for draw in `find /path/to/wiki/data -name \*.draw`; do
  2925         file=`dirname $draw`/`basename $draw .draw`
  2926         if [ -e "${file}.gif" ]; then
  2927           echo "Converting ${file}.gif to ${file}.png"
  2928           convert "${file}.gif" "${file}.png"
  2929         fi
  2930       done
  2931 
  2932     * fixed email headers and encoding
  2933     * Changed moin-usercheck to adhere to scripting standards; no
  2934       proprietary config changes needed any more (added --config);
  2935       --wikinames is now part of the usage message.
  2936     * config.umask now defaults to 0770 - if you give world r/w access, ACLs
  2937       could be rather pointless...
  2938 
  2939 Removed config variables:
  2940     * external_diff (not needed any more, we have internal diff now)
  2941     * shared_metadb (wasn't implemented for long - we will re-add it, when it is)
  2942     * title1/2 (please use page_header1/2)
  2943     * page_icons_up
  2944 
  2945 Changed config variables:
  2946     * changed_time_fmt (removed some html and brackets around time from default)
  2947     * html_head (default is empty string now)
  2948     * page_footer1/2 (default is empty string now)
  2949     * page_icons (is now a list of icon names, not html any more)
  2950     * umask (default is 0770 now, not world r/w any more == more secure)
  2951 
  2952 New config variables (see MoinMaster:HelpOnConfiguration):
  2953     * cookie_lifetime
  2954     * mail_login
  2955     * page_credits
  2956     * page_dict_regex
  2957     * page_group_regex
  2958     * page_header1/2
  2959     * page_iconbar 
  2960     * page_icons_table
  2961     * page_license_enabled
  2962     * page_license_page
  2963     * theme_default
  2964     * theme_force
  2965     * tz_offset 
  2966 
  2967 Other:
  2968     * lots of internal code refactoring and optimization
  2969     * began moving src code documentation to epydoc, see "make epydoc"
  2970     * the URL for the RecentChanges RSS feed changed. It now only works with
  2971       ...?action=rss_rc.
  2972 
  2973 Known problems:
  2974     * theme support is neither complete (although covering most important
  2975       stuff) nor perfect - work on that will continue...
  2976     * we removed some html from system messages (the boxes at top of page you
  2977       get after some actions), so it currently looks less nice than before.
  2978     * html is not completely validating and it is not xhtml - this will be
  2979       fixed as soon as we have the infrastructure for that (other parser, DOM)
  2980     * problems with rtl (right-to-left) languages, will be fixed in 1.3
  2981     * if you change moin_config or switch themes, moin will still use already
  2982       cached page content. For the config this can be fixed by touching
  2983       MoinMoin/version.py (or simply deleting everything in
  2984       data/cache/Page.py). If you get more annoyed by this than pleased by
  2985       caching speedup, you can also switch off caching (see docs on
  2986       caching_formats).
  2987 
  2988 Themeing and HTML/CSS cleanup:
  2989     * Browsers with completely broken CSS support (like e.g. Netscape 4.x) are
  2990       no longer supported. If you still need to support them, do not upgrade to
  2991       moin 1.2. If you still use these browsers, we recommend that you upgrade
  2992       your browser first (Mozilla 1.5 has nice and standards compliant HTML and
  2993       CSS support and is available as Free Software for Windows, Linux and Mac).
  2994     * If you changed any html in code or by config you will have to check if it
  2995       still works. For the usual stuff, look into `MoinMoin/theme/classic.py`
  2996       and `classic/css/screen.css`. For config defaults of the html fragments,
  2997       read `MoinMoin/config.py`. If you want to modify a theme, don't simply
  2998       change classic, but copy or subclass it under a new theme name.
  2999     * because of the new theme support the layout of the `htdocs` directory
  3000       changed:
  3001       * Instead of using icons under `img/` and css under `css/`, there will
  3002         be an additional `themename/` directory in between, e.g. `classic/img/`
  3003         and `classic/css/`. If you added own icons, you may have to copy them
  3004         to the themes directory.
  3005       * The filename of the CSS file has changed to the media type, so the
  3006         normal one used for screen output has changed name from `moinmoin.css`
  3007         to `screen.css`. There also were quite some changes and enhancements to
  3008         the CSS files, so better use the new ones.
  3009     * config.css_url was removed
  3010 
  3011 Plugins:
  3012   * we use a new plugin loader that requires a correct `__init__.py` file in
  3013     the plugin directories. See the directory `wiki/data/plugin/` in the
  3014     distribution archive and just copy it over to your wiki's plugin directory.
  3015 
  3016 
  3017 Version 1.1 (2003-11-29, Revision 1.178)
  3018 
  3019 Version 1.1 requires Python 2.0 or higher, we recommend to use Python 2.2
  3020 (version 2.2.2 if that is available on your host) or even better >= 2.3.2
  3021 (with 2.3.x, MoinMoin runs about 20-30% faster).
  3022 
  3023 New features:
  3024   Configuration:
  3025     * config.default_lang lets you set a default language for users not
  3026       having specified language in their browser or UserPreferences
  3027     * "config.page_category_regex" defines what pages are categories
  3028     * replaced `config.page_template_ending` by a more flexible setting
  3029       named `config.page_template_regex`
  3030     * the same with config.page_form_regex (was: page_form_ending)
  3031     * "config.page_group_regex" defines what pages are group definitions
  3032       Currently groups are used for "user groups" (see ACLs) and "page
  3033       groups" (see AllSystemPagesGroup).
  3034     * robot exclusion from all pages except the standard view action,
  3035       via the config.ua_spiders regex (reduces server load)
  3036     * "maxdepth" argument for the TableOfContents macro
  3037     * config.title1, config.title2, config.page_footer1,
  3038       config.page_footer2 can now be callables and will be called with
  3039       the "request" object as a single argument (note that you should
  3040       accept any keyword arguments in order to be compatible to future
  3041       changes)
  3042     * "config.html_pagetitle" allows you to set a specific HTML page
  3043       title (if not set, it defaults to "config.sitename")
  3044     * navi_bar / quicklinks can now contain free-form links, i.e.
  3045       entries of the form "[url linktext]" just like in wiki pages
  3046     * if a quick link starts with '^', it opens in a new window; help
  3047       now opens in a new window also
  3048     * `config.smileys` for user-defined smileys (default: `{}`) - a dict
  3049       with the markup as the key and a tuple of width, height, border, image
  3050       name as the value).
  3051     * `config.hosts_deny` to forbid access based on IP address
  3052     * `config.mail_login` can be set to username and password separated by
  3053       a space, e.g. "username userpass", if you need to use SMTP AUTH
  3054     * `config.edit_locking` can be set to None (old behaviour, no
  3055       locking), 'warn <timeout mins>' (warn about concurrent edits, but
  3056       do not enforce anything), or 'lock <timeout mins>' (strict locking)
  3057     * optionally showing a license text on editor page, use:
  3058       config.page_license_enabled = 1
  3059       Optionally use these to customize what is shown there:
  3060       config.page_license_text = "... your text ..."
  3061       config.page_license_page = "MyLicensePage"
  3062       See the default values in MoinMoin/config.py for details and
  3063       override them in moin_config.py, if needed.
  3064     * `config.shared_intermap` can be a list of filenames (instead of a
  3065       single string)
  3066     * If you have added your own `SecurityPolicy`, the class interface for
  3067       that has changed (see `security.py`).
  3068 
  3069   Authenticaton / Authorization:
  3070     * added ACL support, written by Gustavo Niemeyer of Conectiva and
  3071       Thomas Waldmann. See HelpOnAccessControlLists for more infos.
  3072       You should use MoinMoin/scripts/moin_usercheck.py before activating
  3073       ACLs or some users with bad or duplicate accounts might get into
  3074       trouble.
  3075     * A user account can be disabled using moin_usercheck.py or
  3076       UserPreferences page. Disabling, but keeping it is good for edit
  3077       history.
  3078     * changed security default: deletion only available to known users
  3079     * support for Basic authentication (Apache style: AUTH_TYPE="Basic",
  3080       REMOTE_USER="WikiUserName"). If authentication is there, user
  3081       will be in ACL class "Trusted".
  3082     * support for username / password login
  3083       The username / password login will ONLY work, if you define a
  3084       password. With an empty password, username / password login is not
  3085       allowed due to security reasons. Passwords are stored encrypted
  3086       (format similar to Apache SHA) and can also be entered in the
  3087       UserPreferences form in this format. When requesting login
  3088       information by email, the password is also sent in this encrypted
  3089       format (use copy&paste to fill it in the form).
  3090       ...?action=userform?uid=<userid> is still possible, so if you have
  3091       bookmarks, they will still work). The input field for the ID was
  3092       dropped.
  3093       NOTE: using the userid for login purposes is DEPRECATED and might
  3094             be removed for better security soon.
  3095     * after logging in, you will get a cookie valid until midnight.
  3096       The next day, the cookie will expire and you will have to login
  3097       again. If you don't want this, you can check the "remember me
  3098       forever" option in UserPreferences.
  3099     * if the page file is read-only, you get a message (i.e. you can now
  3100       protect pages against changes if you're the wiki admin).
  3101       Note: you can do that easier using ACLs.
  3102 
  3103   Markup / Macros / Actions:
  3104     * RandomQuote macro (and even parses Wiki markup now)
  3105     * `[[Navigation]]` macro for slides and subpage navigation
  3106     * [[ShowSmileys]] displays ALL smileys, including user-defined ones
  3107     * the Include macro has new parameters (from, to, sort, items) and
  3108       is able to include more than one page (via a regex pattern)
  3109     * `MailTo` macro for adding spam-safe email links to a page
  3110     * if a fancy link starts with '^' (i.e. if it has the form
  3111       "[^http:... ...]"), it's opened in a new window
  3112      * because of that, the NewWindow macro was removed from contrib
  3113     * "#pragma section-numbers 2" only displays section numbers for
  3114       headings of level 2 and up (similarly for 3 to 6)
  3115     * ../SubPageOfParent links
  3116 
  3117   User interface:
  3118     * new fancy diffs
  3119     * Page creation shows LikePages that already exist
  3120     * editor shows the current size of the page
  3121     * editor returns to including page when editing an included page
  3122     * Visual indication we're on the editor page (new CSS style)
  3123     * selection to add categories to a page in the editor (use preview
  3124       button to add more than one category)
  3125     * if user has a homepage, a backup of save/preview text is saved as
  3126       a subpage UsersHomePage/MoinEditorBackup
  3127     * added "revert" link to PageInfo view (which makes DeletePage more
  3128       safe in public wikis, since you can easily revive deleted pages
  3129       via revert)
  3130     * Selection for logged in users (i.e. no bots) to extend the listing
  3131       of recent changes beyond the default limits
  3132     * Activated display of context for backlinks search
  3133     * Subscriber list shown on page info
  3134     * LikePages shows similar pages (using difflib.get_close_matches)
  3135     * last edit action is stored into "last-edited" file, and
  3136       displayed in the page footer
  3137     * reciprocal footnote linking (definition refers back to reference)
  3138     * "Ex-/Include system pages" link for title index
  3139       Note: system/help pages algorithm is still mostly broken.
  3140     * list items set apart by empty lines are now also set apart
  3141       visually (by adding the CSS class "gap" to <li>)
  3142     * "save" check for security.Permissions
  3143     * Added Spanish, Croatian and Danish system texts
  3144     * Added flag icons for the languages supported in "i18n"
  3145     * updated help and system pages, more translations, see also
  3146       AllSystemPagesGroup
  3147     * there was quite some work done on wiki xmlrpc v1 and v2 - it
  3148       basically works now.
  3149 
  3150   Tools and other changes:
  3151     * moin-dump: New option "--page"
  3152     * there are some scripts MoinMoin/scripts/* using wiki xmlrpc for
  3153       backup and wiki page copying applications
  3154     * Updated the XSLT parser to work with 4Suite 1.0a1
  3155     * more infos in cgi tracebacks
  3156     * UPDATE.html is a HTML version of MoinMaster:HelpOnUpdating
  3157 
  3158 Unfinished or experimental features:
  3159     * user defined forms
  3160     * XML export of all data in the wiki
  3161     * RST parser (you need to install docutils to use this)
  3162     * SystemAdmin macro
  3163 
  3164 Privacy fixes:
  3165     * do not use / display user's email address in public places
  3166 
  3167 SECURITY FIXES:
  3168     * Removed two cross-site scripting vulnerabilities reported by "office"
  3169 
  3170 Bugfixes:
  3171     * Bugfix for PageList when no arguments are given
  3172     * Disallow full-text searches with too short search terms
  3173     * [ 566094 ] TitleIndex now supports grouping by Hangul Syllables
  3174      * fix for multibyte first char in TitleIndex
  3175     * Footnotes were not HTML escaped
  3176     * Numbered code displays are now in a table so that you can cut the
  3177       code w/o the numbers
  3178     * Bugfix for wrong mail notifications
  3179     * Create unique anchors for repeated titles
  3180     * [ 522246 ] Transparently recode localized messages
  3181     * [ 685003 ] Using "preview" button when editing can lose data
  3182     * use gmtime() for time handling
  3183     * fixed negative gmtime() arguments
  3184     * [[Include]] accepts relative page names
  3185     * fixed ||NotInterWiki:||...||
  3186 
  3187 -----------------------------------------------------------------------------
  3188 Version 1.0 (2002-05-10, Revision 1.159)
  3189 
  3190 THIS IS THE LAST RELEASE WITH PYTHON 1.5.2 SUPPORT! If severe bugs
  3191 should occur, a maintenance release will fix them.
  3192 
  3193 Some optional features (like statistics) already require Python 2.0.
  3194 
  3195 New features:
  3196     * security fix: "allow_xslt" has to be set to 1 in order to enable
  3197       XSLT processing; note that this defaults to 0 because XSLT is able
  3198       to insert arbitrary HTML into a wiki
  3199     * "action=content" for transclusion into static web pages; emits the
  3200       pure page content, without any <html>, <head>, or <body> tags
  3201     * "?action=links&mimetype=text/plain" works like MeatBall:LinkDatabase
  3202     * "Preferred language" and "Quick links" user settings
  3203     * Added "processor" concept, processors work on the data in "code
  3204       displays" and are called by a bangpath in the first line of data
  3205     * Processors: Colorize, CSV (see HelpOnProcessors)
  3206     * New icons: "{OK}", "(./)", "{X}", "{i}", "{1}", "{2}" and "{}"
  3207       (see HelpOnSmileys)
  3208     * FullSearch now displays context information for search hits
  3209     * DeletePage offers a textentry field for an optional comment
  3210     * Email notifications are sent in the user's language, if known from
  3211       the preferences
  3212     * @PAGE@ is substituted by the name of the current page (useful
  3213       for template pages)
  3214 
  3215 Unfinished features:
  3216     * user defined forms
  3217     * XML export of all data in the wiki
  3218     * RST parser (you need to install docutils to use this)
  3219     * XMLRPC interface
  3220 
  3221 Bugfixes:
  3222     * Syntax warning with Python 2.2 fixed
  3223     * Macro-generated pagelinks are no longer added to the list of links
  3224     * error codes returned by "diff" are reported
  3225     * fix for attachments on pages with non-USASCII names
  3226     * correct handling of spaces in attachment filenames and URLs
  3227 
  3228 -----------------------------------------------------------------------------
  3229 Version 0.11 (2002-03-11, Revision 1.151)
  3230 
  3231 Most important new features: file attachments, definition list markup
  3232 (glossaries), change notification via email, variable substitution when
  3233 saving pages, edit preview, and improved documentation.
  3234 
  3235 Note that the RSS features require a recent PyXML (CVS or 0.7) due to
  3236 bugs in the namespace handling of xml.sax.saxutils in earlier versions.
  3237 This is (hopefully) automatically detected on every installation.
  3238 
  3239 Statistical features are NOT designed to work with Python 1.5.2 and
  3240 require Python 2.0 or higher. Overall, MoinMoin 0.11 is not explicitely
  3241 tested for 1.5.2 compatibility.
  3242 
  3243 New features:
  3244     * XML formatting now (most often) produces well-formed, and, depending
  3245       on proper layout of the wiki page, valid StyleBook XML
  3246     * Headers are now automatically numbered, unless you set the config
  3247       item 'show_section_numbers' to 0
  3248     * "#pragma section-numbers off" (or "0") switches that off explicitely,
  3249       and "on" or "1" enables numbering 
  3250     * Added a "contributions" directory for 3rd party extensions
  3251     * AttachFile action, contributed by Ken Sugino; note that you have
  3252       to enable this action because of the possibility of DoS attacks
  3253       (malicious uploads), by adding this to your moin_config:
  3254             allowed_actions = ['AttachFile']
  3255     * "attachment:" URL scheme allows access to attachments, to get files
  3256        from other pages use "attachment:WikiName/filename.ext".
  3257     * New macros: Date(unixtimestamp) and DateTime(unixtimestamp) to
  3258       display a timestamp according to system/user settings
  3259     * Variable substitution when a page is saved, note that saving
  3260       template pages does NOT expand variables. Supported are:
  3261         @DATE@      Current date in the system's format
  3262         @TIME@      Current date and time in the user's format
  3263         @USERNAME@  Just the user's name (or his domain/IP)
  3264         @USER@      Signature "-- loginname"
  3265         @SIG@       Dated Signature "-- loginname date time"
  3266         @MAILTO@    A fancy mailto: link with the user's data  
  3267     * Copied some new emoticons from PikiePikie
  3268         || {{{ :-? }}} || :-? || tongue.gif ||
  3269         || {{{ :\  }}} || :\  || ohwell.gif ||
  3270         || {{{ >:> }}} || >:> || devil.gif  ||
  3271         || {{{ %)  }}} || %)  || eyes.gif   ||
  3272         || {{{ @)  }}} || @)  || eek.gif    ||
  3273         || {{{ |)  }}} || |)  || tired.gif  ||
  3274         || {{{ ;)) }}} || ;)) || lol.gif    ||
  3275     * AbandonedPages macro
  3276     * Added definition list markup: {{{<whitespace>term:: definition}}}
  3277     * Added email notification features contributed by Daniel Sa�    * SystemInfo: show "Entries in edit log"
  3278     * Added "RSS" icon to RecentChanges macro and code to generate a
  3279       RecentChanges RSS channel, see
  3280           http://www.usemod.com/cgi-bin/mb.pl?UnifiedRecentChanges
  3281       for details
  3282     * Added config.sitename and config.interwikiname parameter
  3283     * Better WikiFarm support:
  3284       * <datadir>/plugin/macro and <datadir>/plugin/action can be used
  3285         to store macros and actions local to a specific wiki instance
  3286       * config.shared_intermap can contain a pathname to a shared
  3287         "intermap.txt" file (i.e. one stored outside the datadir)
  3288     * added `backtick` shortcut for {{{inline literal}}} (has to be
  3289       enabled by "backtick_meta=1" in the config file); note that ``
  3290       is then a shorter replacement for '''''' escaping
  3291     * added inline search fields (at the bottom of each page)
  3292     * Added preview to the editor, including spell checking
  3293     * New languages: Chinese (Changzhe Han) and Portuguese (Jorge
  3294       Godoy), updated French (Lucas Bruand), added Korean (Hye-Shik
  3295       Chang) and Italian (Lele Gaifax)
  3296     * New SystemAdmin macro
  3297     * `[[Anchor(anchorname)]]` macro to insert anchors into a page,
  3298       and [#anchorname Anchor Links].
  3299     * User option to open editor view via a double-click
  3300     * Added commentary field to editor, recent changes and page info
  3301     * Page trails (user option)
  3302     * UserPreferences: checkboxes for double-click edit, page trail,
  3303       fancy links, emoticons, jump to last page visited, and some
  3304       other yes/no options
  3305     * "config.nonexist_qm" is now the default for a user setting
  3306     * `[[GetText(text)]]` macro loads I18N texts (mainly intended
  3307       for use on Help pages)
  3308     * table attributes via "||<attrlist> ... ||", more details on
  3309       http://purl.net/wiki/moin/HelpOnTables
  3310     * PythonFaq interwiki tag and support for $PAGE placeholder
  3311     * event logging, as the basis for future statistics
  3312     * "moin-dump" command line tool to create a static copy of
  3313       the wiki content
  3314     * "config.external_diff" allows to set an exact path to the
  3315       command, or change the name to for example "gdiff" if GNU
  3316       diff is not a native command in your UNIX flavour
  3317     * `[[PageSize]]` macro
  3318     * the interwiki name "Self" now always points to the own wiki
  3319     * config.title1 and config.title2 are inserted into the output
  3320       right before and after the system title html code (title1
  3321       is right after the <body> tag and normally undefined, title2
  3322       defaults to the "<hr>" above the page contents)
  3323     * Additional link on diff pages to ignore whitespace changes
  3324     * Subpages (config.allow_subpages, config.page_icons_up)
  3325     * super^script^, sub,,script,, and __underline__ markup
  3326     * `[[FootNote]]` macro
  3327     * many other new config options, see HelpOnConfiguration for
  3328       a complete list
  3329     * [[StatsChart(type)]] shows statistical charts (currently
  3330       defined types: hitcounts, pagesize, useragents)
  3331     * 'inline:' scheme works like 'attachment:', but tries to
  3332       inline the content of the attachment into the page;
  3333       currently knows about "*.py" sources and colorizes them
  3334     * support for Java applet "TWikiDrawPlugin" via
  3335       drawing:<drawingname> URL scheme (you need to activate
  3336       the AttachFile action if you want drawings)
  3337     * numeric entities (&#nnnnn;) are now optionally NOT escaped,
  3338       which allows you to insert more characters into a Latin-1
  3339       page, especially the Euro symbol
  3340     * navi_bar is now a list of page names which should be linked
  3341       on every page
  3342     * test.cgi is now rolled into moin.cgi, and can be called
  3343       by adding "?test" to the wiki base URL. Also, as a security
  3344       feature, the server's environment is only shown for requests
  3345       local to the web server.
  3346 
  3347 Unfinished features:
  3348     * user defined forms
  3349     * XML export of all data in the wiki
  3350 
  3351 Documentation:
  3352     * extended the online help ("Help*" pages)
  3353     * German help pages (thanks to Thomas Waldmann)
  3354 
  3355 Bugfixes:
  3356     * #425857: python Parser bug on the second call
  3357     * #424917: Caching control
  3358     * #465499: Two HTTPS problems
  3359     * #491155: FrontPage hardcoded
  3360     * Handling of inbound UTF-8 encoded URIs (only with Python >= 2.0)
  3361     * Fix for subtle changes in "re" of Python 2.2
  3362     * User-provided URLs are now never URL-escaped, which allows appending
  3363       #anchors and using %20 for spaces in InterWiki links
  3364 
  3365 -----------------------------------------------------------------------------
  3366 Version 0.10 (2001-10-28, Revision 1.134)
  3367 
  3368 This version is still Python 1.5.2 compatible, but it's not extensively
  3369 tested for that version and some parts of the system might not work
  3370 there, especially seldom used macros and actions. Bug reports welcome!
  3371 
  3372 New features:
  3373     * "#deprecated" processing instruction
  3374     * config entry "SecurityPolicy" to allow for customized permissions
  3375       (see "security.py" for more)
  3376     * added distutils support
  3377     * though not extensively tested, the standalone server now does POST
  3378       requests, i.e. you can save pages; there are still problems with
  3379       persistent global variables! It only works for Python >= 2.0.
  3380     * "bang_meta" config variable and "!NotWikiWord" markup
  3381     * "url_mappings" config variable to dynamically change URL prefixes
  3382       (especially useful in intranets, when whole trees of externally
  3383       hosted documents move around)
  3384     * setting "mail_smarthost" and "mail_from" activates mailing
  3385       features (sending login data on the UserPreferences page)
  3386     * very useful for intranet developer wikis, a means to view pydoc
  3387       documentation, formatted via a XSLT stylesheet, for details see
  3388       http://purl.net/wiki/python/TeudViewer?module=MoinMoin.macro.TeudView
  3389       or MoinMoin/macro/TeudView.py
  3390     * "LocalSiteMap" action by Steve Howell <showell@zipcon.com>
  3391     * Added FOLDOC to intermap.txt
  3392 
  3393 Bugfixes:
  3394     * Full config defaults, import MoinMoin now works w/o moin_config.py
  3395     * Better control over permissions with config.umask
  3396     * Bugfix for a UNIX time billenium bug (affecting RecentChanges
  3397       sorting and page diffs)
  3398     * data paths with directory names containing dots caused problems
  3399 
  3400 -----------------------------------------------------------------------------
  3401 Version 0.9 (2001-05-07)
  3402 
  3403 New features:
  3404     * XML page input (pages that start with "<?xml") and XSLT formatting
  3405     * Page caching, for now limited to XSLT processing (where it's
  3406       absolutely needed); new code & API to add the "RefreshCache" link
  3407     * Selection of common date/time formats in UserPreferences
  3408     * New action "titleindex" to support wiki introspection (MetaWiki);
  3409       see the new links below the index bar in "TitleIndex"
  3410     * UserPreferences: editable CSS URL for personal styles
  3411     * PageInfo: the editor's name or IP is shown for each change
  3412     * WantedPages: a new macro that lists links to non-existent pages
  3413     * OrphanedPages: a new macro that lists pages no other page links to
  3414     * Extensions to the FullSearch macro (see HelpOnMacros)
  3415     * Python syntax highlighting
  3416     * "DeletePage" action (has to be activated, see MoinMoinFaq)
  3417     * "Remove trailing whitespace from each line" option in the editor
  3418     * I18N (currently German and Swedish)
  3419     * Config option "url_schemas" to extend the supported URL types
  3420     * Improved tracebacks by using Ka-Ping's "cgitb"
  3421 
  3422 Bugfixes:
  3423     * The editor now sends a "no-cache" HTTP header
  3424     * "PageList" results are now sorted
  3425     * New config parameter "html_head_queries": send additional header
  3426       for all pages EXCEPT the "normal" view; main usage is to have
  3427       only the normal pages indexed by a spider, not the edit, print,
  3428       etc. views (which cause multiple hits on the same information)
  3429     * Store the modification time of the page file in the editlog, not
  3430       the current time when the log entry is created
  3431 
  3432 -----------------------------------------------------------------------------
  3433 Version 0.8 (2001-01-23)
  3434 
  3435 New features:
  3436     * Page templates (create a new page using a template page, by Richard)
  3437     * Pluggable actions (by Richard)
  3438     * Added "diff since bookmark"
  3439     * Only "normal" URLs (outside of brackets) are converted to inline images
  3440     * Show number of backups in SystemInfo macro
  3441     * Show info on installed extension macros and actions
  3442     * New macro: [[BR]] for line breaks
  3443     * New action "LikePages" (again, Richard)
  3444     * Highlighting of search results, and of bad words when spellchecking
  3445     * Support for "file:" URLS
  3446     * "SpellCheck" action (Richard, me, and Christian)
  3447     * [[Include]] macro (you guessed it, Richard)
  3448 
  3449 Bugfixes:
  3450     * Update bookmark with load time, not click time
  3451     * Changed CSS styles to better suit Netscape's broken handling of CSS
  3452 
  3453 -----------------------------------------------------------------------------
  3454 Version 0.7 (2000-12-06)
  3455 
  3456 New features:
  3457     * RecentChanges bookmarking
  3458 
  3459 Bugfixes:
  3460     * SECURITY FIX
  3461     * Non-greedy extended WikiNames
  3462 
  3463 -----------------------------------------------------------------------------
  3464 Version 0.6 (2000-12-04)
  3465 
  3466 New features:
  3467     * [[UserPreferences]] macro and associated functions
  3468     * [[TableOfContents]] macro
  3469     * Mechanism for external macros (user extensions)
  3470     * Numbered list types and start offsets
  3471 
  3472 Bugfixes:
  3473     * Search dialogs did not work on the FrontPage
  3474     * Add newline to text if last line has none (better diffs)
  3475 
  3476 -----------------------------------------------------------------------------
  3477 Version 0.5 (2000-11-17)
  3478 
  3479 New features:
  3480     * Major refactoring: code is now broken up into modules within the
  3481       "MoinMoin" package
  3482     * Diagnosis of installation via a "test.cgi" script
  3483     * Smileys
  3484     * "#format" processing instruction
  3485     * "##comment"
  3486     * [[RandomPage]] and [[RandomPage(number)]] macro
  3487     * configurable footer ("page_footer1" and "page_footer2")
  3488     * "#redirect" processing instruction
  3489 
  3490 Bugfixes:
  3491     * Bugfix for broken CGI environment of IIS/4.0
  3492     * URLs and InterWiki links are now less greedy (punctuation at the end
  3493       is excluded, and "<" ends them, too)
  3494 
  3495 -----------------------------------------------------------------------------
  3496 Version 0.4 (2000-11-01)
  3497 
  3498 New features:
  3499     * Table markup "||a||b||c||"
  3500     * Headlines "= H1 =", "== H2 ==", and so on up to H5
  3501     * [[PageCount]] macro
  3502     * Added [[Icon(image)]] macro and macro arguments
  3503     * [[PageList(title-regex)]] macro
  3504     * New help system (set of help pages describing all features)
  3505 
  3506 Bugfixes:
  3507     * Create complete URL for "Clear message" link
  3508     * Inline code spans needed cgi.escape
  3509     * Better fix for Python 1.6 "re" problems
  3510     * Fix for uppercase extensions in inline images ("foo.JPG")
  3511     * Fixed colspan in RecentChanges
  3512     * HR size is now limited to 8
  3513     * "}" ends an URL pattern (fixes URLs right at the end of code displays)
  3514 
  3515 -----------------------------------------------------------------------------
  3516 Version 0.3 (2000-10-25)
  3517 
  3518 New features:
  3519     * Check for inline images with InterWiki links (Spam:eggs.gif)
  3520     * New config variable "allow_extended_names", which enables markup for
  3521       wiki names containing ANY character like this: ["any chars"] 
  3522     * New config variable "html_head"
  3523     * New macro [[SystemInfo]]
  3524     * Added inline code ("{{{" and "}}}" on the same line)
  3525     * Support for new config variable "max_macro_size"
  3526 
  3527 Bugfixes:
  3528     * Don't treat sequences with a double colon (CPP::Namespace) as an
  3529       InterWiki link
  3530     * The local part of InterWiki links is now correctly URL-escaped
  3531     * Quickfix for a bug in 1.6's regular expressions
  3532     * Fixed "SpamSpamSpam" bug (multiple entries in word list)
  3533     * Anchor names get quoted in WordIndex and TitleIndex
  3534     * Filtering of filenames in page_list() corrected
  3535     * Escape &, <, > when sending the editor
  3536     * Final(?) fix for japanese wiki names
  3537 
  3538 -----------------------------------------------------------------------------
  3539 Version 0.2 (2000-08-26)
  3540 
  3541 New features:
  3542     * When saving, a datestamp saved in the form and that of the file are
  3543       compared now; so, accidently saving over changes of other people is
  3544       not possible anymore (saving still needs file locking though, for
  3545       race conditions)
  3546     * if the directory "backup" exists in the data dir, pages are saved
  3547       there before a new version is written to disk
  3548     * Removed the "Reset" button from EditPage
  3549     * Added "Reduce editor size" link
  3550     * Added Latin-1 WikiNames (JürgenHermann ;)
  3551     * Speeded up RecentChanges by looking up hostnames ONCE while saving
  3552     * Show at most 14 (distinct) days in RecentChanges
  3553     * Added icons for common functions, at the top of the page
  3554     * Added a printing preview (no icons, etc.)
  3555     * Added bracketed (external) URLs
  3556     * Added support for quoted URLs ("http://...")
  3557     * Added styles for :visited links to CSS
  3558     * Embed image if an URL ends in .gif/.jpg/.png
  3559     * No markup detection in code sections
  3560     * Grey background for code sections
  3561     * Added handling for numbered lists
  3562     * the edit textarea now grows in width with the browser window
  3563       (thanks to Sebastian Dau�for that idea)
  3564     * Added page info (revision history) and viewing of old revisions
  3565     * Added page diff, and diff links on page info
  3566     * Added InterWiki support (use "wiki:WikiServer/theirlocalname"; the list
  3567       of WikiServers is read from "data/intermap.txt")
  3568     * Added "normal" InterWiki links
  3569     * Added "action=raw" to send the raw wiki markup as text/plain (e.g. for
  3570       backup purposes via wget) 
  3571 
  3572 Bugfixes:
  3573     * Removed an exception when saving empty pages
  3574     * Fixed bold nested into emphasis ('''''Bold''' Italic'')
  3575 
  3576 -----------------------------------------------------------------------------
  3577 Version 0.1 (2000-07-29)
  3578 
  3579 Improvements over PikiPiki 1.62:
  3580     * Moved configuration to "moin_config.py"
  3581     * Added "edit_rows" setting
  3582     * Added navigation bar
  3583     * Improved HTML formatting
  3584     * Added timing comment (page created in xx secs)
  3585     * ISO date and time formats by default
  3586     * Formatted RecentChanges with HTML tables
  3587     * Uppercase letters for the index pages
  3588     * Added PythonPowered logo
  3589 
  3590 Bugfixes:
  3591     * Javadoc comments now get formatted properly in {{{ }}} sections
  3592     * Remove \r from submitted pages (so we get PORTABLE wiki files)
  3593     * chmod(0666) eases manual changes to the data dir
  3594 
  3595 -----------------------------------------------------------------------------