# Change Log

## Version 1.0.0 (2002-03-14)

- Initial stable public release.

## Version 1.0.1 (2002-03-15)

- Fixed completely broken global vacation handling.

- Added test case for vacation handling to test suite.

## Version 1.1 (2002-05-27)

- Added some reports to the example file, so users actually get a result of the TaskJuggler run.

- Support for later completion of task and resources added. By writing 'supplement task <ID> { ... }' an already defined task can be extended. So it's easier now to create a file which contains the vacations for all resources separate from the resource definition itself.

- Extended expression parser to work on string type values as well.

- logicalexpression for hidetask, rolluptask etc. can now contain functions as well. Currently there is support for 'istask', 'isresource', 'isaccount', 'issubtaskof', 'contains', 'ismilestone'.

- Moved the docs directory from TaskJuggler subdir to topdir.

- Added feature list and change-log to the documentation.

- property_reference is now sorted in alphabetical order.

- Added lots of missing attributes to htmlaccountreport .

- Added missing export report to documentation. Export reports can now contain the scheduled tasks as well as the resource allocations.

- New keywords `planbooking` and `actualbooking` to enter fixed bookings of resources in the resource declaration.

- Added new example project to illustrate the use of export in big projects that are split into sub projects.

- HTML comments in HTML report files are now using correct syntax.

- Partial fix for correct time zone handling.

- Support for STDIN reading and STDOUT writing added. This can be used when calling TaskJuggler from CGI scripts.

## Version 1.2 (2002-06-17)

- Fixed sorting by ID for all HTML reports.

- Fixed bug in vacation handling. Vacations that started before the project were silently ignored.

- Added support for taskattributes to export report.

- XML Output changes: Basically the XML output is more simple to parse, some values were added and corrected.

- Added a first simple TaskJuggler XML-output viewer for KDE. See ktjview/README for installation. Configure with KDE support enabled.

- Disabled ical support by introducing the HAVE_ICAL switch in the code. The switch is not yet configure supported, but building with --with-kde-support should work now without failing on missing libical.

- Support for URLs in HTML reports added.

- Legacy HTML elements have been removed from HTML reports. TaskJuggler now creates pure HTML 4.0 code.

- Added support for insertion of raw HTML code into reports. This can be achieved with rawhead and rawtail .

- Added support for user defined style sheets in HTML reports by using the rawstylesheet attribute.

- Strings can now be enclosed in either single or double quotes. A single quoted string may contain double quotes and vice versa.

- Working hours can now be declared on project level. This also determines if a day is considered a working day or not.

- With startbuffer and endbuffer you can now specify that there might be some air left in a certain task.

- Remo's Gantt chart generators have been included in the `Contrib` directory.

## Version 1.3 (2002-07-30)

- This release features some bigger cleanup changes. Some of them do break compatibility with older version of TaskJuggler. While we try very hard to avoid such situations, we do prefer to have a consistent and logical language. Since the TaskJuggler user base is still comparatively small, we decided to break compatibility now rather than later. The changes are fairly minor, so they won't affect many users. Please see further down for more details.

- Added Perl/Tk tool to view Gantt charts and other project information.

- Added PERT-chart generator from Philippe Midol-Monnet.

- Added support for shifts in shift and task allocate shift.

- Fixed vim syntax highlighting. Some keywords were missing.

- Export report had syntax bug when milestones were present. Fixed.

- Fixed handling of week, month and year duration specifications.

- now and timingresolution are no longer properties. They are now optional attributes of project. They currently still work as properties as well but a warning is issued and they will be removed in the next major release.

- dailyworkinghours and yearlyworkingdays have been implemented to allow the user for better control over the conversion from working days to working hours.

- Added support for a select function for alternative resource allocations.

- All load values in HTML reports can now be scaled by specifying a loadunit.

- Improved readability of scheduler error messages.

- Added new example project to the Examples directory to illustrate how to create shift schedules with TaskJuggler.

- Fixed scheduler for working hours around midnight. This bug affected shifts as well as general working hours.

- Extended timezone support. TaskJuggler will now operate properly when TZ environment variable is set.

## Version 1.4 (2002-12-18)

- Only export references to tasks which are exported in the same report.

- Allow supplements of tasks within task definitions.

