Major new features:
- added postgresql backend (originally from sf patch 761740, many changes
since)
- added new "actor" automatic property (indicates user who cause the last
"activity")
- RDBMS backends implement their session and one-time-key stores and
full-text indexers; thus they are now performing their own locking
internally
- all RDBMS backends now have indexes on several columns
- support confirming registration by replying to the email (sf bug 763668)
- all HTML templating methods now automatically check for permissions
(either view or edit as appropriate), greatly simplifying templates
Other new features:
- simple support for collision detection (sf rfe 648763)
- support setgid and running on port < 1024 (sf patch 777528)
- using Zope3's test runner now, allowing GC checks, nicer controls and
coverage analysis
- change nosymessage and send_message to accept msgid=None (RFE 707235)
- handle Resent-From: headers (sf bug 841151)
- always sort MultilinkHTMLProperty in the correct order, usually
alphabetically (sf feature 790512)
- added script for copying user(s) ("scripts/copy-user.py") from tracker
to tracker (sf patch 828963)
- ignore incoming email with "Precedence: bulk" (sf patch 843489)
- use HTTP 'Content-Length' header (modified sf patch 844577)
- HTML generated is now HTML4 (or optionally XHTML) compliant (sf feature
814314 and sf patch 834620)
- default stylesheet turns off sidebar when printing
- allow direct supply of filter() arguments in templating (thanks Godefroid
Chapelle)
- improved body_title slot in HTML templating (sf patch 873502)
- HTMLLinkProperty field() method renders as a field now (thanks darryl)
- cgi Action handlers may now return the actual content to be sent back to
the user (rather than using some template)
- date.Date now handles fractional seconds
Fixed:
- mysql documentation fixed to note requirement of 4.0+ and InnoDB
- added testing of schema mutation, fixed rdbms backends handling of a
couple of cases
- HTML 4.01 validation on the 'classic' backend
- messages to the mailgw can be about classes other than issues now.
- signature matching is more precise (sf bug 827775).
- anonymous user can no longer edit or view itself (sf bug 828901).
- corrected typo in installation.html (sf bug 822967).
- clarified listTemplates docstring.
- print a nicer error message when the address is already in use
(sf bug 798659).
- remove empty lines before sending strings off to the csv parser
(sf bug 821364).
- centralised conversion of user-input data to hyperdb values (sf bug
802405, sf bug 817217, sf rfe 816994)
- recalculate SHA on template files when installed tracker used as
template (sf bug 827510)
- fixed ZRoundup (sf bug 624380)
- the mail gateway now searches recursively for the text/plain and the
attachments of a message (sf bug 841241).
- fixed display of feedback messages in some situations (sf bug 739545)
- fixed ability to edit "content" property (sf bug 914062)
Cleanup:
- replace curuserid attribute on Database with the extended getuid() method
- extract a new 'mailer' module for sending mail
- extract a '_send_mail' method for testing mail sending
- simplify backend importing
- use roundup_server in demo.py
- implement newItemAction using editItemAction
- use FormError in client.py, moving the handling up to inner_main()
- implemented semantic comparison of Message objects in test_mailgw
- tidied up forms in default stylesheet
- force textareas to use monospace fonts, lessening surprise on the user
- moved out parts of client.py to new modules:
* actions.py - the xxxAction and xxxPermission functions refactored into
Action classes
* exceptions.py - all exceptions
* form_parser.py - parsePropsFromForm & extractFormList in a FormParser
class