Difference between revisions of "Roadmap"

From Inkscape Wiki
Jump to navigation Jump to search
(Moving completed items to roadmap archive)
Line 4: Line 4:
  
 
''Milestones 0-9 have been completed since the start of the Inkscape Project. See [[OldRoadmap]]''
 
''Milestones 0-9 have been completed since the start of the Inkscape Project. See [[OldRoadmap]]''
 +
  
 
=== Milestone 12 - Inkscape 0.46 ===
 
=== Milestone 12 - Inkscape 0.46 ===
Line 10: Line 11:
 
* Gtk 2.8
 
* Gtk 2.8
  
Refactoring/Cleanup Effort:
+
Architectural Refactoring Effort:
 
* Eliminate use of the style.h types in as much of codebase as possible, particularly display/*.
 
* Eliminate use of the style.h types in as much of codebase as possible, particularly display/*.
 
* 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.
 
* 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.
 
* Implement [http://grin-optics.org gradient] UI "release" handler to deal with gradient garbage collection (see bug 984854)
 
* Implement [http://grin-optics.org gradient] UI "release" handler to deal with gradient garbage collection (see bug 984854)
* improvement of svg patterns UI - make it similar to gradient-drag, instead of piggybacking knotholder
+
* Replace style.cpp entirely, with a clearer and cleaner version.
 +
 
 +
Codebase Cleanup Effort:
 
* Change to use of GQuarks instead of #defines where feasible
 
* Change to use of GQuarks instead of #defines where feasible
 
* Learn and use autoscan and autoreconf to find out which configure tests are still needed.
 
* Learn and use autoscan and autoreconf to find out which configure tests are still needed.
Line 31: Line 34:
 
* Implement extension registry
 
* Implement extension registry
 
* Complete Extension preferences dialog
 
* Complete Extension preferences dialog
 +
 +
User Interface Effort:
 +
* Object-to-object snapping
 +
* Enhanced grid system
 +
* improvement of svg patterns UI - make it similar to gradient-drag, instead of piggybacking knotholder
 +
* Palettes
 +
** Custom palettes like from Gnome
 +
** Ability to load 3rd-party palettes (e.g. Pantone, Trumatch, Focoltone, Toyo, etc.)
  
 
Desktop Integration Effort:
 
Desktop Integration Effort:
 
* [[WebDAV/FTP]] support via GNOME-VFS, Neon, or the like
 
* [[WebDAV/FTP]] support via GNOME-VFS, Neon, or the like
 
* Make printing work more efficiently and reliably
 
* Make printing work more efficiently and reliably
 +
* Inter-application cut-and-paste
 +
* Inter-application drag-and-drop
 +
* Clipart manager GUI
  
 
Testing:
 
Testing:
Line 40: Line 54:
 
* Get 'make check' to pass on Win32 and OSX
 
* Get 'make check' to pass on Win32 and OSX
  
SVG Compliance
+
SVG Compliance:
 +
* Markers -
 
* masks/clippaths
 
* masks/clippaths
 
** on-canvas editing
 
** on-canvas editing
Line 50: Line 65:
 
* Gtk 2.10
 
* Gtk 2.10
  
* Reduce open/total RFE ratio to 40%
 
* Reduce open/total bug ratio to 5%
 
  
 
=== Milestone 14 - Inkscape 0.48 ===
 
=== Milestone 14 - Inkscape 0.48 ===
  
* Object-to-object snapping
 
* Markers -
 
* Enhanced grid system
 
* Inter-application cut-and-paste
 
* Inter-application drag-and-drop
 
* Clipart manager GUI
 
  
 
=== Milestone 15 - Inkscape 0.49 ===
 
=== Milestone 15 - Inkscape 0.49 ===
 
* Replace style.cpp entirely, with a clearer and cleaner version.
 
* (DONE) Integrate use of libcroco for handling Cascading Style Sheets.
 
 
* Palettes
 
** Custom palettes like from Gnome
 
** Ability to load 3rd-party palettes (e.g. Pantone, Trumatch, Focoltone, Toyo, etc.)
 
  
  
Line 91: Line 91:
  
 
* Implement [[LittleCMS]] as color management system
 
* Implement [[LittleCMS]] as color management system
* (DONE) Create a swatches dialog
 
  
 
=== Milestone 20 - Inkscape 0.54 ===
 
=== Milestone 20 - Inkscape 0.54 ===
  
 
=== Milestone 21 - Inkscape 0.55 ===
 
=== Milestone 21 - Inkscape 0.55 ===
 
* Reduce open/total RFE ratio to 30%
 
 
 
  
  

Revision as of 00:21, 23 January 2007

Inkscape Development Roadmap

NOTE: This is a working document showing specific near-term tasks needed for achieving milestones. The number in front of the version is in reference to the milestone.

Milestones 0-9 have been completed since the start of the Inkscape Project. See OldRoadmap


Milestone 12 - Inkscape 0.46

New/Changed Dependencies:

  • Gtk 2.8

Architectural Refactoring Effort:

  • Eliminate use of the style.h types in as much of codebase as possible, particularly display/*.
  • 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.
  • Implement gradient UI "release" handler to deal with gradient garbage collection (see bug 984854)
  • Replace style.cpp entirely, with a clearer and cleaner version.

Codebase Cleanup Effort:

  • Change to use of GQuarks instead of #defines where feasible
  • Learn and use autoscan and autoreconf to find out which configure tests are still needed.
  • Clean up configure.in
  • (PARTIALLY DONE) Directory Reorganization (rejon)

File Format Support Effort:

Extensions Effort:

  • Implement extension API
  • Implement extension registry
  • Complete Extension preferences dialog

User Interface Effort:

  • Object-to-object snapping
  • Enhanced grid system
  • improvement of svg patterns UI - make it similar to gradient-drag, instead of piggybacking knotholder
  • Palettes
    • Custom palettes like from Gnome
    • Ability to load 3rd-party palettes (e.g. Pantone, Trumatch, Focoltone, Toyo, etc.)

Desktop Integration Effort:

  • WebDAV/FTP support via GNOME-VFS, Neon, or the like
  • Make printing work more efficiently and reliably
  • Inter-application cut-and-paste
  • Inter-application drag-and-drop
  • Clipart manager GUI

Testing:

  • Include some rendering tests in `make check'.
  • Get 'make check' to pass on Win32 and OSX

SVG Compliance:

Milestone 13 - Inkscape 0.47

New/Changed Dependencies:

  • Gtk 2.10


Milestone 14 - Inkscape 0.48

Milestone 15 - Inkscape 0.49

Milestone 16 - Inkscape 0.50

  • Prereq: Is renderer immune to the same kinds of numerical problems we see with our new renderer, libnr, or libart?
  • Will the new renderer improve performance for most users?
  • Integrate a Cairo-based SVG Canvas library

Milestone 17 - Inkscape 0.51

  • Prereq: We need a conceptualization of how it should work
  • Currently, part of the concept discussion is at here


Milestone 18 - Inkscape 0.52

  • Reenable fuzzy font matching [bb]

Milestone 19 - Inkscape 0.53

  • Implement LittleCMS as color management system

Milestone 20 - Inkscape 0.54

Milestone 21 - Inkscape 0.55

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 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
  • Write an Internal DTD subset describing the custom Inkscape XML elements, for validation against SVG DTD
  • Ensure Inkscape does not throw away the internal DTD subsets of documents it reads
  • Start thinking about 1.0 when major functionality gaps are closed
    • (BASICALLY DONE) layers
    • (DONE) color palette
    • (DONE) gradient tool
    • (DONE) patterns
    • (DONE) text on path and in shape
    • (DONE) text selection
    • (DONE) SVG filters
    • mask tool
    • perspective transforms
    • scripting
    • path editing
    • shaped strokes
  • Implement preliminary support for iso & hex grid
  • Implement perspective transformations via PerspectiveObject
  • Improve freehand curve smoothness [pjrm, paraprax]
  • Review X1-1GUITest on SF
  • Review usability links at http://openusability.org/docman/?group_id=52
  • Review usability links at http://openusability.org/docman/?group_id=57
  • Editable toolbars (libegg)