- Converted documentation to DocBook. We now have a much nicer and more structured manual. A printable version is available as well now.

- Fixed HTML code for bookedlight cells. Those were rendered without background on some browsers.

- Added support for multi-level sorting in reports. sorttasks and sortresources now take multiple criteria.

- Several bugs in the sorting direction code have been fixed. `startup`, `startdown`, `endup` and `enddown` have been replaced by `planstartup`, `planstartdown`, `planendup` and `planenddown`.

- The optional attribute taskprefix has been added to include. This allows other projects to be added at arbitrary points in the task tree as sub projects.

- Include statements within tasks are no longer supported. They lead to ambiguous interpretation of certain attributes.

- The optional attribute taskroot has been added to export. This allows to export sub tasks of a tasks to be exported as root-level tasks.

- The project file reader has been made fully Unicode aware. It is now possible to use non-ASCII characters in text strings and comments.

- Two new functions have been added for use in logical expressions. `isplanallocated` and `isactualallocated` can be used to show only resources that have been allocated to a certain project in a given time frame.

- Made week of year calculation ISO 8601:1988 and DIN 1355 compliant. This also affects the month and year correlation in weekly reports. You can use the optional project attributes weekstartssunday and weekstartsmonday to specify whether you like to start you week on Sunday or Monday.

- Support for a `flags` columns added to HTML reports.

- Sub tasks do now inherit the dependencies of their container tasks. Specifying dependencies after sub tasks is now illegal since they would be only used for checking, but not for scheduling.

- The logic checker for task attributes has been completely rewritten. Since it probably catches some more errors, you might have to fix your project now. Such cases would have resulted in wrong results anyhow. Lots of test cases have been added to the test suite to validate the checker.

- The error reporting has been drastically improved. The messages should be more precise now and errors that are triggered by other errors should be not so prominent anymore.

- A new report type has been added. htmlweeklycalendar can be used to generate weekly calendars.

- The format of time specifications in HTML reports is now configurable via timeformat and shorttimeformat

- The keyword `xmltaskreport` is now deprecated. It has been replaced by xmlreport . The rest of the syntax remains identical.

- The tool `xml2gantt.pl` has been renamed to `tjx2gantt` and moved from the Contrib directory to the main directory. The tool `xml2png` has been removed.

- Included new version 0.2.2 of TJ-Pert from Philippe.

- The load numbers on the bars of the HTML task and resource reports can now be turned on and off using the barlabels attribute.

- The HTML reports feature now 3 kind of index numbers. The sequence number reflects the order of declaration in the project files. The index is a logical order based on the hierarchy and other attributes. The number is the index in the generated list. What used to be the `no` column is now the `index` column.

- The sequence of properties in the project file can now be used as sorting criteria as well.

## Version 1.4.1 (2003-02-24)

- Another redo of the loop detector. Now checking tasks not only forward, but also backwards. Insufficiently specified task boundaries are no longer detected, since they are flagged with missing start/end messages after the scheduler run.

- The dependency loop detector can now be skipped with the --nodepcheck command line option.

- The dependency loop detector runs now significantly faster for larger projects.

- Broken HTML table when `schedule` was used with `showactual` fixed.

- HTML reports can now show a column with the completion degree and the completion status. The rows can also be sorted by these new columns.

- The HTML and XML reports are now UTF8 encoded. This should eliminate problems with languages that require non-latin1 character sets.

- Currency values in HTML reports are now always right aligned.

- A bug in the handling of nested Resources and Shifts has been found and fixed. The bug lead to wrong load values for all nested resources. The bug was introduced between versions 1.2 and 1.3.

- If some container tasks could not be scheduled due to problems with a sub task no error message was generated. This has been fixed now.

- Fixed scheduling of container tasks, so that container tasks with only milestones get properly scheduled.

- Only export min/max start/end times when they were explicitly specified and do no longer inherit project start/end times for this purpose.

- htmlaccountreport now supports quarterly and yearly calendar columns.

- Fixed XML reports so that milestone end dates are same as start dates.

## Version 1.4.2 (2003-03-10)

- Indentation for tree structure in HTML reports is now done with cell margins. This should no longer look bad if the label gets wrapped by the browser.

- HTML tables now use explicit head and body sections. This should repeat the table header when printing HTML reports from some browsers.

