I’m pleased to announce RT 3.3.11, the second beta release of what will
be RT 3.4. First, the unfortunate news that there’s a minor schema
change needed on existing 3.3 databases due to an issue with the
previous RT 3.3 schema: It used “Current” as a column name, which is an
Oracle reserved word. It’s very important that RT’s schema remain
consistent between the various databases. When you install RT 3.3.11,
be sure to actually follow the instructions presented by “make upgrade”.
Now the better news: This release represents a week and a half of
intensive cleanup and stabilization work during a development retreat by me
and Autrijus Tang. Additionally, there are several new features aimed at
providing developers with a better environment for improving RT.
Below is a simplifed, categorized changelog of the updates since beta 1.
RT 3.3.11 is immediately available from:
- Removed images that weren’t used anymore
- Switched to using Cache::Simple::TimedExpiry for our ACL cache, rather than
our overly convoluted (and slower) ACL cache code in Prinicpal_Overlay.pm
- Changed severity of calling Principal->HasRight without a Right
- Added a bit of documentation to RT::Base; removed an unused line of code
- Squash warnings when trying to check acls on nonexistent custom fields
- Better handling of Record deletion confirmation messages. (To go with new
- Search UI: loc and layout improvements.
- Added a Delete method to RT::Record so we get proper messages on object
- New “batch transactions” core from Ruslan. This update makes it much easier
to use stock conditions for bulk updates ( RT-Ticket: 6230)
- Rebuilt RT::Tickets’ watcher search logic to only use one join to the
users/groups table so as to create joins that can be computed in finite
time. Theoretically, this makes watcher searching less powerful. In
practice, it makes watcher searching a lot more possible.
( RT-Ticket: 6219)
- Fixed the name of the template used to notify non-privilged users when
their password is changed. (RT-Ticket: 6121)
- Log::Dispatch wants ->warning, not ->warn.
- Refactor getting-an-uploaded-file-into-cf into _UploadFile call in
Interface::Web; this unbreaks uploading a file cf on ticket creation.
- The “CustomField-x” keys in $Ticket->Create now take hash references that
contain CFV fields, eg. LargeContent, ContentType, Value.
- Provide more control over how autogenerated mail gets sent out via RT.
( RT-Ticket: 4624 )
- Various warning avoidance patches (for spurious warnings)
- Fixed RTLogo configuration variable to actually display RT’s logo.
- Made the automatic cache flushing configurable.
- Fixed the MaxAttachmentSize variable name in comments. Thanks to Graham Dunn
- Flush database cache at end of each HTTP request, for better consistency.
- Switched back to manual buffer flushing, as this will improve performance
and help future-proof RT against a mason update
- Added several manual buffer flushing points to help with the user experience
during page display
- Switched to using mason’s “static_source” directive, which stops mason from
trying to guess about which pages need to be reload from disk. (Now you
need to restart the webserver to see changes)
- In query builder, parse custom fields by name.
- Generate all Link-type result cell callbacks from %LINKTYPEMAP.
- Display custom field contents, separated by newlines.
- For Image custom fields we also show a thumbnail.
- Refactored BuildFormatString mason component to simplify logic and improve
- Refactoring and restyling the Ticket List to present prettier tables with
more human-readable names
- Fixed SelectLinks component to contain the right options and present the o
right human-readable names
- Refactored the logic which builds format strings to simplify code and
present better human-readable names
- Switched Quicksearch to use most standard CSS styles
- Query builder now acts on multiple clauses.
- Refactor the clause display component.
- Escape ColumnMap return values to prevent a potential cross-site scripting
attack. All HTML snippets are now returned as scalar references.
- Improved list format for multiple custom field values
- There were a couple of bugs in the bulk update page that broke ticket
linking. (Among other things, the custom fields update functionality was
completely broken. It’s been disabled pending a new implementation)
( RT-Ticket: 6242 )
- Global custom field editing in 3.3 had the wrong (hardcoded) URL target.
( RT-Ticket: 6245 )
- Additional fixes for display of unlimited search results
- Improved “stickiness” of queries. Next/Prev navigation should be more
consistently available now. Most recent query should be available more
- Added support for recording transaction custom fields on ticket creation.
- Added a couple of form NAME elements, to ease testing
- No longer show the “Applies To” tab for user and group Custom Fields.
- When uploading image custom fields, they’re handled as file descriptors,
rather than scalars. Our old logic assumed that any ref was an array. Now
we check for array refs explicitly.
- Refactored the column map to only initialize itself once, rather than every
time it’s called
- Do not waste stat() calls on Callback elements.
- If $RT::DevelMode is not set, do not refresh Callbacks cache at all.
- New --with-developer-mode configuration flag. Right now, it just turns
mason static_source off, but in the future, it will enable other
- Module::Refresh is now enabled by default for all HTTPD handlers
when $RT::DevelMode is set to true. This means that you can edit RT’s
libraries on the fly when Developer mode is turned on.
- Under developer mode, do not let Mason cache object files on var/.
- Turning off the forking in standalone_httpd. It was never a win
- Added a HUP handler for the standalone httpd (so you can kill -HUP it to
- Fixes to standalone_httpd: ‘protocol’ was not defined, and query_string may
be undefined too. (Supposedly fixed in HTTP::Server::Simple.)
- Defeat perlbug that mangles (caller(0)) wheneter $^P is set by
- move the design spec from spec/ under the docs/design_docs/ space where it
- V7 of redesign schema, incoporating many more comments and
the new, clkao-inspired fields.
- Improved comments and folds in RT::Record
- Updated license tagging and folding for license tagging
- New web-based testing for image custom field creation (upload on create,
display in search result listings)
- “make initdb” now an alias of “make initialize-database”.
- “make dropdb” on SQLite now works.
Schema changes for Pg, SQLite, mysql and Oracle.
schema updater for Pg and mysql; Oracle comes later and SQLite is nontrivial.
Removed a comment from the PostgreSQL schema files, as some versions of
postgres fail to parse it well. (RT-Ticket: 6197)