Taskcoach 1.3.36 installed from the Ubuntu Lucid PPA crashes at startup. I cannot confirm whether this was introduced in 1.3.36 since prior packages (for the Lucid branch) are not at the PPA. If memory serves me well, it ran fine since at least 1.3.33, and possibly 1.3.35.
ubuntu@lucid:~$ apt-cache policy taskcoach
taskcoach:
Installed: 1.3.36-0ubuntu10~lucid-1
Candidate: 1.3.36-0ubuntu10~lucid-1
Version table:
*** 1.3.36-0ubuntu10~lucid-1 0
500 http://ppa.launchpad.net/taskcoach-developers/ppa/ubuntu/ lucid/main Packages
100 /var/lib/dpkg/status
ubuntu@lucid:~$ taskcoach.py
Traceback (most recent call last):
File "/usr/bin/taskcoach.py", line 71, in <module>
start()
File "/usr/bin/taskcoach.py", line 62, in start
app = application.Application(options, args)
File "/usr/lib/pymodules/python2.6/taskcoachlib/patterns/singleton.py", line 29, in __call__
class_.instance = super(Singleton, class_).__call__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/application/application.py", line 112, in __init__
self.init(**kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/application/application.py", line 194, in init
self.settings, splash=splash)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/mainwindow.py", line 69, in __init__
self._create_window_components() # Not private for test purposes
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/mainwindow.py", line 126, in _create_window_components
viewer.addViewers(self.viewer, self.taskFile, self.settings)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/factory.py", line 45, in __init__
self.__add_all_viewers()
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/factory.py", line 49, in __add_all_viewers
self.__add_viewers(task.TaskViewer)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/factory.py", line 66, in __add_viewers
**self._viewer_kwargs())
File "/usr/lib/pymodules/python2.6/taskcoachlib/patterns/metaclass.py", line 39, in __call__
instance = super(NumberedInstances, cls).__call__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/task.py", line 766, in __init__
super(TaskViewer, self).__init__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/mixin.py", line 367, in __init__
super(SortableViewerForTasksMixin, self).__init__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/mixin.py", line 208, in __init__
super(SortableViewerMixin, self).__init__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/base.py", line 670, in __init__
super(ViewerWithColumns, self).__init__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/task.py", line 129, in __init__
super(BaseTaskTreeViewer, self).__init__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/task.py", line 75, in __init__
super(BaseTaskViewer, self).__init__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/mixin.py", line 85, in __init__
super(FilterableViewerMixin, self).__init__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/base.py", line 550, in __init__
super(TreeViewer, self).__init__(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/base.py", line 60, in __init__
self.__presentation = self.createSorter(self.createFilter(self.domainObjectsToView()))
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/task.py", line 116, in createFilter
return super(BaseTaskViewer, self).createFilter(tasks)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/mixin.py", line 38, in createFilter
presentation = super(SearchableViewerMixin, self).createFilter(presentation)
File "/usr/lib/pymodules/python2.6/taskcoachlib/gui/viewer/mixin.py", line 150, in createFilter
**self.viewFilterOptions())
File "/usr/lib/pymodules/python2.6/taskcoachlib/domain/task/filter.py", line 30, in __init__
self.registerObservers()
File "/usr/lib/pymodules/python2.6/taskcoachlib/domain/task/filter.py", line 48, in registerObservers
date.Scheduler().schedule_interval(self.atMidnight, days=1)
File "/usr/lib/pymodules/python2.6/taskcoachlib/domain/date/scheduler.py", line 146, in schedule_interval
self.__scheduler.scheduleInterval(job, timedelta.TimeDelta(days=days, minutes=minutes, seconds=seconds), startDateTime=startDate)
File "/usr/lib/pymodules/python2.6/taskcoachlib/domain/date/scheduler.py", line 76, in scheduleInterval
self.__schedule(job, startDateTime or dateandtime.Now() + interval, interval)
File "/usr/lib/pymodules/python2.6/taskcoachlib/domain/date/scheduler.py", line 66, in __schedule
self.__fire()
File "/usr/lib/pymodules/python2.6/taskcoachlib/domain/date/scheduler.py", line 116, in __fire
nextDuration = int((self.__jobs[0][0] - dateandtime.Now()).total_seconds() * 1000)
AttributeError: 'TimeDelta' object has no attribute 'total_seconds'
ubuntu@lucid:~$
I also reproduce this with taskcoach_1.3.36-1.deb from Sourceforge. The version taskcoach_1.3.35-1.deb does not produce the crash.
My bad, total_seconds is new in Python 2.7. I'll fix this ASAP.
A fix was made and checked into the source code repository of Task Coach. The fix will be part of the next release. You will get another notification when that release is available with the request to install the new release and confirm that your issue has indeed been fixed.
If you like, you can download a recent build from http://www.fraca7.net/TaskCoach-packages/latest_bugfixes.py to test the fix.
Because a fix has been made for this bug report, the priority of this report has been lowered to 1 and its resolution has been set to 'Fixed'.
Thanks, Task Coach development team
This bug should be fixed in the latest release of Task Coach. Can you please install the latest release of Task Coach and confirm that this bug has indeed been fixed?
Thanks, Task Coach development team
Task Coach 1.3.37 depends on python-twisted version 10.1.0 or above, which is not available in Ubuntu Lucid (it uses version 10.0.0-2ubuntu2); see http://packages.ubuntu.com/lucid/python-twisted
If Task Coach does require python-twisted >= 10.1.0 does this mean that support in Lucid will be dropped?
Nope, I chose the Twisted minimal version according to what was available on what I thought was the "oldest" distro we support (Fedora 14). If it works for you after forcing the install, I'll downgrade the dependency.
I can confirm that this bug appears to be solved in 1.3.37.
Actions taken:
1) apt-get install taskcoach from the Ubuntu PPA does not work, due to the dependency on python-twisted. I therefore downloaded the *.deb package from Sourceforge.net instead of using apt-get.
2) dpkg -i taskcoach_1.3.37-1.deb failed as expected, due to the dependency. The applied workaround was to force installation inspite of dependency with: dpkg -i --force-depends taskcoach_1.3.37-1.deb
This version no longer crashes at startup.