Edgewall Software

Changes between Initial Version and Version 1 of TracDev/ApiChanges/1.1.4


Ignore:
Timestamp:
Jan 18, 2015, 7:16:57 AM (9 years ago)
Author:
Ryan J Ollos
Comment:

Copied from wiki:TracDev/ApiChanges/1.1.3@16.

Legend:

Unmodified
Added
Removed
Modified
  • TracDev/ApiChanges/1.1.4

    v1 v1  
     1{{{#!div style="float: right; margin: 0 1em"
     2← [../1.1.3] | [../1.1.5] →
     3}}}
     4= Documenting API changes since 1.1.3 =
     5
     6{{{#!box info
     7The 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
     9These notes reflect the current status for [milestone:1.1.3], in [source:trunk].
     10
     11Proposed 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
     21The 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
     36The bundled version of [http://jquery.com jQuery] will be **1.9 / 2.0** instead of 1.8.3 in Trac 1.1.1.
     37
     38See 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
     41OPEN //
     42The 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
     47The 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
     53OPEN
     54// '''Genshi 0.7''' //
     55
     56//Genshi 0.6.x is still supported.//
     57
     58
     59=== Deprecated Modules Removed
     60
     61TODO Remove support for `mod_python` (see TracModPython) ... or maybe not. It seems the project is alive (comment:34:ticket:11605).
     62
     63Removed Enscript, SilverCity and PHP renderers.
     64
     65=== New Dependencies ===
     66
     67None!
     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
     76Take 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
     81Wiki 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
     90A 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
     94A 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
     98A 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
     102A 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
     106A 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
     110To 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
     114TODO: 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
     118Removed the deprecated `authname` parameter from `Environment.get_repository()`.
     119
     120TODO: Log warnings for deprecated functions and methods (comment:26:ticket:11605)
     121
     122=== Database API Changes ===
     123
     124Methods 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.4 API ==
     127
     128Be sure to have a look at the new ApiDocs ([http://www.edgewall.org/docs/trac-trunk/html/ for latest trunk]).
     129
     130TODO: 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}}}