Difference between revisions of "Development: Todo List"

From WxWiki
Jump to navigation Jump to search
m (Reverted edits by 80.98.198.129 (Talk); changed back to last version by 71.97.210.197)
m (Reverted edits by 141.74.1.1 (Talk) to last revision by Chowette)
(21 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 +
{{ToC Right}}
 +
 
This is a collection of the various things which it would be nice to include in wxWidgets. They may or may not be scheduled or funded. If you're interested in helping with wxWidgets development, one of the small projects below could be a great way to [[Development: How To Contribute|join the team]]!
 
This is a collection of the various things which it would be nice to include in wxWidgets. They may or may not be scheduled or funded. If you're interested in helping with wxWidgets development, one of the small projects below could be a great way to [[Development: How To Contribute|join the team]]!
  
== General ==
+
== New Development ==
  
 
=== High priority ===
 
=== High priority ===
  
 
* Provide a possibility to use individual wxUniv controls from the native ports.
 
* Provide a possibility to use individual wxUniv controls from the native ports.
 
 
* Give wxFileSystem a better API and further integrate it with wxWidgets (currently only wxHtml uses it but it could be also used by many other classes)
 
* Give wxFileSystem a better API and further integrate it with wxWidgets (currently only wxHtml uses it but it could be also used by many other classes)
 
* Finish wxDataViewControl:
 
** Add support for hierarchical structure (so that it could replace wxTreeCtrl as well as wxListCtrl)
 
** Write native wxMSW and wxMac implementations
 
(note that this is one of our GSoC 2007 projects)
 
 
 
* wxHTML2, using native HTML renderers where available.
 
* wxHTML2, using native HTML renderers where available.
 
+
* Provide character classification and string case conversion, sorting and comparison functions working on full Unicode range and not just on characters in the current locale (either using native API of each platform or [http://www.icu-project.org/ ICU] as discussed in [http://thread.gmane.org/gmane.comp.lib.wxwidgets.general/57972 this thread]).
* Add image support to wxButton (Jamie Gadd has the patch for wxMSW, with a bit work it should be extended to others ports) merging wxBitmapButton with wxButton, see [http://thread.gmane.org/gmane.comp.lib.wxwidgets.devel/71288/focus=71433 this thread] for more information.
 
 
 
 
* Implement wxMaskedTextCtrl in C++ (it's already available in wxPython)
 
* Implement wxMaskedTextCtrl in C++ (it's already available in wxPython)
 
+
* Exceptions: we are not going to use exceptions in wxWidgets itself but our code should become exception safe. This is a very difficult task as it means that no resource allocations (including memory, files, whatever) should be done without using a smart pointer-like object to store the result as it is the only way to prevent resource leaks in presence of exceptions
* Update the included third party libraries, especially libtiff which is currently a modified 3.6.1 version while 3.8.2 is available and fixes a lot of bugs, [http://sourceforge.net/tracker/index.php?func=detail&aid=1696268&group_id=9863&atid=109863 some of them] fatal.
+
* Real RTTI: optionally use the real RTTI instead of wx emulation of it. Keep the current stuff for backwards compatibility. See also the XTI issue.
 +
* Properties/Member-Metadata, 2-Step Init with virtual create
 +
* Change Idle Handling: Current Implementation is using too many CPU cycles
 +
* Loose Coupling Event-Source Event-Sink: kind of the NextStep/C# very performant coupling, exposing events via Metadata
  
 
=== Medium priority ===
 
=== Medium priority ===
  
 
* MIME types code needs a cleanup and a GUI interface to allow setting the MIME types and related information from the program itself  
 
* MIME types code needs a cleanup and a GUI interface to allow setting the MIME types and related information from the program itself  
 
+
* wxReBar control (moveable toolbars, menubars) - see http://wxcode.sourceforge.net/showcomp.php?name=wxCoolBar for an already existing implementation
* wxReBar control (moveable toolbars, menubars) - see http://www.planet-berlin-it.de/project/wxCoolBar for an already existing implementation
+
* Native implementation of wxCalendarCtrl for wxMac (see http://developer.apple.com/documentation/Carbon/Reference/Control_Manager/Reference/reference.html#//apple_ref/c/func/CreateClockControl and/or http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSDatePicker_Class/Reference/Reference.html#//apple_ref/occ/cl/NSDatePicker)
 
+
* Improve IPv6 support, currently some functionality is simply missing for IPv6 sockets and we also don't have any tests for them.
 
* Avoid calling the wxYield family of functions in internal code. wxYield causes problems in combination with pending events leading to all sorts of strange side-effects.
 
* Avoid calling the wxYield family of functions in internal code. wxYield causes problems in combination with pending events leading to all sorts of strange side-effects.
 
 
* Move wxApp::Yield() to wxEventLoop::Yield(), where it logically belongs (see wxDFB port for partial step in this direction)
 
* Move wxApp::Yield() to wxEventLoop::Yield(), where it logically belongs (see wxDFB port for partial step in this direction)
 
+
* Add persistent control support: see [[PersistentControls]] page for more info
* add persistent control support: see [[PersistentControls]] page for more info
+
* Add wxFont::SetAntiAliasingMode(enum { Default, On, Off }) method which can be implemented easily at least for MSW by using the corresponding LOGFONT::lfQuality values.
 
+
* Add wxUSE_HOTKEY and any other missing options to configure.
* add wxFont::SetAntiAliasingMode(enum { Default, On, Off }) method which can be implemented easily at least for MSW by using the corresponding LOGFONT::lfQuality values.
 
 
 
* add possibility to add custom controls to file open dialog, e.g. ideally by providing a virtual GetCustomControlsSizer() function in it which could be overridden to create a sizer containing the custom controls which would then be inserted in the standard dialog in an appropriate way (and the events from them would be processed normally)
 
  
 
=== Low priority ===
 
=== Low priority ===
Line 43: Line 35:
 
** portable wxXMLConfig for all platforms (there is a version doing it [http://www.nicdex.com/dev/files/wxXMLConfig.h here] and [http://www.nicdex.com/dev/files/wxXMLConfig.cpp here] but it duplicates too much of wxFileConfig code unfortunately)
 
** portable wxXMLConfig for all platforms (there is a version doing it [http://www.nicdex.com/dev/files/wxXMLConfig.h here] and [http://www.nicdex.com/dev/files/wxXMLConfig.cpp here] but it duplicates too much of wxFileConfig code unfortunately)
 
** wxApplePrefConfig for working with .pref files on Mac OS X  
 
** wxApplePrefConfig for working with .pref files on Mac OS X  
 
 
* wxStaticBox: Hide the platform problems (GTK: 'children' must be siblings) in encapsulation in order to avoid problems on ports where the hierarchy must be 'correct'.
 
* wxStaticBox: Hide the platform problems (GTK: 'children' must be siblings) in encapsulation in order to avoid problems on ports where the hierarchy must be 'correct'.
 
 
* Standard menu and toolbar customization dialogs
 
* Standard menu and toolbar customization dialogs
 
 
* Extend wxLocale to return more information, e.g. currency formatting, list separator, ...
 
* Extend wxLocale to return more information, e.g. currency formatting, list separator, ...
 +
* Improve wxSpinCtrl to allow showing something else than just its value in the text field. This should be done by implementing support for wxSpinCtrlFormatter class which would have Format() and Parse() virtual methods which could be implemented by a user-defined class which the user code would associate with the control and which would mediate the conversion between the value and the text field contents.
 +
* Fix alpha handling in wxIconBundle under MSW (see [http://thread.gmane.org/gmane.comp.lib.wxwidgets.devel/95990 this thread])
 +
* Update the coding standards guide
 +
* Complete replacing TRUE/FALSE with true/false
  
* Improve wxSpinCtrl to allow showing something else than just its value in the text field. This should be done by implementing support for wxSpinCtrlFormatter class which would have Format() and Parse() virtual methods which could be implemented by a user-defined class which the user coode would associate with the control and which would mediate the conversion between the value and the text field contents.
+
=== Everything else ===
  
* Remove wxUSE_PROLOGIO stuff from contrib/src/ogl sources to suppress warnings about wxUSE_PROLOGIO not being defined (this is trivial)
+
Most of the following items need to be discussed before being implemented.
 
 
=== Everything else ===
 
  
 
* Synchronisation API between mobile and desktop.
 
* Synchronisation API between mobile and desktop.
Line 63: Line 54:
 
* wxDC Support for point to char-position with text rendering
 
* wxDC Support for point to char-position with text rendering
  
== Documentation ==
+
Other miscellaneous items to review:
 +
 
 +
* wxStreams review
 +
* wxURL?
 +
* a way to tell wxWidgets to check for any non-portable usage,  for a given set of platforms. Sometimes you want to be able  to get away with non-portable usage, and sometimes not.  This is probably way too time-consuming to implement.- In headers, don't silently omit contents if the features for this  header is switched off. Instead, emit an error message.
 +
* Implement native tree view and colour dialog in wxGTK.
 +
* Better way to specify About, Preferences menu ids under wxMac.
 +
* Must be able to portably specify relaying out a frame after the toolbar  has been destroyed or recreated. On wxMSW, this is done in  ~wxToolBar. On wxGTK, in SetToolBar. In wxMac, not at all,  but sending a wxSizeEvent will do it.
 +
* Need wxRect wxToolBar::GetToolRect(int id) or similar so we can  align a popup menu with a toolbar button.
 +
* wxMac font selector dialog is the generic font selector -  horrible.
 +
* No Append(wxArrayString&) for wxChoice and wxComboBox in wxGTK. Probably other functions too. Consider adding Insert to these classes, as per the patch on SF.
 +
* Add wxArrayString methods to wxTextValidator and any other  class that needs them.
 +
* Add wxNotebook::GetTabRect or similar so we can estimate  page size better in wxNotebookBase::CalcSizeFromPage.
 +
* Add function to clear all wxNotebook tabs without destroying the pages.
 +
* Add individual setters to wxScrollBar and other classes that use a combined setter.
 +
* Remove traces of old resource system from wxWizard.
 +
* Have wxDirCtrl as alias for wxGenericDirCtrl.
 +
* Allow instant reaction to left-up in a wxGrid cell (extend editor API) to work around bad checkbox  behaviour (click, click, click, click away...) and reduce checkbox size on non-Windows platforms.
 +
* Add wxNotebook::HitTest for non-Windows platforms.
 +
* Implement rebar for all platforms. This will help us get closer to native look and feel, e.g. the gradient shadow on XP toolbars.
 +
 
 +
== Platform Specific Todo Lists ==
 +
 
 +
=== wxCocoa ===
 +
 
 +
* Classes that are still complete stubs: wxPen, wxRegion, wxIcon ,wxCursor, wxFont, wxFontEnumerator
 +
* Dynamically linked library
 +
* wxCocoa doesn't yet have enough implementation to compile to a dylib.
 +
 
 +
=== wxMac ===
 +
 
 +
* Implement toggle buttons
 +
* Implement popup windows
 +
* Implement joystick support
 +
* Fix wxGetKeyState using HID and GetKeys and low memory keymap
 +
* Add sound manager part to wxSound and commit it as classic also
 +
* Focus rectangles are off on smaller text controls on 10.2 (10.3 also?)
 +
 
 +
=== wxMotif ===
 +
 
 +
General comment: see the following site for useful Motif widgets: ftp://ftp.x.org/contrib/widgets/motif
 +
 
 +
Also, grep for TODO comments in source.
 +
 
 +
High Priority:
 +
 
 +
* Have a central/per app file for colour settings, with a wxWinapp to allow changing settings interactively.
 +
* Implementation of default event processing (i.e. passing on an interceptedevent such as OnChar to the system). Currently, such events are processed  anyway, so for example intercepting left-click in a widget doesn't disable  the default behaviour. See TODOs in window.cpp.
 +
* wxToolTip
 +
* Miscellaneous events.
 +
* Allow wxFrame and other widgets to have mouse event handlers.
 +
 
 +
Low Priority:
 +
 
 +
* Painting a retained window could be optimized further (see  wxWindow::DoPaint).
 +
* Visuals: how to select an appropriate one? See Thomas Runge's  visual patch for 1.68 -- should be straightforward to port to 2.0.
 +
* Work out why XFreeFont in font.cpp produces a segv. This is  currently commented out, which presumably causes a memory leak.
 +
* New wxHelp version: try using the XmHTML widget at  http://www.xs4all.nl/~ripley/XmHTML/.  We need to:
 +
** Make a minimal distribution under wx/src/xmhtml, just enough    to compile the source.
 +
** Add XMHTML_C_SRC to src/motif/makefile.unx with the source files    listed.
 +
** Make sure we can compile the sources, passing the correct    flags for zlib/png compilation.
 +
** Make a wxHTMLWindow class from e.g. examples/example_2.c. Should    probably make the cache and history facilities part of the class.
 +
** Add the driver code to src/motif/helphtml.cpp (a frame, toolbar,    history list).
 +
* Drag and drop. Use a standard X drag  and drop standard - see http://www.cco.caltech.edu/~jafl/xdnd/  or use Motif drag and drop as described here:  http://www.motifzone.com/tmd/articles/DnD/dnd.html
 +
* Optimize colour management so we don't get clashes when e.g.  Netscape is running. See:  http://www.motifzone.com/tmd/articles/John_Cwikla/index.html
 +
* wxRCConfig (a config class using X .rc files). Could simply  implement it in terms of current wxGet/WriteResource functions.
 +
* Miscellaneous classes e.g. wxJoystick (identical to GTK's one for Linux)
 +
* Work out why wxTextCtrl doesn't work as a stream buffer under gcc
  
* The possibility of moving doc into header files with tool support, or translation to XML with support from scripts (comparison of headers and documentation).
+
=== wxUniversal ===
* Detailed review of doc accuracy.
+
 
* wxDC: Precise definition of default/initial state.
+
* Renderers within native ports.
* wxDC: Pixelwise definition of operations (e.g. last point of a line not drawn).
+
 
* Events: for all controls state clearly when calling a member function results in an event being generated and when it doesn't (possibly updating also the 'Events generated by the user vs programmatically generated events' paragraph of the 'Event handling overview' with the list of the functions which break that rule).
+
=== wxGTK ===
* Coordinates: state clearly which type of coordinates are returned by the various Get*Point() or similar functions - often they are client coordinates but not always
+
 
* Document all wxUSE_XXX settings (it would be also nice to centralize their definitions in a single file instead of having them in several different setup.h) <br> See patch 1755127 "Add wxUSE Doc as tex file" as partial solution.
+
* wxStaticBox: hide the platform problems (GTK: 'children' must be siblings) in encapsulation in order to avoid problems on ports where the hierarchy must be 'correct'.
* Update the coding standards guide
+
 
 +
== Improvements to Existing Code ==
 +
 
 +
[[Development: Incomplete API|This page]] lists many of the classes/methods which are not implemented under all platforms. In addition, our [http://trac.wxwidgets.org/report/1 bug tracker] page has an almost unlimited supply of bugs to fix.
 +
 
 +
A list of improvements needed for wxWidgets documentation is maintained [http://docs.wxwidgets.org/trunk/todo.html in the manual].
 +
 
 +
=== Refactoring ===
 +
 
 +
* Use wxHeaderCtrl in the generic wxListCtrl implementation to avoid code duplication and to add more features to wxListCtrl (notably columns reordering via drag and drop).
 +
 
 +
=== Architecture ===
 +
 
 +
* We aim to arrive at a lazy initialization of modules only when they are first needed. Dependency information between modules is needed. Dynamic Plug-In loading and unloading must be compatible with that.
 +
 
 +
=== Printing ===
 +
 
 +
* Page preflighting capabilities in order to determine number of pages.
 +
* Preview UI enhancement.
  
 
== Infrastructure ==
 
== Infrastructure ==
  
* Set up [[http://buildbot.sf.net/ buildbot]] or similar system for continuous build tests
+
* Set up a machine to automatically spin at least some of the releases using a specification of the type of release, tag to use, etc.
* Use SourceForge compile farm (or other facilities) to automatically spin at least some of the releases using a specification of the type of release, tag to use, etc.
 
 
* Make building Debian packages less painful, in particular try to make it possible to build them in the source tree instead of current roundabout way; automate building of both ANSI and Unicode packages (the former doesn't work with <tt>dpkg-buildpackage</tt> as there is no way to pass <tt>WX_UNICODE=0</tt> to <tt>debian/rules</tt> when using it).
 
* Make building Debian packages less painful, in particular try to make it possible to build them in the source tree instead of current roundabout way; automate building of both ANSI and Unicode packages (the former doesn't work with <tt>dpkg-buildpackage</tt> as there is no way to pass <tt>WX_UNICODE=0</tt> to <tt>debian/rules</tt> when using it).

Revision as of 11:36, 30 June 2010

This is a collection of the various things which it would be nice to include in wxWidgets. They may or may not be scheduled or funded. If you're interested in helping with wxWidgets development, one of the small projects below could be a great way to join the team!

New Development

High priority

  • Provide a possibility to use individual wxUniv controls from the native ports.
  • Give wxFileSystem a better API and further integrate it with wxWidgets (currently only wxHtml uses it but it could be also used by many other classes)
  • wxHTML2, using native HTML renderers where available.
  • Provide character classification and string case conversion, sorting and comparison functions working on full Unicode range and not just on characters in the current locale (either using native API of each platform or ICU as discussed in this thread).
  • Implement wxMaskedTextCtrl in C++ (it's already available in wxPython)
  • Exceptions: we are not going to use exceptions in wxWidgets itself but our code should become exception safe. This is a very difficult task as it means that no resource allocations (including memory, files, whatever) should be done without using a smart pointer-like object to store the result as it is the only way to prevent resource leaks in presence of exceptions
  • Real RTTI: optionally use the real RTTI instead of wx emulation of it. Keep the current stuff for backwards compatibility. See also the XTI issue.
  • Properties/Member-Metadata, 2-Step Init with virtual create
  • Change Idle Handling: Current Implementation is using too many CPU cycles
  • Loose Coupling Event-Source Event-Sink: kind of the NextStep/C# very performant coupling, exposing events via Metadata

Medium priority

Low priority

  • Write wxConfig implementation using XML as backend:
    • portable wxXMLConfig for all platforms (there is a version doing it here and here but it duplicates too much of wxFileConfig code unfortunately)
    • wxApplePrefConfig for working with .pref files on Mac OS X
  • wxStaticBox: Hide the platform problems (GTK: 'children' must be siblings) in encapsulation in order to avoid problems on ports where the hierarchy must be 'correct'.
  • Standard menu and toolbar customization dialogs
  • Extend wxLocale to return more information, e.g. currency formatting, list separator, ...
  • Improve wxSpinCtrl to allow showing something else than just its value in the text field. This should be done by implementing support for wxSpinCtrlFormatter class which would have Format() and Parse() virtual methods which could be implemented by a user-defined class which the user code would associate with the control and which would mediate the conversion between the value and the text field contents.
  • Fix alpha handling in wxIconBundle under MSW (see this thread)
  • Update the coding standards guide
  • Complete replacing TRUE/FALSE with true/false

Everything else

Most of the following items need to be discussed before being implemented.

  • Synchronisation API between mobile and desktop.
  • Extend and unify drag and drop handling (e.g. we need to specify multiple drop targets that can handle multiple formats).
  • Serial and parallel port support.
  • Modem and telephony support.
  • Improve accessibility support.
  • wxDC Support for point to char-position with text rendering

Other miscellaneous items to review:

  • wxStreams review
  • wxURL?
  • a way to tell wxWidgets to check for any non-portable usage, for a given set of platforms. Sometimes you want to be able to get away with non-portable usage, and sometimes not. This is probably way too time-consuming to implement.- In headers, don't silently omit contents if the features for this header is switched off. Instead, emit an error message.
  • Implement native tree view and colour dialog in wxGTK.
  • Better way to specify About, Preferences menu ids under wxMac.
  • Must be able to portably specify relaying out a frame after the toolbar has been destroyed or recreated. On wxMSW, this is done in ~wxToolBar. On wxGTK, in SetToolBar. In wxMac, not at all, but sending a wxSizeEvent will do it.
  • Need wxRect wxToolBar::GetToolRect(int id) or similar so we can align a popup menu with a toolbar button.
  • wxMac font selector dialog is the generic font selector - horrible.
  • No Append(wxArrayString&) for wxChoice and wxComboBox in wxGTK. Probably other functions too. Consider adding Insert to these classes, as per the patch on SF.
  • Add wxArrayString methods to wxTextValidator and any other class that needs them.
  • Add wxNotebook::GetTabRect or similar so we can estimate page size better in wxNotebookBase::CalcSizeFromPage.
  • Add function to clear all wxNotebook tabs without destroying the pages.
  • Add individual setters to wxScrollBar and other classes that use a combined setter.
  • Remove traces of old resource system from wxWizard.
  • Have wxDirCtrl as alias for wxGenericDirCtrl.
  • Allow instant reaction to left-up in a wxGrid cell (extend editor API) to work around bad checkbox behaviour (click, click, click, click away...) and reduce checkbox size on non-Windows platforms.
  • Add wxNotebook::HitTest for non-Windows platforms.
  • Implement rebar for all platforms. This will help us get closer to native look and feel, e.g. the gradient shadow on XP toolbars.

Platform Specific Todo Lists

wxCocoa

  • Classes that are still complete stubs: wxPen, wxRegion, wxIcon ,wxCursor, wxFont, wxFontEnumerator
  • Dynamically linked library
  • wxCocoa doesn't yet have enough implementation to compile to a dylib.

wxMac

  • Implement toggle buttons
  • Implement popup windows
  • Implement joystick support
  • Fix wxGetKeyState using HID and GetKeys and low memory keymap
  • Add sound manager part to wxSound and commit it as classic also
  • Focus rectangles are off on smaller text controls on 10.2 (10.3 also?)

wxMotif

General comment: see the following site for useful Motif widgets: ftp://ftp.x.org/contrib/widgets/motif

Also, grep for TODO comments in source.

High Priority:

  • Have a central/per app file for colour settings, with a wxWinapp to allow changing settings interactively.
  • Implementation of default event processing (i.e. passing on an interceptedevent such as OnChar to the system). Currently, such events are processed anyway, so for example intercepting left-click in a widget doesn't disable the default behaviour. See TODOs in window.cpp.
  • wxToolTip
  • Miscellaneous events.
  • Allow wxFrame and other widgets to have mouse event handlers.

Low Priority:

  • Painting a retained window could be optimized further (see wxWindow::DoPaint).
  • Visuals: how to select an appropriate one? See Thomas Runge's visual patch for 1.68 -- should be straightforward to port to 2.0.
  • Work out why XFreeFont in font.cpp produces a segv. This is currently commented out, which presumably causes a memory leak.
  • New wxHelp version: try using the XmHTML widget at http://www.xs4all.nl/~ripley/XmHTML/. We need to:
    • Make a minimal distribution under wx/src/xmhtml, just enough to compile the source.
    • Add XMHTML_C_SRC to src/motif/makefile.unx with the source files listed.
    • Make sure we can compile the sources, passing the correct flags for zlib/png compilation.
    • Make a wxHTMLWindow class from e.g. examples/example_2.c. Should probably make the cache and history facilities part of the class.
    • Add the driver code to src/motif/helphtml.cpp (a frame, toolbar, history list).
  • Drag and drop. Use a standard X drag and drop standard - see http://www.cco.caltech.edu/~jafl/xdnd/ or use Motif drag and drop as described here: http://www.motifzone.com/tmd/articles/DnD/dnd.html
  • Optimize colour management so we don't get clashes when e.g. Netscape is running. See: http://www.motifzone.com/tmd/articles/John_Cwikla/index.html
  • wxRCConfig (a config class using X .rc files). Could simply implement it in terms of current wxGet/WriteResource functions.
  • Miscellaneous classes e.g. wxJoystick (identical to GTK's one for Linux)
  • Work out why wxTextCtrl doesn't work as a stream buffer under gcc

wxUniversal

  • Renderers within native ports.

wxGTK

  • wxStaticBox: hide the platform problems (GTK: 'children' must be siblings) in encapsulation in order to avoid problems on ports where the hierarchy must be 'correct'.

Improvements to Existing Code

This page lists many of the classes/methods which are not implemented under all platforms. In addition, our bug tracker page has an almost unlimited supply of bugs to fix.

A list of improvements needed for wxWidgets documentation is maintained in the manual.

Refactoring

  • Use wxHeaderCtrl in the generic wxListCtrl implementation to avoid code duplication and to add more features to wxListCtrl (notably columns reordering via drag and drop).

Architecture

  • We aim to arrive at a lazy initialization of modules only when they are first needed. Dependency information between modules is needed. Dynamic Plug-In loading and unloading must be compatible with that.

Printing

  • Page preflighting capabilities in order to determine number of pages.
  • Preview UI enhancement.

Infrastructure

  • Set up a machine to automatically spin at least some of the releases using a specification of the type of release, tag to use, etc.
  • Make building Debian packages less painful, in particular try to make it possible to build them in the source tree instead of current roundabout way; automate building of both ANSI and Unicode packages (the former doesn't work with dpkg-buildpackage as there is no way to pass WX_UNICODE=0 to debian/rules when using it).