diff --git a/DEVELOPER b/DEVELOPER index f04425f96..78f0ec179 100644 --- a/DEVELOPER +++ b/DEVELOPER @@ -1,6 +1,53 @@ -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. +General Statement + This file is intended to convey the current efforts, priorities and needs of + the codebase. It is for anyone looking for a way to start contributing. + While this is biased towards developers, anyone can contribute, and everyone + is encouraged to do so. Here are many ways to contribute that may not be + immediately obvious to you: + - Use Taskwarrior, become familiar with it, and make suggestions. There are + always ongoing discussions about new features and changes to existing + features. Join us in the forums. + + - Join us in the #taskwarrior IRC channel on freenode.net. Some great ideas, + suggestions, testing and discussions have taken place there. It is also the + quickest way to get help, or confirm a bug. + + - Review documentation: there are man pages, wiki articles, tutorials and so + on, and these may contain errors, or more importantly, they may not convey + ideas in the best way. Perhaps you can help improve it. + + - Take a look at the bug database. It is the nature of software to contain + bugs, and there is a continuous effort to fix them. Looking at open bugs + and confirming them, perhaps determining that it is already fixed, or just + adding clarifying information are all very useful contributions. + + - Fix a bug. For this you'll need C++ and git skills, but this is one of + the largest ways you can contribute. We welcome all bug fixes, provided + the work is done well and doesn't create other problems or introduce new + dependencies. + + - Add unit tests. Unit tests are possibly the most useful contributions, + because they not only improve the quality of the code, but prevent future + regressions. Plus, broken tests are a great motivator for us to fix the + causal bug. + + - Add a feature. Well, let's be very clear about this: adding a feature is + not usually well-received, and if you add a feature and send a patch, it + will most likely be rejected. The reason for this is that there are many + efforts under way, in various code branches. There is a very good chance + that the feature you add is either already in progress, or being done in a + way that is more fitting when considering other work in progress. So if + you want to add a feature, please don't. Start by talking to us, and find + out what is currently under way or planned. You might find that we've + already rejected such a feature for some very good reasons. So please + check first, so we don't duplicate effort or waste anyone's time. + + - Spread the word. Help others become more effective at managing tasks. + + - Encouragement. Tell us what works for you, and what doesn't. It's all good. + + Following are specific areas that could use some attention. Deprecated Code This is code that is going to be phased out soon, and therefore is not worth @@ -37,6 +84,9 @@ New Code Needs which means it can be developed separately. There are several pending feature requests for this, including creative prompts, readline and auto- clear. + - Need an external implementation equivalent to, or better than the 'shadow + file' feature. Simply because shadow file capability *can* be implemented + outside the core code, we want to make it be that way. Documentation Needed Various forms of documentation that are needed, or are in need of review or @@ -112,7 +162,7 @@ Work in Progress Things that are currently in flux, which is another way of saying leave it alone while it is being worked on. - - None. + - Command line parser. Current Codebase Condition @@ -127,6 +177,4 @@ Current Codebase Condition --- -2012-04-16 Updated document. -2012-03-25 Corrected codebase condition details. -2012-03-03 Updated text, removed old history info. +2012-05-12 Added general statement about how to contribute.