[Rt-devel] RT 3.7.80 - First RT 3.8 beta release

Jesse Vincent jesse at bestpractical.com
Thu Mar 6 13:57:16 EST 2008


Ruslan has rolled the tarball for the first Beta release of RT 3.8.  
The changelog appears below.

Most of the infrastructure-level changes we expect to make for RT 3.8  
have been rolled in. Right now, we're fixing bugs, cleaning things up  
and starting to integrate a number of RT extensions into the core  
release.

RT 3.7.80 isn't recommended for production use, but feedback is  
appreciated.

Best,
Jesse


Config:
     * IMPORTANT: New way to defined hash and array options using Set()
       function, old style "@XXX = (...) unless @XXX;" may result in  
bugs higly
       undesireble, read also UPGRADING
     * New RT::Config class to interact with configs, load additional  
files and
       access metadata
     * new API to get and set config options
     * old read access is backward comaptible
     * now we search for configs in local/etc
     * added base code to allow users to change vairous options via  
the web UI,
       there is already some per user options available and more will  
be added
       later.

General UI:
     * Messages forwarding from ticket history to external persons.
     * Per-user options:
     ** UI layout
     ** hight of message boxes
     ** Date/Time display format
     ** Summary rows
     * Show user entry using /Elements/ShowUser component so it's easier
       to customize and make things consistent everywhere in the UI
     ** switch to Mail::Address for formatting, so result would be a  
correct
        email string to copy and paste into other places.
     ** show as "Real Name" <email at address> (login) by default
     ** drop some parts if those are duplications
     * Allow to add/delete users to/from groups right from user's  
admin pages
     * Add a 404 page to RT

Tickets:
     * Users may choose order of transactions in tickets' history
     * new link that allow users to download attachmentes
       with MIME headers
     * add Forward action
     * Inline any size of text if $MaxInlineBody option is undefined  
or 0
     * on ticket create if status not equal to new and started date
       is not defined then we set it to now to be consistent with
       logic in SetStatus

Date/Time:
     * new config option $DateTimeFormat
     * multiple output formats, available as per-user option
     * better support for timezones, available as per-user option
     * many new tests of the RT::Date API
     * fix time units handling, '1/8' didn't work

Custom fields:
     * Run-time generated custom field values.
     * New type of CustomFields with autocompletion
     * Pattern column is now longer as some regular expressions
       can be really lenght.
     * Admin UI: allow to search disabled fields
     * Admin UI: type selector save states between calls
     * Fix a bug in CustomField->Create where assigned Queue is not  
properly
       associated with the newly created CF
     * merged duplicated CF handling code

Query Builder:
     * Fixed "is not linked to ticket #N" search
     * Added the following TicketSQL fields: Linked, LinkedTo and  
LinkedFrom.
       No integration into web UI, however these mainly required in  
scrips
       and/or custom code.
     * Allow __WebPath__,__WebBaseURL__ and __WebURL__ in format strings
     * Embedable Query Builder.
     * html/Search/Elements/ConditionRow - component that outputs one  
criteria
       row, so it's possible to disable some options or add new one.
     * Generic TicketSQL parser, so we have it in one place instead
       of several places.
     * Many fixes in corner cases of building query tree

Scrips:
     * New conditions: CloseTicket and ReopenTicket
     * Stage field didn't work during creation of a scrip in the WebUI
     * Fix scrips in TransactionBatch stage
     * Run scrips on both ends of a link by default

Shredder:
     * The shredder is in core with new features. Read UPGRADING.
     * New option 'no_tickets' in RT::Shredder::Plugin::Users
     * Several ways to dump deleted objects
     * add support for %t template in file names
     * Allow user to download dump via browser right after deletion
     * ::Plugin::Tickets
     ** replace old search options with 'query' so you can use TicketSQL
     ** add 'with_linked' option
     ** add 'apply_query_to_linked' option

GnuPG integration:
     * verification, decryption, signing and encrypting
     * per queue options
     * transparent support of keyservers
     * re-verifivation after importing public key
     * integration with gpg-agent to avoid passphraseless keys or
       passphrases in the config
     * per user private keys
     * read also `perldoc lib/RT/Crypt/GnuPG.pm`

Extending RT and local customization:
     * Generilized listing of collections, /Elements/CollectionList is
       a replacement for TicketList that add similar features we could  
use
       for tickets for other collections, like Queues, Users, Scrips,  