- Fixed segfault in XML report generation. Only plan values are now exported in XML report.

- Task scheduling is also set when a fixed start or end date is specified.

- Better error reporting for syntax errors in macros. The call stack with full arguments is included in the error message now.

- The cost column in HTML task or resource reports now only contains cost. Support for a revenue and profit column has been added.

- Abbreviated month name are now encoded properly in non-Latin1 languages as well.

- Milestones in HTML calendars are now visible in text browsers and printouts as well.

- New attribute reference added to task.

## Version 1.9.0-unstable (2003-06-25)

- A new HTML report type for status report has been added. See htmlstatusreport for details.

- HTML reports are now a lot more flexible. New CSS elements have being used and the table elements are customizable now. See optional column attributes for details.

- Support for user-defined attributes has been added.

- Resource allocations can now be made mandatory.

- The format of numbers and currency values can now be specified with numberformat and currencyformat. The old keyword currencydigits has been deprecated.

- All reports have now support for daily, weekly, monthly, quarterly and yearly calendars. Task lines now contain Gantt-chart like bars.

- HTML reports got the additional columns `hierarchno` and `hierarchindex`.

- Several new query functions and operators for logical expressions have been added.

- Scenario specific task attributes can now be prefixed with the scenario ID followed by a colon. The attributes starting with 'plan' or 'actual' have been deprecated.

- Fixed the URLs for task and resource names in HTML reports.

- Cost, revenue and profit values as well as effort values are now indented in tree sorting mode for all HTML reports.

- Length and duration tasks with resource allocations are no longer trimmed to the first and last resource allocation.

- Fixed rounding error in effort calculation that led to the allocation of an extra time slot in some cases.

- Fixed wrong scheduling of tasks that had a length or duration specified as hours or minutes.

- 'length' based task now use the global working hours and global vacation settings as a criteria of what is a working day. The tasks now always end during working hours and not at midnight.

- isplanallocated and isactualallocated had broken time interval handling. This is fixed now.

- workinghours and currency are no longer global properties. They are now optional attributes of the project property.

- The scenario name is no longer displayed by default if more than one scenario is included in a report. A column `scenario` must be explicitly added if the scenario name should be reported for each line. The attributes 'showactual' and 'hideplan' have been deprecated. The scenarios attribute now controls which scenarios should be shown.

- Container tasks in export reports no longer have fixed start and end date if they have their sub tasks exported as well.

- Resource allocations are now inherited from parent tasks.

## Version 1.9.1-unstable (2003-07-29)

- A new class of reports has been added. CSV reports (Comma separated values) are useful to import TaskJuggler reports into other productivity applications such as spreadsheets. The new reports are called csvtaskreport, csvresourcereport and csvaccountreport.

- HTML Calendars have now a navigation aid. Moving a mouse over a cell will show the date and task/resource id in the browser status bar.

- Background cells in HTML calendars are now merged. This makes TaskJuggler report generation faster and reduces the size of HTML report files.

- The export report can now be a main project file as well.

- A new keyword for taskattributes of export reports has been introduced. The keyword `all` causes all supported task attributes to be exported.

- Various speed improvements.

- The broken milestone symbol in HTML calendars has been fixed.

- HTML reports now have a black grid to separate the cells. This enhances readability both on the screen and on printouts.

- The functions for Logical Expressions are now using capital letters to improve their readability. The all lowercase versions are still supported, but the recommended versions are now the ones with intermixed uppercase letters. `isTaskOfProject` was added as new query function.

- The maximum allocation of a resource for a task is no longer limited by default. maxeffort now defaults to 0 (unlimited) instead of 1.0 (8 hours per day). To have the same behaviour as in TaskJuggler 1.x version you need to specify `maxeffort 1.0` before any resource definition. This change was made since many users were confused when after increasing the daily working hours resources were still only allocated 8 hours per day.

## Version 1.9.2-unstable (2003-09-05)

- Support for new XML format has been added. The old format is still supported. TJ can read both old and new format XML files but will use the new XML format for output.

- The property projectids has been added. It is used in export reports to declare all the project IDs that are used in the report.

- Resource booking periods can now overlap with off-duty hours, vacation or other task assignments. This is controlled by the sloppy attribute.

- Effort based tasks now correctly recognize if the effort was partially specified with booking attributes. The effort is no longer allocated on top of the bookings.

