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