etc.
       So it's possible to use the following things:
     ** display formats
     ** paging
     ** sorting
     ** column maps
     * Several error messages we send to users converted into templates.
     * Make clicky feature (read docs/extending_clickable_links.pod).
     * It's possible pass any set of arguments into templates.
     * Generic API to send emails related to tickets and not.
     * New generic UI widgets for selects, input and booleans.
     * Column maps are availble for all objects.
     * Generic support of __key.{subkey}__ in format strings.
     * Support of __CheckBox.{Name}__ and __RadioButton.{Name}__

3.7+ extensions:
     * Tickets advisory locking
     * Tickets aging

Sessions handling:
     * RT::Interface::Web::Session - generic object to handle all
       session backends.
     * new AutoLogoff system-wide option
     * new sbin/rt-clean-sessions script to cleanup unused sessions

Database:
     * IMPORTANT: MySQL has new schema for versions higher or equal to  
4.1.0
     * Pattern column for custom fields is now longer as some regular  
expressions
       can be really lenghty.
     * New indexes that proved its effectivness

rt-setup-database
     * Complete rewrite.
     * All functions have been moved into RT::Handle class, so it's  
possible to
       use features of this util from custom code
     * It's possible to define different schemas for different  
versions of
       the same RDBMS. Read also UPGRADING.mysql
     * print information about DB we're going to act on
     * allow users and/or extension to override DB properties via ENV
     * Many extensions to format of data files:
     ** allow to defin @Initial/@Final list of sub references
     ** allow to create groups and add them as members to other groups
     ** allow to add users into groups
     ** allow to create scrips on multiple queues at once
     ** enable custom fields by default
     ** allow to define ACLs for CFs
     ** allow to apply a CF to queue(s) instead of global

rt-mailgate
     * don't die when --url is not specified, but print error and exit,
       user is not interested in information about line of the code.
     * add value of $ENV{EXTENSION} to message header
       in the 'X-RT-Mail-Extension' field. And pass through non standard
       --extension values in this field too.
     * better errors handling

Performance and memory footprint:
     * Constant memory usage in rt-mailgate.
     * Lower memory footprint when images are proccessed by mason.
     * don't copy text in EncodeUTF8
     * /Elements/Callback has been replaced with $m->callback call.
       The element still works, but issue a warning. New function is
       much faster then calling a component.
     * add CallbackOnce option, to allow run callbacks only once
     * init html scrubber object only once
     * run column map component only once for the first
       row of the collection
     * Record::LoadByCols: don't create local copy of arguments unles
       DB is case sensetive even if it's sensetive create only one
       copy and change inplace
     * Replaced in many places repeated heavy calls in one block
       with one call
     * run callbacks and output text once per paragraph
       instead of per line, speed up displaying of tickets greatly
       with many text parts
     * Pass IDs of objects where it's possible instead of other unique
       fields to hit chache more often and/or avoid request to DB

HTML cleanups, XHTML compatibility, layout chnages:
     * many missing closing tags have been returned to its place
     * added quotes around attributes for all tags
     * closed tags br, img and input tags with ' />' syntax
     * downcase tags and attributes names

Java Script:
     * deleted duplicate .js files
     * new classes management utilities
     * reviewed visibility utilities, now we use CSS to hide/show  
things instead
       playing games with DOM what is wrong
     * Set/clear all checkboxes features now work for one group. In  
previouse
       versions it's been applied to all checkboxes on the page.

Other changes and code cleanups:
     * Deprecated API have been dropped.
     * don't return empty strings instead of undef so NULL can be
       distinguished from empty strings
     * Cleand up a lot of errorless uninit warnings
     * no more perl 5.6.x compatible code
     * converted all named functions in mason components into
       anon functions, as the former is incorrect and may result
       in problems when different components define the same function
     * never call 'exit', because it may hide errors
     * log errors and rollback transactions only when it's possible
     * RT::Transaction: refactored rights checks into CurrentUserCanSee
     * fixed and reworked sending email via SMTP server
     * don't add empty $args{'Body'} to MIME as ->make_singlepart  
method doesn't
       catch this case and we create useless empty attachments and too  
nested
       entities. Now we do the right thing in all cases: text body,  
file upload,
       body+upload or none of those at all.
     * add support for $LogStackTraces = 'error' and other levels,
       so it possible to log stack traces only starting from some
       level
     * log stacktraces into syslog too as many users use default
       setup which doesn't log to file and for production uses syslog
       is prefered.

Test suite:
     * Reworked test suite, no more tests inlined in the code
       and other improvements.
     * initial parallel test support for RT::Test.
     * test syntax of comps with a mason compiler


-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : http://lists.bestpractical.com/pipermail/rt-devel/attachments/20080306/cc2d1d19/attachment.pgp 


More information about the Rt-devel mailing list