TracDev/ApiChanges/1.0
1.0 is the current stable version of Trac
These notes reflect the final status.
Summary
Prerequisites
Python 2.4 support has been dropped. Python versions 2.5, 2.6 and 2.7 are supported.
Modified Dependencies
jQuery and jQuery UI (bundled)
The bundled version of jQuery is now 1.7.2 instead of 1.4.4 in Trac 0.12-stable.
See jQuery release notes for the corresponding major updates 1.5, 1.6 and 1.7.
The full minified jQuery UI package is now bundled with Trac. The version is 1.8.21 and includes a custom theme.
Babel (optional)
The internationalization support (i18) for Trac is depending on Babel, preferably version 0.9.6. The trunk version (1.0dev) should work as well.
Clearsilver (dropped)
Support for ClearSilver templates has been dropped. In case your plugin was still using .cs
templates, PortingFromClearSilverToGenshi is now mandatory.
Genshi (mandatory)
- Genshi 0.7dev changed to accepting
unicode
instances by default, rather than UTF-8 encoded regularstr
instances. Trac has been updated to override the default back to UTF-8 but plugins that access Genshi directly might raise an error:UnicodeError: source returned bytes, but no encoding specified
. - Genshi 0.6.x is still supported and will likely be a safer alternative. See #10126 for details.
Detailed List of Developer Visible Changes
Ticket | Summary |
---|---|
#6348 | Catch database exceptions in a backend neutral way |
API Changes |
|
#8575 | IntegrityError: duplicate key violates unique constraint |
API Changes |
|
#9842 | [PATCH] Make database connectors reusable |
API Changes |
|
Component: general (11 matches) |
|
Ticket | Summary |
#8036 | allow IPermissionRequestor to extend existing meta-permissions |
API Changes |
perm: Made meta-permissions cumulative, so e.g. |
#8695 | generate API documentation |
API Changes |
|
#9418 | Creating instances of Component class is unsafe in multi-thread |
API Changes |
Ensure that a |
#9536 | Remove Python 2.4 compatibility |
API Changes |
db API makeover by introducing context managers and a shortcut for query execution; see TracDev/DatabaseApi#Trac0.13API for details |
#9777 | New option for displaying absolute date/time in ticket |
API Changes |
Provide |
#9836 | Describe trac.ini sections in code |
API Changes |
config: Added the |
#9870 | Improve the cache subsystem |
API Changes |
It is now safe to inherit from classes having |
#10165 | Upgrade to jQuery 1.7.x |
API Changes |
Upgraded jQuery to 1.7.2. |
#10245 | jQuery UI integration |
API Changes |
trac.web.chrome: |
#10427 | trac.log: dead code - logger_factory() |
API Changes |
Removed obsolete |
#10644 | [PATCH] Allow microseconds in parse_date() input |
API Changes |
|
Component: i18n (2 matches) |
|
Ticket | Summary |
#10038 | Descriptions of wiki macros should be translated |
API Changes |
trac.wiki.api: |
#10717 | js: make it unnecessary to call babel.format explicitly |
API Changes |
babel.js: it's no longer necessary to call |
Component: rendering (2 matches) |
|
Ticket | Summary |
#9915 | Extend RST to support additional directive types |
API Changes |
Registered reStructuredText roles and directives can gain access to the Trac environment and rendering context corresponding to the docutils content being processed. |
#10538 | restructuredtext renderer confused by utf-8 BOM |
API Changes |
|
Component: roadmap (1 match) |
|
Ticket | Summary |
#2182 | configurable date and time formats |
API Changes |
|
Component: ticket system (2 matches) |
|
Ticket | Summary |
#9935 | [PATCH] Make req parameter to Query.execute() optional |
API Changes |
The req parameter to Query.execute() is no longer required. |
#10667 | Better HTML tag metadata in page output |
API Changes |
|
Component: version control (3 matches) |
|
Ticket | Summary |
#9607 | Rework branch labeling in the timeline |
API Changes |
versioncontrol: added |
#10208 | AuthzSourcePolicy does not conform to mod_authz_svn rules |
API Changes |
versioncontrol: use the requested |
#10712 | move svn support to tracopt |
API Changes |
Subversion specific code is now located in the |
Component: web frontend (2 matches) |
|
Ticket | Summary |
#7768 | add_script & add_stylesheet don't support external scripts |
API Changes |
trac.web.chrome: |
#7774 | Allow to set script charset in add_script |
API Changes |
chrome: |
Component: wiki system (1 match) |
|
Ticket | Summary |
#8137 | TracQuery count as part of a heading |
API Changes |
Added |
Database API Changes
Environment.get_db_cnx
is obsolete
Following the deprecation made in 0.12, using Environment.get_db_cnx
for obtaining a database connection is now considered obsolete and its use is heavily discouraged, as that method will be removed in Trac 1.1.
One should now only use the context managers for retrieving a database Connection in read or write mode.
- a read-only Connection can be used to form queries:
a
with env.db_query as db: ...
db
instance obtained the above way should only be used for executing SELECT queries - a writable Connection can be used to modify the database content in a transaction:
a
with env.db_transaction as db: ...
db
instance obtained the above way can be used to execute INSERT/UPDATE/DELETE queries; they will be committed when the last such automatic transaction in the control flow completes successfully. See DatabaseApi for the full details.
Environment.db_query()
and Environment.db_transaction()
(1.0)
The @with_transaction(env)
/ @env.with_transaction()
decorators introduced in 0.12 remain available, but they're now deprecated as well, as the with
syntax is the one to be used. Those decorators will likely be removed in Trac 1.1 as well.
See #8751 for details and related notes about get_db_cnx deprecation above.
New in the 1.0 API
Be sure to have a look at the new ApiDocs (Sphinx generated documentation for Trac 1.0).
This is a work in progress - coverage for 1.0 is not complete but will be extended in the 1.0-stable branch.