Inkscape Development Roadmap

NOTE: This is a working document showing specific near-term tasks needed for achieving milestones. The following is available in formal form at: http://www.inkscape.org/roadmap.php and the number in front of the version is in reference to the milestone.

Milestones 0-5 have been completed since the start of the Inkscape Project.

Milestone 6 - Features and Fixes - Inkscape 0.40

New/Changed Dependencies

(DONE) Add a dependency on libgc (the Boehm conservative collector), which will be required for the AST code [mental]

(DONE) Switch to sigc++ 2 + gtkmm 2 early in 0.40, before we start doing gtkmm-intensive stuff like the layers dialog etc. [mental]

(DONE) Add Gtk-Wimp (for windows theming)

(DONE) Use new file dialog when GTK 2.4 is released (but need to smooth out)

Implement backup functionalty for documents and preferences.xml, ideally with versioning like in Emacs

Implement Rounding for arbitrary paths

Milestone 9 - RFE's & Extensions Implementation - Inkscape 0.43

New/Changed Dependencies

Add a dependency on libcroco (which will be needed for the CSS portion of AST) [mental]

Internals

Implement extension API

Implement extension registry

Create Extension preferences dialog

Website tool for contributing new extensions

Reduce open/total RFE ratio from 82% to 65%

Implement on-canvas editing of gradients, patterns, and masks

Create an SPObject API for tracking references and avoiding id clashes on import and interdocument copy/paste. What we need are a void SPDocument::importCopies([set of SPObjects]), and an [set of SPObjects] SPObject::dependencies() method.

Milestone 11 - Style Refactoring - Inkscape 0.45

Eliminate use of the style.h types in as much of codebase as possible, particularly display/*.

Change to use of GQuarks instead of #defines where feasible

Milestone 12 - Bug Hunt & RFE's - Inkscape 0.46

Reduce open/total RFE ratio to 50%

Reduce open/total bug ratio to 5%

Milestone 13 - Drawing Feature Enhancements - Inkscape 0.47

Object-to-object snapping / Snap points

(DONE) Markers

Enhanced grid system

Inter-application cut-and-paste

Inter-application drag-and-drop

Clipart manager GUI

Hyperlinking

Load-from-URL

Milestone 14 - Style Rewrite & libcroco - Inkscape 0.48

Replace style.cpp entirely, with a clearer and cleaner version.

Integrate use of libcroco for handling Cascading Style Sheets.

Palettes

Milestone 15 - Cairoification - Inkscape 0.49

Prereq: Is renderer immune to the same kinds of numerical problems we see with our new renderer, libnr, or libart?

Masking

Milestone 16 - Animation - Inkscape 0.50

Prereq: We need a conceptualization of how it should work

Implement full animation support

Milestone 17 - Extract SVG Canvas into a library - Inkscape 0.51

Prereq: We need an API proposed for it

Milestone 18 - RFE's - Inkscape 0.52

Reduce open/total RFE ratio to 40%

(MAYBE) start thinking about 1.0...

Milestone [Future]

Investigate performance measurement testing for Inkscape

Convert all tabs into spaces (convert tabs to 4 spaces)

Rename all 'SPFooBar' routines to 'FooBar' and put into namespaces

(DONE) dialogs folder

Investigate resurrecting Bonobo component

Rework text layout code to use PangoLayout

Implement LittleCMS as color management system

WebDAV/FTP support via GNOME-VFS, Neon, or the like

Redesign the text creation/editing/handling subsystem - what would a "dream" text system be?

Investigate SVG docs where SVG is not the default namespace used at the root -- e.g. <svg:svg xmlns:svg="http://...etc"><svg:rect.../><blah></svg:svg> -- <blah> would end up getting shoehorned into the svg namespace