Found out, that with PostgreSQL db backend neither schema version nor default
permission actions have been inserted after component initialization.
There might be a hidden issue with the test environment setup here, that once
again requires a suspiciously looking workaround, but I'm unable to find it
yet, even more since db code and SQL statements have been straightened a lot
by now, therefor I'm gradually running out of ideas.

Anyway, all unit tests pass with PostgreSQL on Trac-1.0 now, while issues with
older Trac versions remain, as outlined in #9521 before.

I've seen this before, so `AttributeError: 'NoneType' object has no attribute
'fetchall'` was an instant reminder - done better now, squeezing 5 out of 7
issues with PostgreSQL unit tests in Trac-1.0 .

Fixes #9553: Chrome constructor was not being passed the required Environment object, resulting in an error when using the UserProfileList macro. Thanks to ejucovy for the patch. Tested with Trac 1.1.1dev-r11384.

Many thanks for Jun Omae's report, suggested fix and explanation on the issue.
Nevertheless with Trac-1.1dev about to drop even Python2.5 compatibility
the days of Python2.4 are counted - even in Trac plugins.

Strip single quotes from the multipleseparatorOption value. This allows the user to specify a single whitespace separator as ' ' (which is not necessary since a single whitespace is the default), or even dream up separators such as double whitespace as ' '. A single whitespace character is used as the separator in the case the user specifies ''. Thanks to itamarost for pointing out this corner case in his original patch.

Wired up unit tests.

Renamed keywords.py to web_ui.py, to work around an issue described in comment:39, in which the keywordsuggest.keywordsuggest module was not being found by the keywordsuggest.tests.keywordsuggest module when running unit tests.

NOTE: If you have enabled the plugin through webadmin or by editing trac.ini with keywordsuggest.keywordsuggest.* = enabled, you will need to re-enable the plugin through webadmin, or edit the line to keywordsuggest.web_ui.* = enabled (or keywordsuggest.web_ui.keywordsuggestmodule = enabled).

Unsuccessful attempts to store the new password will no longer yield
misleading user notification about unsaved, effectively invalid passwords.

Beware though, that the password reset procedure has been changed to prevent
premature password invalidation, so the old password will continue to exist
until next successful login for that user account anyway.

Fixes #9760, Refs #10405: Restore compatibility back to Trac 0.11 by adding a fallback for when trac.util.text.javascript_quote is not available (Trac < 0.11.3). Copied from hasienda's patch in [11200].

Beware of #9892 before jumping to the conclusion that the plugin doesn't work. The sample seems to be broken, but ordinary usage of the plugin seems to be okay.

Made the trunk compatible with Trac 0.11, by rolling out changes introduced in [9480] and later. There is nothing forcing us to adapt to the new Trac DB API at the moment, and it is easier to maintain a single code-base that is compatible back to Trac 0.11. The Trac DB API changed again in 1.0, so we are better off waiting and adapting to that API down the road anyway.

Attempted to cleanup the mess of import statements in every module. Modified the entry_points to adapt to these changes.

Made the XmlRpc lib an optional component. There is more work to do here still.

Thanks to Adeel Asgha for the initial suggestion despite of my first reaction.

Thinking a bit, and after a friendly nudge by Ryan this seems like a pretty
basic requirement indeed, that should even have come-up much earlier.
Easy enough to enforce it in BasicCheck for new user registrations now.

ticket.get_changelog() returns entries that aren't comments (as well as entries that are comments) -- so, if the latest modification on the ticket does not have a comment, tracbacks will cause an internal error by assuming an incorrect data structure. this commit fixes the problem by filtering out all changelog entries that are not comments. (fixes #9743)

Start to improve code structure, following good Trac coding style by
totally separating db access from the rest of the code.
This will help with upgrading to the new db API for Trac>0.12 later on as well.

pass along referer (including query string) when redirecting to the login screen, so that after login trac will send the user back to the page he was trying to visit. fixes #2210. (thanks to nathan@… and UnwashedMeme for the patch)