- You can now reference environment variables by writing `$(VAR)` as a means to pass runtime values to TaskJuggler.

- Several inconsistencies and off-by-one errors with respect to task end times have been fixed.

- TaskJuggler can now create 'make' compatible dependency information.

- The number of errors after which TaskJuggler stops processing is now configurable via a command line option.

## Version 2.0.0 (2003-11-24)

- Fixed completion coloring in HTML reports.

- Fixed segfault in certain cases of inherited resource allocations.

- Macro names in macro calls can now be prefixed by a question mark to suppress warnings if the macro is undefined.

- Microsoft and MacOS text files are now read in correctly.

- Report cells can be left empty and URLs can be omitted controlled by a logical expression. This is controlled by hidecelltext and hidecellurl.

- New functions isATask, isAResource and isAnAccount can now be used in logical expressions.

- XML version 2 files are now compressed with zlib.

## Version 2.0.1 (2004-03-08)

- Fixed handling of resource allocations with multiple shift intervals.

- Fixed double-quoting of HTML special characters such as umlauts.

- Added query function isDutyOf() to select tasks where a certain resource has been assigned to.

- The contents of XML reports can now be limited with the usual filter mechanisms. Support for hideresource, hidetask, rollupresource and rolluptask has been added. Also scenario filtering was implemented for XML reports.

- Weekly, monthly, quarterly and yearly HTML reports now have resource vacations as well. If the vacation fills the complete report cell term, the cell has a yellow background.

- Fixes for building TaskJuggler on FreeBSD added.

- maxeffort and load have been replaced by the far more flexible concept of limits.

## Version 2.1.0 (2005-03-07)

- TaskJuggler now has a nice face. Beside the commandline application `taskjuggler`, you can now use `TaskJuggler` or `ktjview2` as a graphical user interface to enter and schedule your projects.

- New optimizer that achieves much better resource selection resulting in shorter overall project times.

- Passive resources like meeting rooms, machines and the like, that do not contribute to the effort of a task can now be modelled by setting their efficiency to 0.0.

- Added critical path analyser. Each task is rated and the rating can be listed in the HTML and CSV report.

- New task state added. When a task is not finished by the planned end date, it now marked as `late`.

