[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