﻿ticket	summary	type	release	owner	status	created	modified	_description	_reporter
13515	"Owner is set to ""< default >"" if no owner field set when creating ticket"	defect	1.2	Ryan J Ollos	accepted	2018-12-30T15:10:40+01:00	2020-05-18T07:00:38+02:00	"Trac 1.2.3 + XmlRpcPlugin 1.1.7dev0.

According to TracTickets:

> `default_owner`: Name of the default owner. If set to the text `< default >` (the default value), the component owner is used.

But it will set owner to `< default >` if owner is not set."	Gea-Suan Lin
13142	Checkbox values are not correct parsed	defect	1.0	osimons	new	2017-04-07T11:49:56+02:00	2020-05-01T06:51:13+02:00	"=== Used Software: ===
Trac 1.0.13
Trac RPC 1.1.7.dev0
Eclipse Neon.3 with Mylyn

=== Problem ===
We have some custom ticket fields with type checkbox.
Trac uses the values 0 and 1 while saving such a field. With this values the web interface displays the html checkbox as unmarked or marked.
But if we save the ticket with Eclipse Mylyn the value is saved as 'true' or 'false'. The trac web interface doesn't understand this values, but Eclipse Mylyn.

So we can either always use Mylyn or the Web interface from trac but not both together.
"	Rochi
11799	Log messages when permission checks fail rather than traceback	enhancement		osimons	new	2014-05-29T15:57:17+02:00	2017-03-21T21:59:14+01:00	"Looking in the log files I see many entries like the following:
{{{
2014-05-28 12:13:22,695 Trac[web_ui] ERROR: RPC(XML-RPC) Error
Traceback (most recent call last):
  File ""build/bdist.linux-x86_64/egg/tracrpc/web_ui.py"", line 149, in _rpc_process
    req.perm.require('XML_RPC') # Need at least XML_RPC
  File ""/usr/local/python26_trac10/lib/python2.6/site-packages/Trac-1.0.1-py2.6.egg/trac/perm.py"", line 579, in require
    raise PermissionError(action, resource, self.env)
PermissionError
}}}

