[Rt-devel] RT 3.6.6rc1 now available

Jesse Vincent jesse at bestpractical.com
Mon Dec 3 16:37:49 EST 2007


I'm pleased to announce the first release candidate of RT 3.6.6.

This release focuses mostly on performance improvements. The _big_
changes are:

* CSS and javascript files should be better cached on the client
* CSS files are now concatenated and squished to cut down on the number
of initial HTTP requests
* ACL queries have been split apart into more small queries, which leads
to more effective caching _and_ has better performance characteristics
on MySQL 5.x

There's also some refactoring work going on to improve our support for
HTML mail. But more on that later.

-jesse



CORE
====

 * Applied
http://page.mi.fu-berlin.de/pape/rt3/patches/rt/3.6.5/less_warnings_in_error_log.patch
from
   Dirk Pape to quiet some warnings - jesse

 * RT.pm.in: Add support for loading RT_Vendor.pm by default before
RT_Local,
   for greater consistency. - audreyt

 * RT::Record - _DecodeLOB now respects RT::I18N::IsTextualContentType. -
   audreyt

 * _DecodeLOB: All text/* are treated as UTF-8, not only text/plain. -
audreyt

 * Allow Template->ParseContent to not require Ticket and Txn - sartak

 * New callbacks from Dirk Pape: http://page.mi.fu-
   berlin.de/pape/rt3/patches/rt/3.6.4/add_callbacks_to_admin_us
   ers.patch - jesse

 * Save the transaction ID of the outgoing message transaction - tla

 * get rid of overly verbose debug statement - tla

I18N
====

 * Japanese translation updates from Shinji Yamane - jesse

 * Updated dutch .po file from Marcel Kolkman - jesse

DOC
===

 * We used the wrong variable name in html/Search/Chart (for fonts)
Thanks to
   elacour at easter-eggs.com - jesse

INSTALL
=======

 * Add new dep: CSS::Squish 0.06 - audreyt

 * bump required version of SB so people will get a fix that affect the
latest
   change - ruz

MAIL
====

 * RT::I18N - Introduce a new utility function, IsTextualContentType($type),
   that determines whether $type can be sensibly converted to Unicode text.
   Currently it uses this regex (case-insensitively):
   ^(?:text/(?:plain|html)|message/rfc822)\b The idea is to unify all the
   inconsistent uses all over RT's code (some tested for text/*, some for
   text/plain|message/rfc822, some for text/plain|text/html|message/*)
to use
   this function instead.

 * Minor POD glitch - Say "function" when it said "method" but really
wasn't. - audreyt

 * RT::Transaction_Overlay: Be saner and allows explicitly calling $txn-
   >Content(Type => 'text/html'), instead of relying on action-at-a-distance
   $PreferredContentType. - audreyt

 * MakeMIMEEntity now takes an optional "Type" field to denote the MIME Type
   of the body. (Default to 'text/plain'.)

 * CreateTicket() now supports $ARGS{ContentType}, and
ProcessUpdateMessage()
   now supports $ARGS{UpdateContentType}. - audreyt

 * RFC dictates to encode by chars, so if char is two octets then it MUST be
   in one chunk - ruz

 * RT::Action::SendEmail - Support for multipart/* emails; we now textualify
   all MIME parts, instead of collapsing the whole multipart. - audreyt

 * RT::Action::SendEmail: Allow user-specified Content-Type in outgoing
   templates. Currently, only text/* is supported for security reasons.
   Eventually maybe multipart/* with all textual subparts might be allowed,
   too. - audreyt

 * RT::Attachment_Overlay - Fix several broken logic in ->OriginalContent:
    - When $self->ContentEncoding eq 'quoted-printable', a premature
        "return" prevented any encoding conversion from taking place.
    - A bogus Encode::_utf8_on($content) later prevented any encoding
        conversion from taking place _anyway_.

 * $attachment->Quote now respects RT::I18N::IsTextualContentType. - audreyt

 * RT::Transaction->ContentObj - Prefer the first part that matches
   $PreferredContentType, instead of always 'text/plain'. - audreyt

 * RT::Transaction_Overlay - use RT::I18N::IsTextualContentType. - audreyt

 * RT::Transaction_Overlay: Signatures in text/html content objects
should be
   removed in a way that doesn't depend on whitespace. Also, remove an
   unneccessary regex capture. - audreyt

 * RT::Transaction_Overlay: Unify the idea of "textual" MIME types to
   text/plain, text/html and message/*. (Previously it was defined
differently
   for e.g. the first part and the other parts.)
 * RT::Transaction_Overlay: Introduce the variable
   $RT::Transaction::PreferredContentType to control the context
   where ->Content() is evaluated in.  If not set, it defaults
   to text/plain. - audreyt

MINOR CLEANUP
=============

 * HTML Table fixes from Dirk Pape
(http://page.mi.fu-berlin.de/pape/rt3/patches/rt/3.6.4/rt3.6-
   xhtml-2.patch) - jesse

 * In this case the <ul> was opened inside an IF block, but </ul> closed
   outside the IF block. Thanks to Jason Long. - ruz

 * The <nobr> opening tag came before the IF statement, and the </nobr>
   closing tag was inside the IF statement. Thanks to Jason Long. - ruz

 * convert mason comments into css comments - ruz

 * delete double width definition
 * don't escape html - ruz

 * delete unused variable - ruz

 * handle spaces in field names when doing rt ls - falcone

 * move general if block into <%INIT> - ruz

 * pass a reference to @results into a callback, so extensions can fill it -
   ruz

 * squish our CSS into one big thing use CSS::Squish and dhandler - ruz

PERFORMANCE
===========

 * add max-age to HTTP Caching "Expires" header - ruz

 * Don't send Last-Modified field in a response when it's not necessary

 * Explicitly mark our static files like css and js as publicly
cacheable  - ruz

VIEW
====

 * A small fix to stop RT from complaining about categories when updating
   custom fields via the web ui. Thanks to Brian Gallew - jesse

 * add Ticket/Elements/ShowQueue and use it on create and in ShowBasics,
tiny
   comp for overriding in extensions - ruz

 * add closing tags for elements of lists - ruz

 * add handling of arguments with multiple values into
   Widgets/SavedSearch - ruz

 * add labeling of portlets that are based on components, it doesn't support
   localization, but it's better than empty label

 * allow to manage many portlets that are based on the same
   comp by adding optional 'id' key - ruz

 * add missing </li> - ruz

 * set the prefix so that CFs can be added during Group Creation - falcone

 * switch to /Elements/ShowLink - ruz

 * In charts, if there are no tickets found in a search, give an error-
   message image instead of silently failing to load. - sartak

 * add a callback for SelfService/Elements/Tabs - sunnavy

 * added AfterShowHistory Callback in Ticket/History.html - sunnavy

 * added current_tab arg for AfterShowHistory Callback in
   Ticket/Display.html - sunnavy

 * added show_menu arg for Elements/Tabs and Elements/PageLayout, mainly for
   RTx-TicketBottomTabs - sunnavy

 * When creating or updating a ticket, we shouldn't replace "\n" with
   whitespace if it's a multiple-value custom field type - sunnavy


ACL QUERIES
============

 * split _HasRight into _HasGroupRight and _HasRoleRight

 * use more queries for roles (sounds like a performance lose but is
really a win) - ruz


 * split WhoHaveRoleRights into more queries so buggy MySQL's optimizer
can do
   the right thing - ruz

 * unshift more global objects instead of pushing them, so we'll get them
   earlier in an upcoming refactoring
 * do all things related to EquivObjects in HasRight and leave only
checks in _HasRight - ruz


More information about the Rt-devel mailing list