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 | | }}} |
| 1 | See [../1.1] |