Web requests on the other hand are [t:browser:/tags/trac-1.0.1/trac/web/main.py@:251-252#L239 trapped] and [t:browser:/tags/trac-1.0.1/trac/web/main.py@:511#L508 logged]:
{{{
2014-05-28 17:01:26,569 Trac[main] WARNING: [12.234.78.2] HTTPForbidden: 403 Forbidden (WIKI_VIEW privileges are required to perform this operation on WikiStart. You don't have the required permissions.)
}}}

I'm wondering if we could trap and log !XmlRpc requests as warnings. I haven't done more than look at the code yet, but I could probably propose a patch.

See also #12408."	Ryan J Ollos
11311	Consistent XML and JSON RPC error codes	enhancement		osimons	new	2013-09-09T07:30:08+02:00	2013-09-11T08:56:14+02:00	"
Handling of (XML|JSON)-RPC error codes does not seem to be consistent. Everything is explained in [http://rpc.blood-hound.net/ticket/210 this ticket] . IMHO both protocols should be returning the same error codes , but I do not know whether this will cause any trouble regarding interoperability with external tools e.g. Mylyn ."	Olemis Lang
11050	An invalid XML character (Unicode: 0x1b) was found in the element content of the document.	defect	1.0	osimons	reopened	2013-05-03T13:54:53+02:00	2015-06-25T11:15:02+02:00	"There is a ticket which contains some Escape characters and when we try to get that ticket using API, it gives us error ""An invalid XML character (Unicode: 0x1b) was found in the element content of the document"".

As there are some invalid XML characters which parser can't parse, we suggest you to remove those before sending XML."	sanket.modi@…
10738	XmlRpcPlugin does not respect ITicketManipulators	enhancement	1.0	osimons	reopened	2012-12-30T10:37:56+01:00	2019-11-13T08:47:09+01:00	I have an ITicketManipulator to restrict ticket creation for a specific component but the JSON RPC interface skips past the ITicketManipulator.	Rob Emanuele
10052	Exception logging in XML-RPC and JSON-RPC is different	defect	0.12	osimons	new	2012-05-23T15:37:34+02:00	2012-05-24T10:24:15+02:00	"Exceptions raised in the XML-RPC component are logged in the send_rpc_error() method.
The corresponding method in the JSON-RPC method does not include any logging.

This means that tracebacks are shown to the user, but don't exist in the logs, which is an issue for debugging.

I've attached a patch which simply adds a log.exception call to the JSON-RPC send_rpc_error method."	Karl
8882	add support for comment management in xmlrpc plugin	enhancement	0.12	osimons	new	2011-06-10T18:14:18+02:00	2012-11-08T00:17:38+01:00	functions to create, update, get , delete comments for a given ticket 	anonymous
8666	Need a method to get the references (or called links) of  a ticket	enhancement	0.12	osimons	new	2011-04-04T03:32:14+02:00	2011-04-09T20:38:29+02:00	Tickets are usually organized in a hierarchy in software development, such as Requirement->Feature Story->Task. For a task ticket, I want to retrieve its parent feature story ticket. Currently there is no way to achieve this via XMLRPC API. 	sean
8644	Auth/privileges problems with XML-RPC	defect	0.12	osimons	new	2011-03-30T16:55:25+02:00	2018-03-05T06:51:45+01:00	"My user has the XML-RPC privilege set in TracAdmin, but it's unable to use the plugin.
I've tried using PHP (my original idea) and also followed the python example that is in the plugin page. No success, always the same error: ""XML_RPC privileges are required to perform this operation"".

My password is correct, but if I change the address to login/rpc or login/xmlrpc, or if I change the username/password to something wrong, it still gives me the privileges error.

How can I fix this problem? I'm somewhat lost =("	igorsantos07@…
6827	Implement some JSON-RPC (et al.?) extensions	enhancement	0.11	Olemis Lang	new	2010-03-18T21:38:24+01:00	2013-10-12T05:58:08+02:00	"
Implement the following useful JSON-RPC extensions :

  - Allow for cross-site requests in JSON-RPC by means of the 
    [http://tech.groups.yahoo.com/group/json-rpc/message/584 JSON-response-callback] 
    extension. 
  - Add support for the 
    [http://tech.groups.yahoo.com/group/json-rpc/message/585 JSON-omit-response-wrapper] 
    server extension to allow for the ''Procedure Return object wrapper'' to be omitted so 
    that the JSON result data alone is returned
"	Olemis Lang
6826	Add support for further datetime formats in JSON-RPC (et al. ?)	enhancement	0.12	Olemis Lang	new	2010-03-18T21:28:09+01:00	2010-03-18T23:51:51+01:00	"
It would be nice to add support for (at least) the following time formats :

  - [http://www.nikhilk.net/DateSyntaxForJSON2.aspx @ticks@ ] string format 
  - ''ASP.NET AJAX '' [http://msdn2.microsoft.com/en-us/library/bb299886.aspx \/Date(ticks)\/ ] string format
"	Olemis Lang
6518	Ticket creation error w/ TracBacklog 0.2.1	defect	0.11	osimons	new	2010-02-01T20:31:55+01:00	2010-02-01T20:31:55+01:00	"Currently installed: Trac 0.11.6, TracBacklog 0.2.1 and TracXMLRPC 1.0.6

Whenever I create a ticket via XML-RPC, I receive the following error:
{{{
2010-02-01 14:04:21,735 Trac[web_ui] ERROR: column ticket_id is not unique
2010-02-01 14:04:21,737 Trac[web_ui] ERROR: Traceback (most recent call last):

    File ""/usr/lib/python2.6/site-packages/TracXMLRPC-1.0.6-py2.6.egg/tracrpc/web_ui.py"", line 182, in process_xml_request

        result = XMLRPCSystem(self.env).get_method(method)(req, args)

    File ""/usr/lib/python2.6/site-packages/TracXMLRPC-1.0.6-py2.6.egg/tracrpc/api.py"", line 94, in call

        result = self.callable(req, *args)

    File ""/usr/lib/python2.6/site-packages/TracXMLRPC-1.0.6-py2.6.egg/tracrpc/ticket.py"", line 150, in create

        listener.ticket_created(t)

    File ""build/bdist.linux-i686/egg/backlog/web_ui.py"", line 136, in ticket_created

        (ticket.id, ticket.id))

    File ""/usr/lib/python2.6/site-packages/trac/db/util.py"", line 64, in execute

        return self.cursor.execute(sql_escape_percent(sql), args)

    File ""/usr/lib/python2.6/site-packages/trac/db/sqlite_backend.py"", line 80, in execute

        PyFormatCursor.execute(self, *args)

    File ""/usr/lib/python2.6/site-packages/trac/db/sqlite_backend.py"", line 59, in execute

        args or [])

    File ""/usr/lib/python2.6/site-packages/trac/db/sqlite_backend.py"", line 51, in _rollback_on_error

        return function(self, *args, **kwargs)

IntegrityError: column ticket_id is not unique
}}}
I checked and the ""backlog"" table is the only table in the database with a ticket_id column and it currently is a primary key. I verified this is a problem that only arises when TracBacklog is installed by removing that plugin."	jcampbell@…
6396	Method `ticket.getActions` in `1.0.6` does not display actions like in ticket UI	defect	0.12	osimons	new	2010-01-04T18:18:38+01:00	2022-08-18T08:35:38+02:00	"In a Trac environment the following tickets have been added :

{{{
#!python

>>> from xmlrpclib import ServerProxy as SP
>>> p = SP('http://localhost:8000/trac-dev/rpc')
>>> TICKET_ATTRS = ('summary', 'description', 'priority', \
...                 'milestone', 'type', 'owner', 'status', \
...                 'component', 'version')
>>> for tid in xrange(5, 14):
...     d = p.ticket.get(tid)[-1]
...     print tuple(d.get(attr) for attr in TICKET_ATTRS)
...
('Ticket 1', 'Description 1', 'major', 'milestone1', 'defect', 'murphy', 'accepted', 'component1', '1.0')
('Ticket 2', 'Description 2', 'major', 'milestone4', 'task', 'murphy', 'accepted', '', '')
('Ticket 3', 'Description 3', 'critical', 'milestone3', 'enhancement', 'tester', 'new', '', '2.0')
('Ticket 4', 'Description 4', 'minor', 'milestone3', 'task', 'murphy', 'closed', 'component1', '1.0')
('Ticket 5', 'Description 5', 'minor', 'milestone3', 'task', 'murphy', 'new', '', '2.0')
('Ticket 6', 'Description 6', 'minor', 'milestone1', 'task', 'tester', 'accepted', 'component2', '1.0')
('Ticket 7', 'Description 7', 'critical', '', 'enhancement', 'murphy', 'closed', '', '')
('Ticket 8', 'Description 8', 'minor', '', 'task', 'murphy', 'closed', 'component1', '')
('Ticket 9', 'Description 9', 'minor', '', 'enhancement', 'tester', 'closed', '', '2.0')
}}}

In this case the actions retrieved via RPC are 

{{{
#!python

>>> for tid in xrange(5, 14):
...     print p.ticket.getActions(tid)
...
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
}}}

On the other hand, considering the actions in the ticket UI it should be 

{{{
#!python

>>> for tid in xrange(5, 14):
...     print p.ticket.getActions(tid)
...
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], 
    ['resolve', 'resolve', ""Se cambiar\xe1  la resolución. El pr\xf3ximo estado ser\xe1  'closed'"", ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']], 
    ['reassign', 'reassign', ""El dueño cambiar\xe1 . El pr\xf3ximo estado ser\xe1  'assigned'."", []], 
    ['accept', 'accept', ""El dueño cambiar\xe1  a olemis. El pr\xf3ximo estado ser\xe1  'accepted'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
[['leave', 'leave', '.', []], ['reopen', 'reopen', u""El pr\xf3ximo estado ser\xe1 'reopened'."", []]]
}}}

The same happens if an authenticated call is performed, even if the user has 
been granted with `TRAC_ADMIN` permission. Besides, an error is raised when 
using `ticket.update` with a comment to activate ticket workflow.

{{{
#!python

>>> p.ticket.update(13, ""Via RPC with workflow !"", {'action': 'reopen'})
Traceback (most recent call last):
  File ""<stdin>"", line 1, in <module>
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 1147, in __call__
    return self.__send(self.__name, args)
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 1437, in __request
    verbose=self.__verbose
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 1201, in request
    return self._parse_response(h.getfile(), sock)
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 1340, in _parse_response
    return u.close()
  File ""C:\Program Files\Python\2.5\lib\xmlrpclib.py"", line 787, in close
    raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 2: ""'No permissions to add a comment.' while executing 'ticket.update()'"">
}}}

BTW, nothing happens if comment is empty.

{{{
#!python

>>> p.ticket.update(13, """", {'action': 'reopen'})
[13, <DateTime '20090825T10:30:58' at b31440>, <DateTime '20100101T20:09:19' at
b31418>, {'status': 'reopened', 'description': 'Description 9', 'reporter': 
'anonymous', 'cc': '', 'type': 'enhancement', 'component': '', 
'summary': 'Ticket 9', 'priority': 'minor', 'owner': 'tester', 
'version': '2.0', 'milestone': '', 'keywords': '', 'resolution': ''}]

}}}

'''PS: ''' /me using es_ES transalation ''';o)'''"	Olemis Lang
6308	"Always getting ""Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"" in client"	defect	0.11	osimons	new	2009-12-09T18:25:24+01:00	2012-08-01T05:54:23+02:00	"We always get the following exception in our Java XmlRpcClient.

Could it be that you download the DTD in the server implementation? Could you disable this?

(because of spam control I had to change the url to <SAMVE URL>)

{{{
ERROR  xxx.cms.infoportal.service.TracSyncServlet ?(sync:?) 08.12.2009 12:17:35  org.apache.xmlrpc.client.XmlRpcClientException: Failed to read servers
 response: Server returned HTTP response code: 503 for URL: <SAME URL>
org.apache.xmlrpc.client.XmlRpcClientException: Failed to read servers response: Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/xhtml
1/DTD/xhtml1-strict.dtd
        at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:179)
        at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:145)
        at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:94)
        at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:44)
        at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53)
        at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
        at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:136)
        at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:125)
        at xxx.cms.infoportal.service.TracSyncServlet.getTracTickets(Unknown Source)
        at xxx.cms.infoportal.service.TracSyncServlet.sync(Unknown Source)
        at xxx.cms.infoportal.service.TracSyncServlet$1.run(Unknown Source)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: <SAME URL>
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1313)
        at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
        at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
        at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
        at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:175)
        ... 12 more
}}}

"	anonymous
5527	Include RPC handler to retrieve timed events managed by Timeline module	enhancement	0.11	Olemis Lang	assigned	2009-07-17T17:40:38+02:00	2012-07-10T19:48:30+02:00	"
[https://opensvn.csie.org/traccgi/swlcu/wiki/En/Devel/TracGViz TracGViz plugin] includes an some XML-RPC handlers. TimelineRPC class's been included since [http://pypi.python.org/pypi/TracGViz/1.3.3 version 1.3.3] (can't provide a link to browse the source code due to the fact that my SVN client is failing and I can't (commit | check) out anything ... sorry ''':(''' ). 

It returns all timed events offered by instances of ITimelineEventProvider. 

Please see below a code snippet illustrating public methods :

{{{
#!python

class TimelineRPC(Component):
    r"""""" An interface to Trac's timeline module.
    """"""
    implements(IXMLRPCHandler)
    sources = ExtensionPoint(ITimelineEventProvider)

    def __init__(self):
        self._event_data = TimelineModule(self.env)._event_data

    # IXMLRPCHandler methods
    def xmlrpc_namespace(self):
        return 'timeline'

    def xmlrpc_methods(self):
        yield ('TIMELINE_VIEW',
                ((list, xmlrpclib.DateTime, xmlrpclib.DateTime, list),
                 (list, xmlrpclib.DateTime, xmlrpclib.DateTime),
                 (list, xmlrpclib.DateTime),
                 (list, )),
                 self.getEvents)
        yield ('TIMELINE_VIEW', ((list,),), self.getEventFilters)

}}}

There are still a few open issues and further methods may be needed (e.g. to create, update, delete reports). Besides in order to retrieve all events related to ticket changes (e.g. attachments) `timeline.ticket_show_details` option in `trac.ini` needs to be set to `true`. 

It is possible to move it onto XmlRpcPlugin. Feel free to do it !

PS: I tested it using 0.11, that's why I specify that value in `Trac Release` field . Hope you don't mind.


"	Olemis Lang
5447	Ability to specify the author and creation time for ticket attachments	defect	0.11	osimons	new	2009-06-28T20:08:58+02:00	2022-08-20T21:12:48+02:00	It's currently not possible to specify the creation time or author for a ticket attachment. The attached patch should fix this problem.	Thijs Triemstra
5446	Ability to specify the comment index when updating a ticket	defect	0.11	osimons	new	2009-06-28T19:57:15+02:00	2009-07-01T02:04:05+02:00	Currently it's not possible to update/replace a specific comment in a ticket. The attached patch should solve this problem.	Thijs Triemstra
2794	wiki.putPage() provides no version check.	enhancement	0.10	osimons	new	2008-03-24T22:09:10+01:00	2009-06-21T16:03:42+02:00	"There's mention of the potential for lost updates on [http://www.jspwiki.org/Wiki.jsp?page=WikiRPCInterface2 the Wiki RPC Interface page] but the plugin doesn't deal with the problem.

What would be great was if wiki.WikiRPC.putPage() did a check  on the page using the 'version' attribute and failed the update if it existed and didn't match page.version."	anonymous
2604	Site information via XMLRPC	enhancement	0.10	osimons	new	2008-02-19T12:28:40+01:00	2023-03-01T15:55:36+01:00	We need to gather simple site information via XMLRPC, like name, description, etc. This is fairly core, so I offer this patch instead of releasing a separate product. Future versions could also gather plugin information, which is useful when running many Trac instances.	nigelsim
1805	Access to Trac reports via XmlRpc	enhancement	0.11	Olemis Lang	assigned	2007-07-17T15:20:18+02:00	2018-06-28T10:21:36+02:00	As of yet, there does not seem to be a way to access the reports in a Trac repository via XML-RPC. Since the reporting engine in Trac is fairly powerful, this would be nice to have. I'm thinking of a simple method like tickets.report(int reportid) returning either a list of IDs of the relevant tickets (which the client can then individually query or process) or returning the whole table as seen in the actual report.	moritz.schallaboeck@…
1650	extend ticket.query() to return any field	enhancement	0.10	Alec Thomas	reopened	2007-06-10T17:57:52+02:00	2014-04-16T03:59:53+02:00	"Currently ticket.query() returns an array with the id of matching tickets only. Having an additional parameter that takes a list of field names that are also returned would be a very useful addition to avoid multiple server round trips to retrieve the actual ticket information:

 ticket.query('status!=closed', [ 'id', 'summary' ])
 
That would return: [[id => 'id', summary => '...' ], ...]

Since this breaks backwards compatibility adding an API call queryFields() instead modifying query() might be prefereable.
"	Steffen Pingel
1055	listLinks() should be implemented	enhancement	0.10	Olemis Lang	assigned	2006-12-28T14:51:52+01:00	2009-12-22T16:47:18+01:00	The listLinks function of the Wiki XML-RPC API should be implemented.	martin@…
808	Add Changesets to TracXmlRpc plugin	enhancement	0.11	Olemis Lang	assigned	2006-10-14T15:33:18+02:00	2009-12-22T16:49:35+01:00	Here is a patch adding changeset interface into Trac XmlRpc API. It's not perfect but it works really well.	iXce