- Task dependency specifications (depends or precedes can now have optional gap specification. It is possible to specify the gap in calendar time (gapduration) or working time (gaplength).

- The speed of report generation has been significantly improved. This is especially true for reports that make use of filter functions.

- Added `status` and `statusNote` to XML reports.

- Added some missing properties to the documentation. Mainly the sorting criterias were missing.

- Fixed a memory leak during XML report generation.

- Fixed scheduling of nested task that had an external dependency and an inherited start/end date.

- Limits of resource allocations with multiple alternatives are now correctly handled. The limits were applied to each individual resource instead of to the whole allocation.

- The task priority is now always properly respected. Due to a bug in the scheduling algorithm a heavy mixture of ALAP and ASAP tasks with various levels of priorities, ALAP tasks were treated more favorable then they should have been treated. This fix can drastically reduce the scheduling speed when you have a heavy mixture of ALAP and ASAP tasks with varying priorities.

- The error checking and reporting of logical expressions has been drastically improved.

- The reports are now generated relative to their definition file and no longer relative to the current working directory where you started the program.

## Version 2.1.1 (2005-08-04)

- The code for the generation of iCal reports has been revived again. iCal is a standard format to exchange data with calendar applications such as KOrganizer.

- The contents of export reports can now be customized with the properties attribute. The report interval is customizable as well now.

- Add new chapter to manual that describes how to use TaskJuggler as a project tracking tool.

- The HTML version of the manual has now a new look and many more syntax examples have been added to the property reference.

- The TaskJuggler editor now supports printing of project files.

- Fixed build with GCC 4.

- Fixed build problems in the doc directory on Debian Unstable and FC3.

- We are now using docbook-utils instead of docbook-toys to generate the documentation.

- Filtering resources and tasks in the TaskJuggler GUI reports now always works properly.

- Fixed generation of reports with absolute file names.

- Make sure that all dates specified in project files lie within the Unix time space. For technical reasons we need to limit this to 1971-01-01 - 2035-01-01.

- Fixed some crashes related to out of project time specifications.

- Warnings about pre 2.0 deprecated syntax elements have been converted to errors.

- Fixed sorting of task reports when not using the default scenario as first scenario.

- Fixed projection scheduling mode. Tasks with bookings equal or larger than the effort lead to scheduling errors.

## Version 2.2.0 (2005-12-05)

- The two graphical front-ends that have been present in earlier TaskJuggler releases have been merged into one new front-end. It's called TaskJugglerUI. The `ktjview2` and `TaskJuggler` executables are no longer included. This was done also to avoid name clashes on Windows/Cygwin.

- The TaskJuggler user interface now supports printing of high-quality task and resource reports.

- Major usability improvements for the GUI. It's now fully navigable by keyboard. The scaling/zooming of the Gantt chart has been improved.

- HTML reports are now rendered with an embedded browser instead of launching an external browser.

- Export reports are now loaded into the editor when selected in the report browser.

- The GUI supports now multiple project templates. The templates can be customized on loading to reflect the current date.

- Added date picker to GUI editor. By pressing CTRL+D the user can insert or change a date using the comfortable date picker widget.

- The GUI editor now supports search and replace over all files.

- The computation of completion degrees of container task has been improved to produce more meaningful values for all milestone or all effort tasks.

- To get Gantt and resource reports in the GUI the column 'chart' must be specified. They are no longer displayed automatically. This was done to have more consistency between the printed version of the GUI reports and the other reports.

- The default separator for CSV files is now a semicolon since this is what OpenOffice.org uses by default. But this can be changed if needed.

- The projection scheduling mode has been fixed and extended. In strict mode bookings will be scheduled only after the current date. In sloppy mode, bookings will also be scheduled prior to the current date for tasks that have no bookings at all. The modes can be set in the scenario definition.

- Fixed reporting of value 1,000 in US currency format.

- Fixed reported task duration value in all report types. Value was only correct when unit 'days' was used.

- Fixed account reports which had summary lines that were all 0. In HTML reports the summary columns were rendered all black.

- Fixed detection of cyclic brother tasks. This caused taskjuggler to go into a memory hogging endless loop.

- Fixed bug in priority handling. Under certain circumstances resources were allocated to lower priority tasks even though they should have been assigned to higher priority tasks.

- Fixed critical bug that turned 'precedes' of parent tasks into 'depends' of child tasks.

- Fixed cost accounting for non-working resources. They were always accounted to 0.

## Version 2.3.0 (2006-09-05)

- Added improved error checking for 'timezone' attribute. Only values as determined by tools like tzselect are allowed, e. g. "Europe/Berlin".

- The GUI GANTT chart now can highlight critical pathes. See minslackrate for details how to use the feature.

- The htmlweeklycalendar has been reworked. It now only list tasks if they are being worked on that day. A new attribute weekdays can be used to only show some days of the week. This can be used to hide e. g. weekdays.

- ICal reports now include events. The completion value is now shown correctly and assigned resources are included.

- Fixed handling of tasks that have 'precedes' and 'depends' attributes.

- Single and double quoted strings may now contain single or double quotes when escaped by a preceding backslash.

- Fixed 'gaplength' and 'gapduration' handling for other scenarios than the default one.

- Fixed 'duration' column in all reports. Values equal or smaller than 24 hours were reported too high.

- No longer show dependency arrows in Gantt chart for inherited dependencies.

- Generate proper warning when bookings are assigned to container tasks or milestones.

- It is now possible to book off-hour and vacation time slots with 'booking' when the overtime attribute is used.

- Added support for a more compact way to specify bookings. It's now possible to list multiple comma seperated time intervals in a single booking statement.

- Fix build system so that kde-config is no longer mandatory. This simplifies compiling on Windows/Cygwin and Qt-only installs.

- Speed improvements for the loop detector. Large projects with many top-level tasks should be scheduled significantly faster now.

- 'start' and 'end' attributes specified for derived scenarios no longer cause accidental changes of the scheduling direction. This guarantees that a task has always the same scheduling direction in all scenarios.

- Added support for more compact workinghour specifications. `workinghours mon - fri 8:00 - 15:00` as well as `workinghours mon, sat, sun off` are now possible.

- Added man pages for taskjuggler and TaskJugglerUI.

- Fixed infinite loop bug in critical path detectors. With certain task dependencies TaskJuggler could get stuck forever when processing the project.

- Fixed TaskJugglerUI crash when processing a project with many runaway tasks.

- Better fit of report interval for printed Gantt charts.

- Fixed header of weekly and monthly CSV reports.

- XML reports now use the gzip compressed version 2 XML format by default.

- Add check to forbid assigning account groups to tasks.

- Added Turkish translations for TaskJugglerUI.

## Version 2.3.1 (2007-01-30)

- Added support for automatic macros like `now`, `projectstart` and `projectend`.

- Added monthly calendar HTML report.

- Added `period` property as a shortcut for the combined use of `start` and `end`.

- Added more details to the pop-up info for tasks and resources in the UI.

- Added support for warnings and turned some non-critical errors into warnings.

- Improved scheduling performance for projects with long dependency chains.

- Added new attribute `purge` to clear inherited allocations and flags from a task or resource.

- Fixed complexity explosion in loop detector and critical path analyzer. Larger projects that made heavy use of inherited dependencies had an exponentially growing run time of these components.

- The threshold for the critical path detection now defaults to 10%. All pathes that have less than 10% slack time will be marked as critical.

- Fixed problem where editor tools were doubled when "Open Recent" was used while editor was open. This also triggered a crash on program exit.

- Fixed double headline problem in most HTML reports.

- Fixed a bug in the coloring of tasks in HTML reports that had a 'complete' specification.

- Fixed documenation for usage of sorting modes for scenario specific columns in reports and make them work properly.

- Force `now` date to be aligned to the timing resolution.

- Fixed a major bug in the handling of multiple scenarios. Values were inherited from peer scenarios instead of their parents.

- More meaningful error messages for some impossible combinations of fixed start/end times and dependencies.

- For technical reasons we had to limit the timingresolution between 5 minutes and 1 hour. Larger resolutions caused too many hazards in corner case situations.

- Fixed `gaplength` for time units other than days.

- Really hide all inherited dependency arrows in Gantt chart.

- Fix several crashes when the user is viewing reports in the UI after an unsuccessfull scheduling run.

- Fix sorting of tasks in interactive resource reports and sorting of resources in interactive task reports.

- The resource reporting in htmlweeklycalendar reports has been fixed. The report can now be used in task or resource reporting mode. The default is the task reporting mode which is closest to the previous behaviour.

- Fixed values of the revenue and profit column in resource reports. Resources can never generate a revenue so the value must always be 0.

- Fixed crash when printing resource reports from the UI that had a `hierarchyindex` column.

- The completion degree of container tasks that have sub tasks with and without resource allocations was reported as 0. This has been replaced with "in progress" as the completion degree cannot be calculated.

## Version 2.4.0 (2007-07-03)

- For consistency and readability the notation of intervals without a dash between start and end date is slowly being deprecated. It was silently accepted in the project header and booking statements. This is not flagged with a warning. The project will still schedule fine.

- The critical path detector has been rewritten to reduce the complexity explosion that is triggered by lots of inherited dependencies in combination with long dependency chains. The number of searched paths is now limited to 10 million to avoid very long scheduling runs by default. This limit can be changed with the `maxpaths` attribute. A value of 0 means no limit.

- The default minimum slack rate has been changed to 5%.

- Added support for C++ style single line comments. Comment lines can now start with // or #.

- Added a warning when the working hours do not align with the timing resolution.

- The booking statements in export reports now include a `overtime 2` attribute. This avoids the error messages when the scheduling was based on overtime bookings and the export file is read-in again.

- Added a `Generate all Reports` option to the menu of the GUI.

- The sloppiness 3 for booking statements is no longer supported. The booking statements are processed in no particular order, so it's undefined which booking will actually get the resource in a conflict.

- Removed support for KoTrus database.

- Fix HTML generation for HTMLWeeklyCalendar when cells are empty.

- Properly report durations in printed reports.

- Many editorial fixes were applied to the manual.

- Properly handle Pacific/Auckland DST.

- Fixed a number of memory leaks.

- Removed namespace collision for resource and account custom attributes and added support for user defined account attributes in the code.

- Make sure that files that have been modified on disk while edited by the TaskJugglerUI are detected properly. Probably with KDE 3.5.4 the behavior of the Kate library changed so that the test no longer worked properly and modified files were not detected.

- Fixed crash when non existant file was included.

- Detect usage of undefined macros again. Undefined macros were silently ignored. This should only happen when the macro name is prefixed with a questionmark in the macro call.

- Properly report effort and load of group resources that have children with an efficiency different than 0.

- Fixed a crash when an illegal date was specified in a project file.

- The XML reports now also include the accounts.

- Fixed a rounding error that caused dependency gaps to be one time slot short.

- The commandline version now properly returns a non-zero value if the report generation caused an error.

- Fixed the reversed sorting order for resource specific sorting criteria.

- Add workaround for new bahviour of tzset function in glibc 2.5.

- Fixed off-by-one-slot bug for limits on allocations with multiple resources.

## Version 2.4.1 (2008-05-06)

- Fixed a serious bug in the optimizer part of the scheduling algorithm. When many tasks had the same priority, the path criticalness was not always respected resulting in longer running projects than necessary. The effect mostly showed under heavy resource pressure.

- Add `taskroot` support for XML reports.

- The task outlines in the UI resource reports have been replaced with relative load bars. One can now see what load is assigned to what resource at which point of time.

- Fixed calculation of effort based values in group task line items of resource reports.

- The isChildOf() function no longer returns true for self.

- Use alternating background pattern for Gantt chart to enhance readability.

- Make tasks and resources in Gantt charts selectable and enable RMB menu to edit and view them quickly.

- Added filter for GUI report list items.

- The report interval of interactive reports can now be changed from the GUI temporarily.

- Fixed the coloring of completed part of a container task in HTML task reports.

- Added new column `scheduling`, `completedeffort` and `remainingeffort` to reports. The first shows the scheduling direction of tasks and can be used to find potential sources for priority inversions. The other two show the task effort that has been completed already and the remaining effort.

- iCalendar files are now properly encoded when Unicode characters are used.

- The `hasAssignment()` function for logical expressions now properly accepts 3 parameters as documented.

- Enable `taskroot` support for csvtaskreports as well.

- Fixed a serious bug in the floating point formatter. Zeros right after the decimal separator were lost.

- Fixed display of progress bar in GUI Gantt chart. It sometimes extended the task bar in higher zooms.

- Changed the how-to-contribute section of the manual to use git instead of subversion. We no longer accept non-git patches now.

- Added 'criticalpath' attribute to task scenario section of XML reports.

- Fixed handling of multiple allocation with same mandatory resource set.

- Added new Pertt chart generator from Gregoire Barbier to the contrib directory.

- Improved the scheduling heuristic to generate projects with overall smaller project durations.

- New report column `hierarchlevel` was included.

- Hotkey for date/time picker in the GUI editor has been remapped to CTRL-SHIFT-T to avoid a conflict with built-in CTRL-D.

- Fixed sorting of resources in GUI resource reports.

- Unicode characters in macros no longer get corrupted.

## Version 2.4.2 (2009-07-11)

- Fixed crash when existing template dialog with unchanged selection. This only happened on systems with older Qt versions.

- Properly report summary columns in CSV account reports and use separators between all columns.

- Fixed missing start time for certain tasks in ICal reports.

- Fixed wrong total values in CSV account reports when tree mode (default) was used.

- Fixed crash when pressing F9 at a high rate in the GUI.

- Don't overwrite table boundaries with alternating background in printed reports.

- Fixed crash when the UI was started with a project without reports.

- Corrected a bug that caused tasks with no end date when the specified bookings matched exactly the specified effort but the daily working hours were not in sync with the declaration.

- Fixed the completion reporting for container tasks which subtasks had allocated resources but got no slots allocated.

- Fixed a crash on vacation dates that were outside of the project time interval.

- The end date of duration tasks with bookings was not properly calculated. Fixed.

- Added support for timezones where the difference to UTC is not a multiple of 60 minutes.

- Added 'accounts' column to reports.

- Added 'isDependencyOf()' function for logical expressions.

- Added double and middle click facility in interactive report.

- Added taskbarprefix and taskbarpostfix properties in taskreport.

- Export reports now contain vacation dates.

## Version 2.4.3 (2009-07-15)

- iCal support can now be disabled by configuring with --with-ical-support=no for distros that no longer ship with KDEPIM3 packages.