[Rt-devel] [Rt-announce] RT 3.8.6 Released

Kevin Falcone falcone at bestpractical.com
Tue Oct 20 10:44:55 EDT 2009

We are happy to announce that RT 3.8.6 is now available.
You can download it from:


SHA1 Sums

a26350016a828ab4067438f0ea9b2b97ca9026f7  rt-3.8.6.tar.gz
a0a934075932bce62711073406b5fb6f5c6d4b7d  rt-3.8.6.tar.gz.sig

This release contains numerous bug fixes and performance enhancements,
as well as a few new features.

Please read UPGRADING for notes on some database changes and how to
upgrade your old Custom Field Categories to the new Hierarchical

A more complete changelog follows, but some highlighted changes:
* A new Hierarchical Custom Field system
* Performance improvements in the spreadsheet export
  With the optional Parse::BooleanLogic, we've added better support for
  Custom Fields in the export.
* Forward all responses to a ticket, rather than just a single
* Bugfixes for comboboxes and hierarchical custom fields in IE
* Better error messages when unprivileged users attempt to access
  administrative areas.
* Complete refactor of autohandler (code that handles Login)
  (Compatible with RT::Authen::ExternalAuth 0.08)
* Performance improvements when displaying pages with many
  different users (ticket history, search results).
* Two small memory leak fixes in the Query Builder and html parsing
* Shredder bugfixes and the ability to limit shredding to users in a 
  particular group using the member_of option
* New PlainTextMono config option (display wrapped and formatted plain
  text attachments) that uses css to show history in a monospaced font
  but still force wrapping (unlike PlainTextPre)
* Display fix for tickets with non-ascii characters in the Subject

Thanks to everyone who helped out by voting and helping to automate the
changelog creation for this release.


Changelog for RT 3.8.6, generated 2009-10-19T20:05:16

If you want to explore a commit listed below, clone rt.git from github
and the following command will show you more information.

