[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.



 * Applied
   Dirk Pape to quiet some warnings - jesse

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

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

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

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

 * New callbacks from Dirk Pape: http://page.mi.fu-
   ers.patch - jesse

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

 * get rid of overly verbose debug statement - tla


 * Japanese translation updates from Shinji Yamane - jesse

 * Updated dutch .po file from Marcel Kolkman - jesse


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


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

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


 * 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
   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
   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


 * HTML Table fixes from Dirk Pape
   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 -

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


 * 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


 * 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,
   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


 * 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