These are the tasks that have been defined and being undertaken. Many of the tasks have bounties assined to prioritize their development and to encourage more contribution to critical tasks in Anjuta. Anyone interested can pick up any tasks and contribute to Anjuta. It is advisable to announce and discuss it first in anjuta-devel mailing list before undertaking any of the tasks to ensure that no duplicate work is being done. It also ensures the tasks are marked 'Assigned' so that other people know who are working on them (and possibly to collaborate the work).
For a task to be assined, it is mandatory to create a bugzilla entry for tracking its development. Put the task title as bugzilla summary and task description as the bugzilla summary. If the task has a bounty, please also suffix the bugzilla summary with 'Bounty: '.
Tasks with bounties are little different than other general tasks. For them to be marked 'Assigned' we need to first make sure the contributor is indeed suitable for the task. If you are new to Anjuta developemnt, it is therefore suggested to convince the lead developer in the mailing list discussion that you can perform the task. The contribution/patch is subject to code reviews and quality checks. Means there will be constant feedbacks and suggestions until the code is acceptatble.
Pending Tasks
Click on task titles for full descriptions and on bugzilla ids for development updates.| Category | Summary | Bounty | Status | Bugzilla |
|---|---|---|---|---|
| Unfiled | Bug fixing batch #1 | $25 USD | Pending | - |
| Unfiled | Automated tests for Anjuta | - | Pending | - |
| Unfiled | Implement IAnjutaEditorPrint | - | Pending | - |
| Unfiled | Relocate 'Autoformat' code from document-manager plugin | $50 USD | Pending | - |
| libanjuta | Plugins reference counting | - | Pending | - |
| libanjuta | Preferences keys with no defaults do not register | - | Pending | - |
| Plugin: Editor | Apply prefererences | - | Pending | - |
| Plugin: Editor | Update on configure syntax highlighting | - | Pending | - |
| Plugin: Editor | Move CVS directories | - | Pending | - |
| Plugin: Project Manager | Complete Makefile project manager backend | $700 USD | Pending | - |
| Plugin: Automake Build | Define compile commands | - | Pending | - |
| Plugin: Automake Build | Build parameters dialog | - | Pending | - |
| Plugin: Symbol Browser | Possible memory leak | - | Pending | - |
| Plugin: Symbol Browser | Workspace symbols not updated | - | Pending | - |
| Plugin: Symbol Browser | Tags search do not retrieve all matching symbols | - | Pending | - |
| Plugin: Symbol Browser | Rewrite symbol-browser plugin | $1500 USD | Assigned | #358479 |
| Documentation | Update | - | Pending | - |
| libanjuta-interfaces | Documentation | - | Pending | - |
| Plugin: Task Manager | Proper deactivation | - | Pending | - |
| Plugin: Task Manager | Create text version TODO file | - | Pending | - |
| Plugin: Project Wizard | More templates | - | Pending | - |
| anjuta | Apply http://live.gnome.org/GnomeGoals | - | Pending | - |
| Plugin: Debugger | Remote debugging support | - | Pending | - |
| Plugin: Debugger | Rewrite a working inspect/evaluate dialog | - | Pending | - |
| Plugin: Terminal | Be able to create multiple terminals | - | Pending | - |
| Plugin: Glade | Polish up interface | - | Pending | - |
| Plugin: Glade | Connect callback signal | - | Pending | - |
| Plugin: Glade | Complete Glade 3 integration | $100 USD | Pending | - |
Task Descriptions
Unfiled
Bug fixing batch #1:
[Skill: Medium, Work: 12hrs, Bounty: $25]
* Bug #346777 Cannot change the editor font
* Bug #351214 Anjuta doesn't respect Gnome blinking cursor preference
* Bug #357151 a + character in a directory name confuses anjuta
* Bug #357541 can't launch Anjuta project file from Nautilus
* Bug #357820 Goto / Previous history should return to previous cursor ...Automated tests for Anjuta:
[Skill: Basic, Work: 20hrs]
Implement automated tests for Anjuta using either LDTP (http://ldtp.freedesktop.org/wiki/) or Dogtail (http://people.redhat.com/zcerza/dogtail/), which ever is better. Test cases should cover existing features and be able to easily extend for future features. The implementation should alow running the test cases in an automated setup (such as a remote server with a sutable running platform).Implement IAnjutaEditorPrint:
Implement it using Gtk 2.10 Printing stuffRelocate 'Autoformat' code from document-manager plugin:
[Skill: Basic, Work: 3hr, Bounty: $50]
Relocate 'Autoformat' code from document-manager plugin to language-support-cpp-java plugin.
Currently Autoformat code that is specific to c and c++ (uses indent program) is located in document-manager plugin (legacy). It should now be moved to language-support-cpp-java plugin that specializes in c/c++ processing. Preferences, UI, and processing should all be moved to the new place. At the same time, the indent configuration dialog should be fixed to fit in smaller size, presumably using notebook widget (currently it is huge and not screen appropriate for lower resolution).
This is partly done but somebody has to fix the new "indent" plugin!
libanjuta
Plugins reference counting:
Implement plugins reference counting. Loading a plugin gets 1 ref and when ref count reaches 0, plugin is deactivated.Preferences keys with no defaults do not register:
Preferences keys without default values (defined in .glade file) are not registered during preferences registeration. This results in gconf type mismatch when the keys are queried.
Plugin: Editor
Apply prefererences:
Hidden editor preferences (those which are not settable from preferences dialog) are not applied now.Update on configure syntax highlighting:
When syntax highlighting colors/fonts are changed, the changes are not propagated to all editors, but it should, just like a gconf key.Move CVS directories:
Move data/properties/ and scintilla/ directories (by CVS surgery, and not by add/remove) into plugins/editor/ directory.
Plugin: Project Manager
Complete Makefile project manager backend:
[Skill: High, Work: 50hrs, Bounty: $700]
There is some initial work done for makefile based project management in gnome-build (src/backends/libgbf_mkfile) and Anjuta. Most of the base implementations have been done. The tasks is to completed this backend so that it works just like automake-backend. All the project interfaces from Anjuta via gnome-build should work meaningfully for this backend (as far as Makefile based structure would allow). Further details can be acquired by following the mailing list thread:
http://sourceforge.net/mailarchive/message.php?msg_id=12687933
Plugin: Automake Build
Define compile commands:
Define compile commands for various file extensions. Normally, plugin should search for a Makefile and invoke it with correct target (for example for a c file, it will be 'make file.o'). There should be a file that contains regexs for deriving target from a file name for invoking 'make'. Also, if there is no Makefile found in the directory with which to invoke the compile command, user should be prompted to create a Makefile (possibly filling it up with some template contents).Build parameters dialog:
Add a 'Build parameters dialog' in Build menu that brings up a dialog to configure environment variables and make parameters for the build. They would be set when ever the build is started. Also they need to be session saved and restored.
Plugin: Symbol Browser
Possible memory leak:
Investigate possible memory lead on load/unload of symbol-browser.Workspace symbols not updated:
Although, file symbols are updated when the file is saved, corresponding workspace symbols are not updated. That is when "goto symbol" to a symbol in this file from some other place is activated (eg. symbol pane), the old location is used.Tags search do not retrieve all matching symbols:
Tags search (plugins/editor/aneditor.cxx) during calltips query do not retrieve all matching function prototypes. Perhaps, the tags are not sorted, leading to incomplete binary search. Investigate it in tag-manager/ directory.Rewrite symbol-browser plugin:
[Skill: High, Work: 200hr, Bounty: $1500, Status: Assigned, Bug: #358479]
A rewrite of symbol-browser plugin is in place. The rewrite is about view/model/store of the symbols database. It will use sqllite for the database for primary storage and implement a GtkTreeModel interface exclusively for using it in Views. A store class will be created that proxies the sqllite database and provide GtkTreeModel interface. The design for this work is still under sketch. Following the given thread for more details:
http://sourceforge.net/mailarchive/message.php?msg_id=36842046
Documentation
libanjuta-interfaces
Plugin: Task Manager
Proper deactivation:
Some stuffs are left out during deactivation of the plugin. For example, gnome-vfs monitor for TODO.tasks is not removed, leading to crash when the file changes when the plugin is not active.Create text version TODO file:
Create human readable TODO file, which will be plain text, during save.
Plugin: Project Wizard
anjuta
Apply http://live.gnome.org/GnomeGoals:
[Skill: Low, Work: 20hrs]
Investigate general usability and HIG issues in Anjuta, come up with solutions that counter them and solve them. Issues such as Dialog consistencies, Navigational usabilities, Menus organization, features usablities should be investigated.
Plugin: Debugger
Remote debugging support:
[Skill: medium, Work: 40h]
Remote debugging support in Anjuta debugger.Rewrite a working inspect/evaluate dialog:
[Skill: Medium, Work: 20hrs]
Currently, this dialog use the same debug tree widget used by the local variables and watch display. I think we should keep the same widget for all this but we need perhaps to add a few options (local variables cannot be removed by example).
Plugin: Terminal
Plugin: Glade
Polish up interface:
Add a label before the list of loaded glade projects ("Files:").
Add stock icon. Deactivate glade plugin when last glade file is closed.Connect callback signal:
Connect signal callback selection signal from glade and goto the signal implementation when a signal handler is selected in glade. Create the signal prototype if it is not found.Complete Glade 3 integration:
[Skill: High, Work: 30hrs, Bounty: $100]
We already have glade3 integration in anjuta working. But the implementation is incomplete and not fully usable. It should interface with Anjuta glade plugin for signals navigation, stubs creations and project files negotiations.
Signals navigation" means when user selects a signal in glade properties editor, Anjuta automatically brings up the implementation of that signal in its editor. This can be accomplished with SymbolBrowser plugin in anjuta, that keeps tab on all symbol updates in the project. Using the signal handler signature, Anjuta glade plugin can take help of symbol-browser plugin to find the location of function definitions in the project.
"Stubs creation" means when the user adds new signals, Anjuta glade plugin automatically creates the stub for the signal handler using gtk signal introspection. The signal prototype can be identified with the introspection. Where and how the stubs are added in project is a matter
of dissussion.
"Project files negotiation" means when user adds file via glade (e.g. images in dialogs), glade will notify anjuta to add the file in project and give a change to relocate it within the project. Anjuta needs to handle this request and add the files in project (possibly prompting user for relocation). Anjuta also needs to make sure glade is able to find them later.
Also, the the glade widget editor should be embed in Anjuta (glade-3 already has the necessary widgets).
Completed Tasks
| Category | Summary | Bounty | Status | Bugzilla |
|---|---|---|---|---|
| Unfiled | Anjuta 2.0 write up | - | Completed | - |
| Unfiled | Update credit list in AUTHORS file | - | Completed | - |
| Unfiled | Implement IAnjutaPrint | - | Completed | - |
| Unfiled | Performance Profiler plugin | $500 USD | Completed | #359478 |
| Unfiled | Better toolbar and plugins icons | $100 USD | Completed | #480093 |
| libanjuta | Key notification API | - | Completed | - |
| libanjuta | Plugins unloading | - | Completed | - |
| libanjuta | Progress bar | - | Completed | - |
| libanjuta | Implement preferences as interface | - | Completed | - |
| libanjuta | Add a 'Remembered plugins' page in Settings->plugins dialog | - | Completed | - |
| libanjuta | On demand preferences widgets creation | $150 USD | Completed | #445314 |
| libanjuta | Move encodings source files | - | Completed | - |
| Plugin: Editor | Add "saved" signal | - | Completed | - |
| Plugin: Editor | Enable 'Tab' auto-indentation | - | Completed | - |
| Plugin: Editor | Update UI based on save point state. | - | Completed | - |
| Plugin: Editor | Add editor view on idle | - | Completed | - |
| Plugin: Editor | Hover tooltip on editor tabs | - | Completed | - |
| Plugin: Editor | gnome vfs notification for 'File changed on disk' | - | Completed | - |
| Plugin: Editor | Expose editor functions to IAnjutaEditor | - | Completed | - |
| Plugin: Project Manager | Error messages for loading project | - | Completed | - |
| Plugin: Project Manager | Implemente IAnjutaProjectManager | - | Completed | - |
| Plugin: Project Manager | Display progress window | - | Completed | - |
| Plugin: Project Manager | Context menu | - | Completed | - |
| Plugin: Project Manager | Implemente "Properties" method | - | Completed | - |
| Plugin: Automake Build | Project manager watch | - | Completed | - |
| Plugin: Symbol Browser | Destroy file tags | - | Completed | - |
| Plugin: Symbol Browser | Apply autocompletion patch | - | Completed | - |
| Plugin: Symbol Browser | Refresh symbol-view on idle | - | Completed | - |
| Plugin: Symbol Browser | Display progress window | - | Completed | - |
| Plugin: Symbol Browser | Update on Add/Remove files in project | - | Completed | - |
| Plugin: Symbol Browser | Updated tags image on file save | - | Completed | - |
| Plugin: Symbol Browser | Add dialog to create symbol tags in preferences | - | Completed | - |
| Plugin: Symbol Browser | Create IAnjutaSymbols interface | - | Completed | - |
| Documentation | Update README, HACKING and ROADMAP files | - | Completed | - |
| Plugin: File Loader | Open with plugins | - | Completed | - |
| Plugin: File Loader | Project manager watch | - | Completed | - |
| Plugin: Task Manager | Scrollbars | - | Completed | - |
| Plugin: Task Manager | Remove text nodes during save | - | Completed | - |
| Plugin: Task Manager | Column sorting | - | Completed | - |
| Plugin: Task Manager | Text wrap | - | Completed | - |
| Plugin: Project Wizard | Prompt error when autogen could not be found | - | Completed | - |
| Plugin: Project Wizard | Proper message output | - | Completed | - |
| Plugin: Project Wizard | Test and fix all project wizards templates | $50 USD | Completed | #394184 |
| anjuta | Show toolbars | - | Completed | - |
| anjuta | Use class macros for type casting in all plugin classes | $20 USD | Completed | #374665 |
| anjuta | Improve subvestion and cvs plugins | $300 USD | Completed | #457477 |
| anjuta | Save and load user sessions | - | Completed | - |
| Plugin: Macros | Dialogs do not close with escape | - | Completed | - |
| Plugin: Message Manager | Make next/previous work | - | Completed | - |
| Plugin: Message Manager | Next/Prev shortcuts | - | Completed | - |
| Plugin: Message Manager | Save messages | - | Completed | - |
| Plugin: Message Manager | Complete preferences hooks | - | Completed | - |
| Plugin: Debugger | Executable choices when starting debugger | - | Completed | - |
| Plugin: Debugger | Use gdb MI interface | - | Completed | - |
| Plugin: Debugger | Complete UI and other porting | - | Completed | - |
| Plugin: Debugger | Add a disassembly window | - | Completed | - |
| Plugin: Debugger | Multi-thread support | $150 USD | Completed | #522474 |
| Plugin: Debugger | Cleaning the debugger plugin code | $20 USD | Completed | - |
| Plugin: Terminal | Fix crash on docking | - | Completed | - |
| Plugin: Default Profile | The profile should record user activated plugins | - | Completed | - |
| Plugin: Subversion | Completed the remaining subversion operations | - | Completed | - |
| Plugin: Executer | Create executor plugin | - | Completed | - |
| Pluing: Class wizard | Improve class wizard | $200 USD | Completed | #359862 |