Note: This is a reduced CHANGES, ommitting details from rc/beta test and
also less interesting minor changes and fixes. It shows changes
relative to 1.8.6 release.
If you want to see full detail, read it there:
http://hg.moinmo.in/moin/1.9/file/b290d938be63/docs/CHANGES
New features: ==============================================================
* HINT: MoinMoin requires Python 2.4 now. If you only have Python 2.3 and
you don't want to upgrade it, please use MoinMoin 1.8.x.
* HINT: MoinMoin is now a WSGI application.
Please read the new install docs about how to use it, see:
http://master19.moinmo.in/InstallDocs
You also have a local copy of that page as docs/INSTALL.html.
* HINT: due to big changes in the request processing and the request
object (related to the WSGI refactoring), many 3rd party plugins might
need code updates to work with moin 1.9.
* HINT: We now offer different sized sets of system/help pages and the default
underlay just contains a single page: LanguageSetup. You need to be
superuser, visit that page and then install the language packs you like
(minimum is the essential set for English).
* HINT: LanguageSetup is the default page_front_page, you need to change that
after installing language packs (see above).
* New modular group and dict data access, you can use group and dict
backend modules to access group and dict data stored anywhere you like.
Currently we provide these backends:
* WikiGroups and WikiDicts backends get data from wikipages. They work
similar to old wikidicts code (but with less caching issues :).
* ConfigGroups and ConfigDicts backends get data from a dictionary
defined in the wiki config.
* CompositeGroups and CompositeDicts compose several backends, so data
may be retrieved from several sources. For example, groups may be
defined in the wiki config and on wiki pages.
* Using cfg.groups and cfg.dicts, you can define the backend to use to
access group and dict information (default: WikiGroups / WikiDicts
backend).
See the wiki/config/more_samples/ directory (groups_wikiconfig_snippet
and dicts_wikiconfig_snippet).
* See also the new HelpOnDictionaries and HelpOnGroups pages.
* Improved Xapian indexing / search:
* Moin's Xapian based search code was refactored:
* It is now based on the xappy library (see MoinMoin.support.xappy).
* Minimum Xapian requirement is 1.0.6 now.
* Outdated and unmaintained xapwrap lib was removed.
* regex search with Xapian enabled also is based on the xapian index now
* Safe 2-stage xapian index rebuilding:
moin index build --mode=buildnewindex slow, concurrent
<stop wiki>
moin index build --mode=usenewindex fast
<start wiki>
* Added wikiconfig snippet for xapian search.
* Improved drawing support:
* TWikiDraw:
* Support code was refactored/moved to the twikidraw action.
* Use drawing:example.tdraw to invoke it (drawing:example also still
works for backwards compatibility)
* Drawings are now stored as a single attachment foo.tdraw.
We added a migration script that converts your existing drawings.
* AnyWikiDraw:
* Java applet added, source code see contrib/.
* Support code for it is in anywikidraw action.
* Use drawing:example.adraw to invoke it.
* Drawings are stored in a similar way as foo.adraw.
* cfg.extensions_mapping added for mapping of attachment file extensions
to actions (currently used for anywikidraw/twikidraw action)
* Themes / static files related:
* Added modernized_cms theme (hides most wiki widgets from modernized if the
user is not logged in).
* Static file serving built-in (moved wiki/htdocs to MoinMoin/web/static/htdocs).
MoinMoin.web.static has a static file serving wrapper that uses the files
from htdocs subdirectory by default (docs=True).
You can also give another path or switch off creation of that static wrapper.
See the docstring of the static package for details.
* Theme packages: do_copythemefile now copies theme files to
MoinMoin/web/static/htdocs.
* Syntax highlighting is based on the pygments library now, it does this for
LOTS of stuff (programming languages, config files, ...) - use it like this:
{{{!highlight xxx
...
}}}
xxx is any of the markups pygments supports (see HelpOnParsers).
Note: we still have some (deprecated) small wrappers around pygments,
so the old syntax !python/pascal/cplusplus/... still works.
* Authentication improvements:
* HTTP auth related (see also HelpOnAuthentication):
* HTTPAuthMoin: http basic auth done by moin
* HINT: auth.http.HTTPAuth is now auth.GivenAuth
This was badly named from the beginning as for most servers, it just
looked at REMOTE_USER environment variable and relied on the server
doing the authentication (could be http basic auth or any other auth).
* LDAP/AD auth: new name_callback param to create a custom wiki username (not
the ldap login username)
* OpenID auth:
* Support for Simple Registration (SREG) extension.
Basic profile fields can be copied from OpenID provider when logging in.
* Support for Teams extension.
* Ability to accept logins from specific OpenID providers.
Login form changes based on configuration for better usability:
* 0 providers: normal text input box for OpenID URL
* 1 provider: hidden field, automatic form submission with JavaScript
* 2+ providers: select field, uses directed identity
* Sessions / cookies:
* HINT: cfg.cookie_lifetime is now a tuple (anon, loggedin), giving the
lifetime of the cookie in hours, accepting floats, for anon sessions and
logged-in sessions. Default is (0, 12). 0 means not to use a session
cookie (== not to establish a session) and makes only sense for anon users.
* cfg.cookie_httponly is new and defaults to False. Please note that if you
set it to True, TWikiDraw and similar stuff won't be able to use the session
cookie. Thus, if your wiki page doesn't allow writing for everybody, saving
a drawing will fail, because there is no session (== no logged in user) for
the TWikiDraw applet's saving POSTs.
* Macros:
* WikiConfigHelp: added section keyword for selecting a subset of the
description, e.g. <<WikiConfigHelp(section="xapian")>>
* HighlighterList: show Pygments syntax highlighters (see HelpOnParsers)
* Actions:
* SlideShow action added (please use the "modernized" theme [default])
* raw action mimetype support: ...?action=raw&mimetype=text/css
* PackagePages: create package file on-the-fly in memory and send it to the
client (do NOT create package.zip attachment)
* Improved logging / debugging / developer support:
* Main exception handler: include request url in log output.
* Environment variable MOIN_DEBUGGER=off/web/external (default is "off").
* Handle wikiserverconfig(_local) in the same way as wikiconfig(_local).
* GUI editor: improved attachment dialog
* "moin ... account homepage" script to create user homepages.
Removed features: ==========================================================
* Removed cfg.traceback_* settings (use logging configuration)
* Removed old session code and settings:
* Removed cfg.session_handler and session_id_handler (use cfg.session_service)
* Removed cfg.anonymous_session_lifetime (use cfg.cookie_lifetime)
Bug fixes: =================================================================
* Xapian indexing:
* Rely on xapian's locking (remove moin's additional and sometimes broken
locking, that blocked index-rebuilds or updates sometimes).
* Removed indexer threading.
* Fixed (reimplemented) indexer queue.
* Less disruptive xapian index rebuild.
* AdvancedSearch: example didn't work, fixed
* With the groups/dicts code rewrite, we fixed the caching problems that the
old code (< 1.9) sometimes had.
* Actions:
* Abort RenamePage if renaming of main page fails (do not try to rename
subpages).
* AttachFile do=view: quote filename and pagename params for EmbedObject
macro call
* unsubscribe action: add msg types so icons get displayed
* Parsers:
* fixed MoinMoinBugs/LineNumbersWorkingBuggyWithHighlightParser
* GUI editor: roundtripping works now for .pdf/doc/... attachment transclusion
* AttachFile: added remove_attachment() and FileRemovedEvent (mail and xapian
support, no jabber support yet).
* Fix makeForbidden403() calls - is makeForbidden(403, ...) now.
* sendmail: add more debug logging, check for empty recipients list
* Fix MoinMoinBugs/MissingPageShouldn'tOfferToCreatePageForReadonlyUsers
* Fix MoinMoinBugs/1.6XmlRpcPutPagePagenameEscape
* Bug with "language:en" was fixed for the Moin search. Now language:
behaves like described on HelpOnSearching.
* Fixed MoinMoinBugs/DeprecatedIsNotRespected (search ranking, WantedPages).
* OpenID: always return error messages with CancelLogin if OpenID process fails.
* suid: simplify and fix, bigger selection box
* patch werkzeug 0.5.1 to catch OverFlowError and ValueError so it doesn't
crash when receiving invalid If-modified-since header from client.
Other changes: =============================================================
* 'modernized' theme:
* use it by default (1.8 used 'modern')
* move title_with_separators() from Modernized theme to ThemeBase
* add a span with "pagepath" class to title_with_separators
* add the sidebar() method from Mandarin and Gugiel themes to ThemeBase
* updated flup to 1.0.2+ ( http://hg.saddi.com/flup-server/rev/6ea1ffac1bcb )
* updated pygments to 1.1.1+ ( http://dev.pocoo.org/hg/pygments-main/rev/948f8885af16 )
* updated parsedatetime to 0.8.7
* increase surge protection limits for AttachFile to avoid trouble with image galleries
* HINT: simplify wikiserver configuration by using same names as werkzeug's
run_simple() call.
* Removed moin account check's --lastsaved option, it is default now
(checking last use with trail file did not work in 1.9 anyway).
* ImageLink page has been killed (ImageLink macro is gone since 1.6.1).
* Allowed disabling of timezone and language user prefs if they are
part of the user's login fields (i.e. OpenID SREG).
* Added option to disable local registration links and direct user
to registration page at an OpenID provider instead.
Developer notes: ===========================================================
* groups and dicts API changes:
* request.groups and request.dicts provide access to groups and dicts.
* MoinMoin.wikidicts is gone, please use MoinMoin.datastruct.
* LazyGroup and LazyGroupsBackend base classes for implementing backends
which potentially deal with huge amounts of data (like a LDAP directory).
Use MoinMoin/datastruct/backends/config_lazy_groups.py as a draft for
new backends.
* See http://moinmo.in/Groups2009 for more details.
* i18n: new approach for defining sets of system/help pages (see i18n.strings).
CheckTranslation, page packager, wikiutil.isSystemPage() use those sets.
* killed deprecated macro.form attribute (didn't work as expected anyway due
to WSGI refactoring) - please use macro.request.{args,form,values}