Edgewall Software

Changes between Version 16 and Version 17 of TracDev/ApiChanges/1.1.3


Ignore:
Timestamp:
Apr 19, 2015, 7:43:11 PM (9 years ago)
Author:
Peter Suter
Comment:

Redirect to 1.1

Legend:

Unmodified
Added
Removed
Modified
  • TracDev/ApiChanges/1.1.3

    v16 v17  
    1 {{{#!div style="float: right; margin: 0 1em"
    2 ← [../1.1.2] | [../1.1.4] →
    3 }}}
    4 = Documenting API changes since 1.1.2 =
    5 
    6 {{{#!box info
    7 The next stable version of Trac will be named 1.2 and will contain the cumulative changes made in the successive 1.1.x releases.
    8 
    9 These notes reflect the current status for [milestone:1.1.3], in [source:trunk].
    10 
    11 Proposed changes are prefixed with an OPEN mark and the //paragraph is written in italics.//
    12 }}}
    13 
    14 [[PageOutline(2-4,Summary,inline)]]
    15 
    16 
    17 == Prerequisites ==
    18 
    19 **Only Python versions 2.6 and 2.7 are supported.**
    20 
    21 The following language feature introduced in Python 2.6 can now be used and the related clean-ups can be done:
    22  - use string [http://docs.python.org/library/string.html#string-formatting format()], `print()`
    23  - `except Cls as val`
    24  - class decorators to avoid the `implements` hack?
    25  - `@prop.setter` / `@prop.deleter`
    26  - `namedtuple`s!
    27  - there's no longer need of `from __future__ import with_statement`
    28  - `next(iterator, [default])` to clean-up some unit tests
    29  - timeout in smtplib
    30 
    31 
    32 === Modified Dependencies ===
    33 
    34 ==== jQuery and jQuery UI (bundled)
    35 
    36 The bundled version of [http://jquery.com jQuery] will be **1.9 / 2.0** instead of 1.8.3 in Trac 1.1.1.
    37 
    38 See jQuery release notes for the corresponding major updates:
    39  - http://blog.jquery.com/2013/01/15/jquery-1-9-final-jquery-2-0-beta-migrate-final-released/
    40 
    41 OPEN //
    42 The bundled version of the full minified [http://jqueryui.com jQuery UI] package will be [http://jqueryui.com/docs/Changelog/1.10.1 1.10.1]. See #11019.
    43 //
    44 
    45 ==== Babel (optional)
    46 
    47 The internationalization support (i18) for Trac is depending on [http://babel.edgewall.org/ Babel], version 1.0. (#10882) TODO
    48 
    49 //Babel 0.9.6 is still supported.//
    50 
    51 ==== Genshi (mandatory)
    52 
    53 OPEN
    54 // '''Genshi 0.7''' //
    55 
    56 //Genshi 0.6.x is still supported.//
    57 
    58 
    59 === Deprecated Modules Removed
    60 
    61 TODO Remove support for `mod_python` (see TracModPython) ... or maybe not. It seems the project is alive (comment:34:ticket:11605).
    62 
    63 Removed Enscript, SilverCity and PHP renderers.
    64 
    65 === New Dependencies ===
    66 
    67 None!
    68 
    69 
    70 == Detailed List of Developer Visible Changes #list
    71 
    72 [[TicketQuery(milestone=1.1.3,status=closed,apichanges!=,col=summary,rows=apichanges,group=component,format=table)]]
    73 
    74 == Other Modifications made to the 1.0 API ==
    75 
    76 Take the //will be removed in version 1.1.1// comments in the code seriously. The earlier the planned API changes in 1.1.x, the better (gives more time to plugin authors to adapt). TODO
    77 
    78 === Modified Interfaces
    79 ==== `IWikiChangeListener`            ^[source:trunk/trac/wiki/api.py@13198:53#L32 (1.1.3)] [source:branches/1.0-stable/trac/wiki/api.py@11490#L33 (1.0)]^ ==== #IWikiChangeListener
    80 
    81 Wiki page version comments can now be edited, so `wiki_page_comment_modified(page, old_comment)` has been added to allow plugins to be notified of this.
    82 
    83 ==== `IPreferencePanelProvider`            ^[source:trunk/trac/prefs/api.py@13510:23#L17 (1.1.3)] [source:branches/1.0-stable/trac/prefs/api.py@11490#L17 (1.0)]^ ==== #IPreferencePanelProvider
    84 
    85 [wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.prefs.api.IPreferencePanelProvider IPreferencePanelProvider] implementations can now provide child panels that appear as sections appended to other panels ([wiki:TracDev/Proposals/AdvancedNotification#Modularpreferencepages proposal]). This allows plugins to extend existing preference panels.
    86 
    87 === New Interfaces ===
    88 ==== `trac.notification.api.INotificationDistributor` ^[source:trunk/trac/notification/api.py@13454#L29 (1.1.3)]^ ==== #INotificationDistributor
    89 
    90 A new [wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.notification.api.INotificationDistributor INotificationDistributor] interface was added ([wiki:TracDev/Proposals/AdvancedNotification#ExtensionAPIformaildistribution proposal]). It allows plugins to distribute notifications on different channels (e.g. over XMPP).
    91 
    92 ==== `trac.notification.api.INotificationFormatter` ^[source:trunk/trac/notification/api.py@13454#L46 (1.1.3)]^ ==== #INotificationFormatter
    93 
    94 A new [wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.notification.api.INotificationFormatter INotificationFormatter] interface was added ([wiki:TracDev/Proposals/AdvancedNotification#ExtensionAPIformaildistribution proposal]). It allows plugins to format notifications (e.g. to HTML).
    95 
    96 ==== `trac.notification.api.INotificationSubscriber` ^[source:trunk/trac/notification/api.py@13469#L70 (1.1.3)]^ ==== #INotificationSubscriber
    97 
    98 A new [wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.notification.api.INotificationSubscriber INotificationSubscriber] interface was added ([wiki:TracDev/Proposals/AdvancedNotification#ExtensionAPIforsubscriptions proposal]). It allows plugins to provide more subscription preferences (e.g. to send or suppress notifications under special conditions).
    99 
    100 ==== `trac.notification.api.IEmailAddressResolver` ^[source:trunk/trac/notification/api.py@13454#L67 (1.1.3)]^ ==== #IEmailAddressResolver
    101 
    102 A new [wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.notification.api.IEmailAddressResolver IEmailAddressResolver] interface was added ([wiki:TracDev/Proposals/AdvancedNotification#ExtensionAPIformaildistribution proposal]). It allows plugins to retrieve email addresses from users (e.g. from LDAP).
    103 
    104 ==== `trac.notification.api.IEmailDecorator` ^[source:trunk/trac/notification/api.py@13454#L79 (1.1.3)]^ ==== #IEmailDecorator
    105 
    106 A new [wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.notification.api.IEmailDecorator IEmailDecorator] interface was added ([wiki:TracDev/Proposals/AdvancedNotification#ExtensionAPIformaildistribution proposal]). It allows plugins to add or tweak email headers.
    107 
    108 === Notification API Changes ===
    109 
    110 To take advantage of the new notification related interfaces, code that sends notifications must use the new [wiki:TracDev/NotificationApi Notification API] instead of the `NotifyEmail` class hierarchy. (See [wiki:TracDev/Proposals/AdvancedNotification#ExtensionAPIformaildistribution proposal])
    111 
    112 === Uncategorized Changes
    113 
    114 TODO: Remove deprecated compatibility code for InterTrac links: [browser:/trunk/trac/wiki/formatter.py@13050:703-712#L696], and remove documentation:
    115  * InterWiki page
    116  * [browser:/trunk/trac/wiki/intertrac.py@13050:50-60#L30]
    117 
    118 Removed the deprecated `authname` parameter from `Environment.get_repository()`.
    119 
    120 TODO: Log warnings for deprecated functions and methods (comment:26:ticket:11605)
    121 
    122 === Database API Changes ===
    123 
    124 Methods have been added to `DatabaseManager` class for settings and retrieving the database version for Trac and plugins: `set_database_version` and `get_database_version` (#11859).
    125 
    126 == New in the 1.1.3 API ==
    127 
    128 Be sure to have a look at the new ApiDocs ([http://www.edgewall.org/docs/trac-trunk/html/ for latest trunk]).
    129 
    130 TODO: Remove //Since// info from docstrings for Trac < 0.12.
    131 
    132 //This is a work in progress - coverage is still not yet complete.//
    133 
    134 
    135 
    136 {{{#!comment
    137 === New Classes ===
    138 ==== `trac.x.y.ClassName` ^[source:trunk/trac/x/y.py@#Lnum (1.0)]^ ==== #ClassName
    139 
    140 ...
    141 
    142 === Other news ===
    143 
    144 }}}
     1See [../1.1]