This file is intended to convey the current efforts, priorities and needs of the codebase. It is for developers looking for a way to start contributing. Deprecated Code This is code that is going to be phased out soon, and therefore is not worth fixing or documenting. Don't waste your time. - Location.{h,cpp} - TDB.{h,cpp} - Att.{h,cpp} New Code Needs This is code that needs to be written, usually down at the C++ function level. - text.cpp extractLines needs to be rewritten in a UTF8-aware and color-code sensitive manner. - Need a function to accept a list of projects, and return an indented list that reflects the hierarchy. This will likely go into the new 'projects' command. Something like: Input - "one" "one.two" "one.two.three" "one.four" "two" Output - "one" " one.two" " one.two.three" " one.four" "two" - Take all the Config::checkXXX methods and create a new legacy.cpp file that handles dealing with all legacy checks. To be called from src/commands/CmdShow.cpp. - Need export_sql.yy script. Any language. This would have value as an example, or template script serving as a starting-point for anyone who needed this format. - Need export_viz.yy script. Any language. This would have value as an example, or template script serving as a starting-point for anyone who needed this format. - Need new export_xxx.yy scripts - the more the better. Any language. - The JSON.{h,cpp} code is fast and efficient up to a point, but has a non- linear performance curve, implying a slowdown due to fragmentation. Fix it. Test rig and sample data available on request. - Devise a complete rule set for Task::validate. What should it warn about? - Need a function that can optimize color codes. For example, if a string contains this: one two three four It can be shortened to: one two three four This is only possible if there is nothing between and and the colors match. - Make sure the update-holidays.pl script is doing the right thing. Documentation Needed Various forms of documentation that are needed, or are in need of review or update. - Wiki/How-To: Date Handling - Wiki/How-To: Urgency Customization - Wiki/How-To: Custom Reports, including performance considerations - Wiki/How-To: Aliases, particularly new enhanced aliases - Wiki: Export formats Holiday Data Needed We are moving the holiday data to http://holidata.net, and providing a script that can automatically update taskwarrior holiday files from the web. This allows us to provide corrections and additional data without the need for a corresponding taskwarrior release. If you can provide regional holiday data, we would be very grateful, and ideally it could go up on holidata.net for everyone to share. Unit Tests Needed There are always more unit tests needed. - The basic.t unit tests are a misnomer, and should be either removed or renamed. We have long talked of 'basic functionality' that includes add, delete, done, and list commands. We need unit tests that prove that basic functionality is working, and it should be called basic.t. - None of the current unit tests remove the new backlog.data file, and they all should. - None of the current unit tests remove the 'extensions' directory, and they all should. - Need tests of command line expressions. - Test propagation of modifications to recurring tasks. - Test regex support. - Need unit tests for each bug in the issue list, if suitable. Work in Progress Things that are currently in flux, which is another way of saying leave it alone while it is being worked on. - The E9.{h,cpp} (Expression) object is being completed and tested. - L10N (Localization) is in progress. This means moving all user-presented strings into en-US.h, which is included by i18n.h. Language selection will be a cmake-controlled #define. This is 86% complete. This makes translation possible, but there is no active project to make this happen. It is expected that translation files will trickle in, and create a maintenance burden. We don't know how we're going to deal with this yet. They will probably be downloadable files. Current Codebase Condition 'master' branch: - 1.9.4 release, current, locked. '2.0.0' branch: - Unit tests passing ~94%. - Basic commands working (add, list, done). - Expressions E9.{h,cpp} working. - DOM access DOM.{h,cpp} not working well. - Aiming for an August beta1. - Aiming for an early September beta2. - Aiming for a release in 2011, probably October, but when it is ready. --- 2011-08-21 Small changes, new work listed. 2011-08-01 Removed code already obsoleted or completed. 2011-07-29 Added more needed code descriptions. 2011-07-27 Updated with holiday data info. 2011-07-25 Created file.