id summary reporter owner description type status priority component severity resolution keywords cc release 1160 ITicketChangeListener problem with trac 0.10.3, python 2.3 francisco.lozano@… Russ Tyndall "* Red Hat EL 4.0 * Trac 0.10.3 * Python 2.3 * SQLite * Apache + mod_python When you try to close a ticket with a TRAC environment and TimingAndEstimationPlugin, you get this: Python Traceback Traceback (most recent call last): File ""/usr/lib/python2.3/site-packages/trac/web/main.py"", line 387, in dispatch_request dispatcher.dispatch(req) File ""/usr/lib/python2.3/site-packages/trac/web/main.py"", line 237, in dispatch resp = chosen_handler.process_request(req) File ""/usr/lib/python2.3/site-packages/trac/ticket/web_ui.py"", line 279, in process_request self._do_save(req, db, ticket) File ""/usr/lib/python2.3/site-packages/trac/ticket/web_ui.py"", line 546, in _do_save cnum=internal_cnum): File ""/usr/lib/python2.3/site-packages/trac/ticket/model.py"", line 262, in save_changes listener.ticket_changed(self, comment, author, old_values) TypeError?: ticket_changed() takes exactly 4 arguments (5 given) --- I don't know much about python so I don't know how interfaces work on it, but ""TimeTrackingTicketObserver"" implements the following method: def ticket_changed(self, ticket, comment, author, old_values): while in trac/ticket/api.py, in the ITicketChangeListener interface, you have: def ticket_changed(ticket, comment, author, old_values): " defect closed normal TimingAndEstimationPlugin critical invalid ITicketChangeListener 0.10