Difference between revisions of "Roadmap"

From Inkscape Wiki
Jump to navigation Jump to search
(Piling ALL of the tasks into the current milestone, to eliminate duplication. Next will be to sort these out based on objectives and priorities)
Line 12: Line 12:


Architectural Refactoring Effort:
Architectural Refactoring Effort:
* 2geom Integration
* 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)
* Replace style.cpp entirely, with a clearer and cleaner version.
* Replace style.cpp entirely, with a clearer and cleaner version.
* Cairo Adoption Effort:
** 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


Codebase Cleanup Effort:
Codebase Cleanup Effort:
Line 30: Line 35:
* Investigate ps2ai, pstoedit and ai2svg conversion options (potential EPS support?)
* Investigate ps2ai, pstoedit and ai2svg conversion options (potential EPS support?)
* Import of native Adobe Illustrator files
* Import of native Adobe Illustrator files
* Add extension for use of [[VDX2SVG]] (http://vdxtosvg.sourceforge.net/)
* Visio support
* Add extension for use of [[PDF2SVG]] (http://www.solidcode.net/pdf2svg/ - this doesn't actually link to a useful page)
** Add extension for use of [[VDX2SVG]] (http://vdxtosvg.sourceforge.net/)
** Add extension for use of [[PDF2SVG]] (http://www.solidcode.net/pdf2svg/ - this doesn't actually link to a useful page)
* DXF import/export


Extensions Effort:
Extensions Effort:
Line 37: Line 44:
* Implement extension registry
* Implement extension registry
* Complete Extension preferences dialog
* Complete Extension preferences dialog
* Dia-like smart shapes support


User Interface Effort:
User Interface Effort:
* Object-to-object snapping  
* Object-to-object snapping
* Enhanced grid system
* Enhanced grid system
* improvement of svg patterns UI - make it similar to gradient-drag, instead of piggybacking knotholder
* improvement of svg patterns UI - make it similar to gradient-drag, instead of piggybacking knotholder
Line 50: Line 58:
* Reenable fuzzy font matching [bb]
* Reenable fuzzy font matching [bb]
* Improve freehand curve smoothness [pjrm, paraprax]
* Improve freehand curve smoothness [pjrm, paraprax]
* Geometrical constraints
** "Perpendicular-to", "Parallel-to", etc.
* Path trimming/extending/offset
* Filleting tool


Desktop Integration Effort:
Desktop Integration Effort:
Line 63: Line 75:
* Investigate performance measurement testing for Inkscape
* Investigate performance measurement testing for Inkscape


Cairo Adoption Effort:
* 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


Animation Effort
Animation Effort
Line 76: Line 84:
* Write an Internal DTD subset describing the custom Inkscape XML elements, for validation against SVG DTD
* 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
* Ensure Inkscape does not throw away the internal DTD subsets of documents it reads
* Masking
* Implement perspective transformations via [[PerspectiveObject]]
* Implement perspective transformations via [[PerspectiveObject]]
* Scripting
* Scripting
Line 85: Line 92:
** On-canvas editing
** On-canvas editing
** Fix snapping issue
** Fix snapping issue
* masks/clippaths
* Masking/clippaths
** on-canvas editing
** on-canvas editing
** Should work like gradient tool to apply transparency
* [http://sourceforge.net/tracker/index.php?func=detail&aid=893812&group_id=93438&atid=604309 hyperlinking]
* [http://sourceforge.net/tracker/index.php?func=detail&aid=893812&group_id=93438&atid=604309 hyperlinking]


=== Milestone 13 - Inkscape 0.47 ===
=== Milestone 13 - Inkscape 0.47 ===

Revision as of 00:39, 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:

  • 2geom Integration
  • 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.
  • Cairo Adoption Effort:
    • 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

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)
  • Convert all tabs into spaces (convert tabs to 4 spaces)
  • Rename all 'SPFooBar' routines to 'FooBar' and put into namespaces
    • (DONE) dialogs folder

File Format Support Effort:

Extensions Effort:

  • Implement extension API
  • Implement extension registry
  • Complete Extension preferences dialog
  • Dia-like smart shapes support

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.)
  • Implement LittleCMS as color management system
  • Implement iso & hex grid
  • Editable toolbars (libegg)
  • Reenable fuzzy font matching [bb]
  • Improve freehand curve smoothness [pjrm, paraprax]
  • Geometrical constraints
    • "Perpendicular-to", "Parallel-to", etc.
  • Path trimming/extending/offset
  • Filleting tool

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 Effort:

  • Include some rendering tests in `make check'.
  • Get 'make check' to pass on Win32 and OSX
  • Investigate performance measurement testing for Inkscape


Animation Effort

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

SVG Feature Compliance Effort:

  • 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
  • Implement perspective transformations via PerspectiveObject
  • Scripting
  • Path editing
  • Shaped strokes
  • Markers
    • Inherit stroke properties like color
    • On-canvas editing
    • Fix snapping issue
  • Masking/clippaths
    • on-canvas editing
    • Should work like gradient tool to apply transparency
  • hyperlinking


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

Milestone 17 - Inkscape 0.51

Milestone 18 - Inkscape 0.52

Milestone 19 - Inkscape 0.53

Milestone 20 - Inkscape 0.54

Milestone 21 - Inkscape 0.55

Milestone [Future]