Roadmap
This roadmap describes the current plans and milestones for future releases of SciDAVis.
Release Policy
Release numbers will follow the scheme major.minor.bugfix.
“major” releases differ considerably in architecture and potentially break backwards-compatibility to versions with a different major version number, particularly with respect to scripts and plugins. Therefore, they will occur only very infrequently. Usually, a major version change also means that a very important milestone has been reached.
“minor” releases add some new functionality, but do not change existing interfaces or otherwise break other people’s code. If they do, that’s a bug and, obviously, we’re trying to avoid bugs. :-) An exception to this are minor releases before the first major release (1.0.0) when the main architecture is not finished yet. To indicate that there is a bigger change than a normal minor release, a release number may be skipped.
As the name suggests, “bugfix” releases fix bugs in the previous minor release, but do not add new functionality, so they’re unlikely to introduce new bugs.
In addition to the latest and greatest release with the newest features, we’ll support a “stable” line of bugfix releases for the last-but-one minor release. In the following, only x.y.0 releases are discussed. Concurrently to the development of the next feature release, bugs we get to know about will be fixed and, depending on their number and severity, bugfix releases (x.y.z) will be provided.
0.1.0: Improved user interface and fixes to project file loading
Starting point was the QtiPlot codebase somewhere between 0.9-rc2 and 0.9 (Subversion revision 621, to be precise).
The goal of this release was to improve some aspects of the user interface so that prospective users and contributors can see where we’re going.
Released 2007-08-05
Most important changes (since QtiPlot 0.9-rc2):
- improved handling of custom decimal separators
- many improvements/additions to Python scripting
- improved user interface: restructured menus and tool bars, several restructured dialogs
- script window removed since notes offer the same capabilities
- more stable project loading/saving
- easier ASCII import/export, improved appending of projects and Origin graphs
- lots of small improvements and bug fixes
- export to eps and pdf without large white borders
0.2.0: Undo/redo for tables and matrices, UI improvements
Plans: Most notably for users, this release will feature multi-level undo/redo for changes to tables and matrices. Additionally, the options dialogs for tables and matrices will be integrated into their views (sub-windows) so they can be accessed faster. A complete rewrite of the table and matrix internals will speed up the execution of all related operations considerably. This also includes storing of numbers with full precision even if not all digits are shown.
Internally, from this release on SciDAVis will start using a new data storage architecture based on a column-based abstraction of a typed data source. The data will be separated from the GUI and the API to allow the insertion of undo/redo commands and generally improve code flexibility. It will also greatly faciliate improving the handling of dates/times in columns in the future. The new internal data structures are optimized to use less memory than those before which is very important to free some memory for the undo/redo framework.
Released 2009-02-14
Most important new features (since 0.1.4):
- multi-level undo/redo for all operations on tables and matrices
- many operations on tables and matrices now support non-contiguous selections
- the important options/controls for matrices and tables are now integrated in a sidebar of control tabs which make working with column or matrix based data much more convenient (avoiding frequent opening and closing of dialogs)
- tables now support an individual formula for each cell
- numeric values are now stored independent of their textual representation, i.e., you don’t lose data when hiding decimal digits
- formula edit mode: tables feature a new mode which allows the user to individually edit the formula for each cell
- invalid cells: tables now mark cells without input as invalid rather than treating them as 0; these cells are ignored in plots
- date/time values are now internally stored as QDateTime objects which opens up many new possibilities of date/time manipulation using PyQt/Python scripting
- many small improvements and bug fixes (including an overhaul of fit weighting introduced in 0.1.4)
0.3.0 and beyond: Close cooperation with the LabPlot project
Plans: Use a common backend with two frontends, one with full KDE4 integration (called LabPlot 2.x) and one with no KDE depenencies (pure Qt so to say) for easier cross-platform use (called SciDAVis). (Yes, we know that KDE4 is in principle cross-platform as well. But we find that KDE on Windows and Mac OS X in its current state is not ready to be forced on every SciDAVis user.) This promises a faster development speed for both projects while focussing on slightly different audiences. From the user’s point of view, there will still be two different applications. From the developer’s point of view, there may soon be one common code base which allows the choice of the frontend at compile time.
0.3.0: Aspect-framework/hierarchial project structure, modular structure using Qt’s plug-in system, XML file format
Plans: Most notably for users, the way the project contents are shown in the project explorer will change considerably. You will for example be able to change label and comment of a column in the project explorer. Internally, from this release on SciDAVis will be using a flexible data analysis and data storage architecture based on a column-based abstraction of a typed data source and filters modelled after integrated electronic circuits (in the sense that they are a “black box” with a number of input and output ports). The project will internally be stored in a hierarchial tree consisting of what we call “aspects”. The aspects and related classes will follow a “5 layer design” somewhat comparable with the model/view/presenter paradigm. This will greatly improve the long-term maintainability of the application. The application code will be separated into several independent modules interacting through Qt’s plug-in system. This will faciliate adding new features later and also improve the maintainability. The file format for SciDAVis projects will be replaced by a completely XML based one. This allows to use robust XML parsers, much better error handling and easy validity-checking of project files. Loading files in the legacy format will continue to be supported as an import function.
0.5.0: New visualisation engine
Plans: The Qwt library will be replaced by a new engine based on Qt’s GraphicsView framework, allowing, among other benefits, the use of floating-point linewidths. This will solve many problems such as ugly gaps between axes and bad scaling. The visualization engine will be optimized to achieve optimum ouput quality. The resolution of the the output will be totally independent of the screen resolutions and the size of the plot windows. Custom page sizes for PDF exports will be supported making exported PDF figures ideal to use with PdfLaTex.
0.7.0: Removal of muParser dependence such that everything can be done in Python, improved plotting
- All muParser-specific parts will be rewritten to also be able to use Python and allow using of python defined functions for curve fitting etc.
- Improvements to the Python bindings to allow more powerful Python scripts.
- Improvements to the plotting engine such as support for axes breaks, polar and ternary plots, waterfall plots and maybe other things.
- XML for copy and paste
1.0.0: Polishing, bug fixing, bring the handbook up-to-date, relaxNG schema
- Polishing of the new features introduced in the previous versions; bring everything in a state that allows minor releases that don’t break anything that worked in the previous version
- Bring the handbook up-to-date to release 1.0.0 with a really nice handbook that contains all new features
- write a relaxNG schema for the SciDAVis file format to check the validity of project files (this may not make sense if saving of unknown plug-ins is supported)
Possible plans beyond 1.0.0:
- Support for other scripting languages such as Ruby (maybe use Kross when its more mature and KDE independent)
- Plugins in C++ and/or scripting languages, e.g. for implementing new plot/curve types
- Add more demo scripts, plugins and tutorials, encourage users to contribute plugins for inclusion into future versions and/or to a central plugin database.
- Lots of other features like baseline-detection,
- Import/export filters for OpenDocument spreadsheets.
The crystal ball becomes really fuzzy from this point on. Que sera, sera. ;-)