git log -p --grep="part of the commit message"

 * Add a missing class for a div in search result to ease customize css (closes: #12807).
 * Fix display of emails from ShowEmailRecord (closes: #9848).
   - reduce left margin of body (used for non existent "nav" pane)
   - use overflow: auto, so long lines will not overflow, a scrollbar will appear
 * Delete Categories when we delete CFVs
   We used to leave orphaned Attributes after a CustomFieldValue
   was deleted.  Make sure we remove cruft from the Attributes table.
 * reconnect after inserting test data, we can loose connection
 * add OnCreate for EditCustomFields: sometimes we have $TicketObj->Id but we still want to create ticket, e.g. when splitting ticket
 * add empty rows only when we group only by Status, otherwise
     this code breaks table
 * Avoid corruping NamePrefix when passed as an argument
 * fix groupping by multiple fields in reports, first attempt was incorrect
 * Fix from youam on IRC for a 0-11/1-12 month mismatch
 * fix all_matches array in make clicky actions
   we have to build this array later when we re-match against particular
   regular expressions so we can capture groups from this regexp only
 * don't escape the html that sets wrap on the textarea
   Contributed by Bastian Blank and brought to our attention
   by the debian maintainers
 * Loosen up the regex that looks for signatures
   FCKEDitor appears to have stopped wrapping our signature-only messages
   in <p> tags and they weren't being detected as "empty" correctly.
 * replace OriginalHeaders with EncodedHeaders
 * use Encode to get canonic IANA name of an encoding
 * alias is required when we build report by dates
   For example we have Created in many tables, using it without alias
   is ambiguose. Thanks to Chris Loos for reporting.
 * Default to 0 correctly for each freeform CF input box
 * Improve default=0 handling for multi-freeform too
 * use byte length when choose between Content and LargeContent
   DBIx::SB truncate data using bytes (even if DB supports characters),
   so 255 is length in bytes and we have to use the same algorithm in RT.
 * Fix ticket creation to accept custom fields with value "0"
 * use strict in upgrade subs, fix varaible typo
 * it should be "@xxx = map ..." instead of "@xxx, map"
 * Fix russian quant logic, thanks to Max Kosmach
 * fixes and more debug in message catalog extractor
   Report if there is a string we can not parse
   Fix loc_left_pair
 * in some cases MaxValues can be undef what means 0 - unlimitted
 * fix regression in performace of searches by Owner.x
   When x is id or Name and operator is not range op then
   tickets should be searched using main table(tickets) instead
   of using long joins via CGM tables
 * Validate transaction customfields on comment/respond/resolve (closes: #13799)
 * Revert the part of 0d14f4e5a6a36597300559b8efe1716989cae61d that breaks web ticket creation with non-ascii subjects (see: #13278).
   We still have to fix t/web/rest-non-ascii-subject.t.
 * we must escape content of a CF
 * encode content and set charset when we build MIME::Entity
 * fix the z-index bug in ie7
 * fix the bug that "all values in the category drop down are displayed even a category is selected" on non-firefox browsers
 * don't fetch defaults from TOP level arguments
   when you first time see Modify.html it has no CF values,
   you submit a change of a CF, scrips are fired and change
   other CFs, but you see nothing. This happened because
   of such defaulting, TOP level arguments are filled with
   old values of the CFs
 * init handler later otherwise it may failure plugins loading
 * Quiet down an error that makes the test suite go crazy
 * Use Test::More instead of RT::Test

       RT::Test clobbers database settings, and shredder really needs to
       use SQLite. In the future we may be more clever with making RT::Test
       pay attention to the test's database wishes.
 * Fixed a messed up migration to RT::Test
 * Misordering from RT::Test run
 * On expiry, actually delete the session rather than just autologout
 * Fix return value in case there is no need to upgrade subject tags scrips, so next things can be imported/created (closes: #13612)
 * Fix: shredder NoStorage error message display escaped html
 * Run the Config checks in standalone too
 * Fix "whitespace" check in regex
 * show "403: Forbidden" under /Admin/ when user has no right
   This is controlled by ShowConfigTab right. Add tests for
   this right.
 * don't show link to admin user if the current user has no ShowConfigTab
 * Fix loc() calls so errors are less explodey
 * fix small memory leak in the Query Builder
 * last_ticket in RT::Test
 * Set RT_SITE_CONFIG env var for mod_perl tests so it uses the right
   configuration file and so ... the right db_name
 * Fix capturing group in regex
 * Whitespace fixes
   Align tabs, and use space instead of tags in echo (otherwise copy-and-paste in terminals can fail)
 * Fix rollup() function to always generate valid ids
   Occasionally an id would contain = and this would break titlebox rollups
   when revisiting a ticket display page
 * fix memory leaks
   Caused by requirement to manually destroy HTML::TreeBuilder
 * Convert to the cldr methods for LocalizedDateTime
   DateTime::Locale 0.44 declared the strftime methods deprecated
   but there is a bug in 0.44 in the cldr->strftime conversion

 * fix doc
 * Add some documentation
 * adjust doc a little
 * split ForwardTransaction into ForwardTicket and SendForward
 * Clarify ForwardTicket's documentation
 * fix doc typo
 * Fix name of method in POD
 * Doc consistency fixes
 * Content and typo fix for Comment method

   The POD for the "Comment" method in RT::Ticket_Overlay incorrectly
   states that it takes a Hashref. The Comment method takes a Hash.
 * Describe upgrade process for hierarchical CFs

 * add bootstrap_config function
   get rid of $existing_server and RT_TEST_SERVER
 * Highlight "today" in calendar popup (closes: #12918).
 * implement bootstrap_plugins so plugins' tests can better overload 
 * add request_path to the RT's mason request sub-class
 * add SetupGroupings method in RT::Report::Tickets class
     to avoid code duplication and extend to make it possible
     to group by multiple columns
 * Added a list of other folks who've been CCed on this ticket to the 'addwatchers' page
 * Make the "Input must match" CF messages cssable
 * AdminCcs should get attachments on Comments
 * watchers of deleted tickets could be shredded when no_tickets=1
   This is questionable, but may be there is a reason why these deleted
   tickets are still there. Document it very precisly. Clarify other
   questionable parts.
 * add option member_of in the Users shredder plugin
 * register forward in actions
 * get rid of PrincipalObj call where it's possible before calling HasMember
   PrincipalObj can generate a SQL query when HasMember works just fine
   with principal's id.
 * Allow ShowCustomFields to be called with a CustomFields object
 * Allow you to turn off the table wrapping the Custom Field display
 * Give Transactions ACLEquivalenceObjects
   This only works for Ticket Transaction Custom fields and returns
   the Ticket and the Queue so people who are Requestors of a Ticket
   can see Transaction Custom Fields.
 * add new classification of a SQL operator
   In some cases we need to know is operator is a range one: >, <, >= or <=.
 * add #loc things in the config
 * Add BasedOn attribute to CustomFields
 * Admin UI for chained custom fields
 * Support for pre_separator
 * add PlainTextMono option
 * make it possible to use Web* in LinkValueTo
   For self-referencing linking of CF values it's important to be able
   to use __WebPath__ in the template
 * add Init callback
 * Display for chained custom fields
 * add ProcessColumnMapValue function
 * allow sorting by CFs by clicking on header
 * Add upgrade script
 * add PlainTextWhiteSpace option
 * Smash PlainTextWhiteSpace into PlainTextMono
   Most people are going to want either true <pre> blocks
   or pre blocks that wrap (which PlainTextMono does).
 * apply batched scrips manually on modify
   1) as custom fields have context so the objects can hold reference
   to a ticket. In this case batch is not applied by undefining
   2) on display.html we don't need this as we use redirect
 * implement PossibleCustomFields using Parse::BooleanLogic
 * config for testing RT with apache 2.2 and mod_perl
 * refactor ::Test so we can start more servers, for example apache
   now we can start apache + mod_perl, but we can not stop it
   properly, yet. other servers and configurations is easy to
 * We've had an API for getting writable attributes on a record for years.
   let's use it
 * show custom fields on user's preferences page
 * make it possible to really run tests under mod_perl
 * Use the user's search preferences for number of dashboard rows
 * Allow templates test configurations to have multiple patterns per line
 * Add support for fastcgi tests
 * Apache tests: allow to specify httpd server root has envvar (HTTPD_ROOT)
   (usefull under debian where apache is compiled with an empty server_root)
 * Split forwarding templates
   Forward - for transactions
   Forward Ticket - for whole tickets
 * Add the Forward Ticket template on upgrade

 * Typo.
 * Fix display problem with non ascii headers in forwarded emails.
    We forward OriginalContent, which uses OriginalEncoding, but we forward Headers
    for this content as recorded by RT i.e. always using UTF-8. If content is text
    and uses different encoding than UTF-8, display in MUA is broken.
    So this patch encode headers as RFC 2047 to make sure MUA can read them.
 * Remove useless file (only Helpers/CalPopup.html is used).
 * tweak the strategy of finding data/gnupg/keys dir
 * tiny fix
 * tiny clean
 * don't print from handle on insert into DB, we can mess up TAP parser
 * update tests, mostly use RT::Test tests => ... to replace Test::More test => ...
 * remove extra ;
 * miner tests fix
 * warning fix
 * we should give test script a chance to plan tests by itself even after use RT::Test: use RT::Test tests => 'no_declare' will do this
 * pass id around on paging
 * use $m->request_path instead of $m->request_comp->path
 * move handling of HomeRefreshInterval from index.html to autohandler
 * Pass to Header the value of Refresh during dashboard render
 * Collect the value of HomeRefreshInterval and stick it into the session
 * Revert "Collect the value of HomeRefreshInterval and stick it into the session"
   Ruslan already improved this to happen for all pages.
 * Check config for refresh interval
 * ignore things generated after running configure
 * Typo in a config file
 * Ignore t/data/gnupg/keyrings/random_seed
 * Add dashboard ID as a comment
 * Minor typo fix
 * IE6 stylesheet fix for closed titleboxes from Eynat Nirmishor
 * Spell check
 * Display username in user-preferred format in ShowTransaction
       Patch by Guy Antony Halse [rt3.fsck.com #13705]
 * use Encode to find IANA name in Ticket/Attachment/dhandler
 * use EncodedHeaders when show an attachment with headers
 * factor out EncodeToMIME from SendEmail action into RT::Interface::Email
 * $foo =~ '^new$' is pretty ugly, replace with $foo eq 'new'
 * ContentAsMIME into transactions
 * limit when user has no rights
 * heh, in RT::I::Email everything else is a function
 * change web ui according to new API
 * update initial data
 * delete Privileged check from ShowUserConcise
   This check can cause at least two SQL queries what is not desirable
   in such often called component
 * POD whitespace fixes
 * Tweaks to Forward template
   Improve flow of the sentence and fix a spacing issue when forwarding
   a transaction
 * stick to one join when range operators are used on CFs
   CF.X > 'A' AND CF.X < 'B' should use one join
 * change layout a little bit to make loc_pair parsable
 * re-extract message catalogs
 * Ignore some RT4 junk
 * refactor schema intialization for tests
   some extensions may not have schema, ACLs or data, avoid errors
   and some annoying warnings
 * Specifying the width means we truncate values
   Not specifying a width seems to work on Safari, FF, IE(678).
   We end up with an "appropriately large" dropdown
 * Make rt-test-dependencies easier to cut and paste.
   Submitted by: Leon Brocard
 * Minor indent fixups
 * switch over ProcessColumnMapValue in important places
 * merge together repeated code, handle empty column better
   Just merge allowed qualifiers together in one regexp.
   When column was empty we returned '____' instead of empty
 * fix some typos I made during implementing sorting by CF
 * Remove hint from categories, caused by copy-and-paste mistake
 * Unify codepaths for setting BasedOn
 * add 'make snapshot' target
 * Shorten hash in snapshot, and refactor pathname out
 * fix CF sorting by clicking on header
   Last argument is subkey (CF name) when first one is full specification
 * Allow hiding the Edit link in ShowSearch
 * Don't show edit links for searches in mailed dashboards
 * don't tie Query Builder's css to the comp
   Query builder should be embedable and RTIR actually
   embeds it, but with old css we have to copy styles
   multiple times in RTIR
 * Ignore site_config.yml from RT4
 * refactor ParseFormat
   * allow users to define leading attribute. When a column consist of
     multiple properties of a record then user can use attribute
     to choose sorting by and other properties
   * don't set title if it's not defined using /TITLE:..., so later
     we can distinguish different situations
   * define last_attribute
 * fix defining colspan in format
   space was never added right before colspan attribute
 * refactor the way we render title of columns
   if title parsed from format is not defined only then we
   use column map to generate title
 * refactor rows rendering in result sets, return back performance
   * if align, style or span is not set via format string only then
     we lookup in column map and only once using attribute or
   * use column map cache we have
 * fix some typos in recent changes
 * BasedOnObj can return undef
 * grep unique values when displaying columns selector
   When a setup has multiple CFs with the same name, we
   should show only one.
 * localize $@ as we don't re-throw error and log instead
 * check argument, helps debug problems
 * disable  cf values-complete so it will not submit
 * typo fix
 * show cf values-complete only if we have categories
 * Use `git describe --tags` as the name of the snapshot
 * fix missing comma
 * Make this a more comprehensible description
 * fix newline and nbsp in format strings
 * Use proper label for submit button (update/create) for queue level template creations.
 * Refactor to not use /Elements/EditCustomField, but save O(n) queries
 * typo fix
 * Net::Server includes Net::Server::PreFork
 * pass more data into a callback
 * allow developers to manually apply scrips batch staged
   In some case we can not track all references to a ticket,
   but really want to apply batched scrips
 * improve performance of Results.tsv
 * delete rt- prefix from snapshots as it's already there
 * process web server config within configure
 * don't sort values as we stack them differently anyway
 * use explicit batch application in more modify pages
 * typo fix
 * Remove duplicate test plans
 * Working to refactor the autohandler to be more maintainable
 * Test fix for shredder
 * warnings avoidance in LinearEscalate.pm
 * Move a "deleted this record" notification from warning to info
 * Quiet down some warnings in TXNBatch processing
 * drop a warning about rights that should only be hit in dev down from crit to error
 * unfolding lines for ease of refactoring
 * Extract the logic for "show the page the user requested" out into its own function in the Interface library
 * Tidying
 * extract noauth page rendering to a function
 * Extract out the installmode dispatch code into Interface/Web.pm
 * whitespace
 * Start specifying exact page on all the autohandler callbacks so we can safely move them
 * removed inappropriate diag output
 * Extract the "ExternalAuth" part of the autohandler into a function
 * remove whitespace
 * Extract Password authentication from the autohandler
 * Autohandler reordering for sanity
 * remove a comment that was no longer accurate
 * Moved the meat of SetupSessionCookie into the libraries
 * Split loading and saving of session cookies in two
 * Now we have na InstantiateNewSession function
 * UTF8 filtering now operates directly on the reference
 * remove an obvious comment
 * Typo fix for ruslan
 * Move most of the autohandler logic into Interface::Web
 * retab, refactor, no functionality changes
 * SaveSessionCookie updated to SendSessionCookie
 * Fresh clean sessions at login
 * Perltidy
 * Refactor MaybeShowInstallModePage to bail early
 * Refactor MaybeShowNoAuthPage to bail early
 * Make indirect object notation die
 * After calling $m->comp in autohandler, we should always abort
 * Use _UserLoggedIn() abstraction in a couple more places
 * Move comment to appropriate place
 * Remove unreachable statement
 * Note unreachable codepath
 * Whitespace shifts
 * $m isn't defined here, use the full name
 * Revert "$m isn't defined here, use the full name"
   This reverts commit 6e1ef3b754af78f63c7ea1c2898b0dee59e661e7.
 * better fix for missing $m
 * Specify libpath so if you have an installed RT that loads plugins,
   recreating the database doesn't die
 * Remove checks for .svn dirs now that code is in git
 * Remove old and incorrect releng.cnf
 * Remove useless link to "man rt-mailgate" (closes: #13846)
 * Make ShowRequestor boxes use same fonts style/size for keys/values as other boxes (closes: #13698).
   (thanks to Christian Loos)
 * Ignore generated apache2.2+mod_perl conf file
 * Fix up broken test lines
 * Ignore  t/data/configs/apache2.2+mod_perl.conf
 * Revert "Ignore  t/data/configs/apache2.2+mod_perl.conf"
   This reverts commit 5b7b5d2d1f65e7d19c32fe6d4d72f57c20b4cbc4.
   Alex got to it first :)
 * Warn when people have a space in their Organization
 * Remove debugging statement
 * protect our exit code in END block before calling functions
 * Add information in shredder command line output about count of object that could be deleted
 * rearrange RT::Test a little
   we had find_executable that duplicates find_bin
 * use RT::Test->last_ticket
 * move functions around in RT::Test
 * Apache tests: better handle builtin modules, sometimes spelled with "mod_" prefix
 * Init $Handler after RT::Init in mason_handler scripts as in webmux.pl $Handler
   init is now in handler method which is called only under mod_perl (closes: #13920)
 * tests, check that API results match UI
 * there is no point in aborting request at the bottom of Footer
 * Allow callers to provide a currentuser or user to RT::Test->last_ticket
 * Rename this so we can substitute in proper libs and perl
 * configurify the cf split upgrade script
   Add in the correct perl and lib paths
 * ignore generated conf file
 * Allow specific CFs to be skipped
 * When downloading message with headers, try to add charset information to
    content_type so the raw message is displayed correctly in browser.
 * Properly MIME encode (RFC 2047) headers of forwarded messages, so for example
    non ascii subject are properly displayed in MUA.
 * Fix encoding differences between attachment content and headers when
    downloading attachments with headers.
    - $AttachmentsObj->Headers is always UTF-8 as it's converted when saved to DB,
      and it has utf8 flag on
    - $AttachmentsObj->OriginalContent is in the original encoding and has utf8
      flag off
    so this patch adds an Attachment::OriginalHeaders method.
 * Add new WebExternalAuthContinuous option and restore previous behavior
 * Fold in changes from launchpad and re-extract message catalog
 * typo
 * TODO this test until we have a solution
 * make dependency on Parse::BooleanLogic optional
 * t/web/config_tab_right.t will fail without the newest HSSM
 * fix web/basic.t test
 * missing ; breaks the RT_SiteConfig generated by this test
 * Document bugfixes in the LocalizedDateTime API for upgraders
 * Bump version to 3.8.6rc1
 * Fix dependency
   (cherry picked from commit e59e81974bfe584db371e166f0f59e5949bb40c2)

 * fix localization of pie charts
   labels for pie charts were not properly localized because of dash
 * updates for Ru translation from Max Kosmach
 * ru.po and rt.pot fixes from Max Kosmach
 * add TimeLeftAsString to be consistent with other time fields
   Thanks to Max Kosmach for the patch

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.bestpractical.com/pipermail/rt-devel/attachments/20091020/879be783/attachment-0001.pgp 
-------------- next part --------------
RT-Announce mailing list
RT-Announce at lists.bestpractical.com

More information about the Rt-devel mailing list