Difference between revisions of "Roadmap"

From Inkscape Wiki
Jump to navigation Jump to search
(Migrating tasks down to later releases)
Line 1: Line 1:
== Inkscape Development Roadmap ==  
== 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.
NOTE: This is a working document showing specific near-term tasks needed for achieving the numbered milestones.


''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 16: Line 15:
* 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)
* 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.
* Streamline style.*
** Eliminate use of the style.h types in as much of codebase as possible, particularly display/*.
** Externally, it should present a simple sset of accessor methods for getting/setting properties by name, and propagating to/from repr.
** Inside, it should have:
*** a concise list of property names with the expected domain of values in CSS and the associated Inkscape data type
*** a concise list of property aliases which represent one or more properties combined, each with the rule used to combine
*** definitions of the aforementioned rules and value domains
*** some generic code (not tied to any one property) implementing the needed behavior
* 2geom Integration
* 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
* Convert remaining GTK dialog code to Gtkmm


Codebase Cleanup Effort:
Codebase Cleanup Effort:
Line 49: Line 34:
** Identify remaining problems with the cairo-based PDF tool
** Identify remaining problems with the cairo-based PDF tool
** Ensure clippaths, transparency, bitmaps, etc. all work
** Ensure clippaths, transparency, bitmaps, etc. all work
Inkboard Effort
* Stabilize the code by closing crash bugs in the bug tracker
SVG Feature Compliance Effort:
* Animation
** Sketch out UI mockup ideas for animation rendering/animation
** Make an ultra-preliminary proof of concept of at least one animation feature
=== Milestone 13 - Inkscape 0.47 ===
New/Changed Dependencies:
* Gtk 2.10
File Format Support Effort:
* PDF Import/Export
** Generate multipage PDF documents
** Generate multipage PDF documents
** Choice of PDF spec. (PDF/X-1a, PDF/X-3)
** Choice of PDF spec. (PDF/X-1a, PDF/X-3)
Line 55: Line 56:
** Add file info/comments
** Add file info/comments
** Add color bars
** Add color bars
* Native [[Adobe Illustrator]] file Import/Export
** Requires good PDF Import/Export
* Native [[CorelDraw]] file Import/Export
* [[MicrosoftVisio|Visio]] support
* [[MicrosoftVisio|Visio]] support
** Add extension for use of [[VDX2SVG]] (http://vdxtosvg.sourceforge.net/)
** 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)
** Add extension for use of [[PDF2SVG]] (http://www.solidcode.net/pdf2svg/ - this doesn't actually link to a useful page)
* DXF import/export
 
* gdkpixbuf(?) - would give JPEG support
Architectural Refactoring Effort:
* Streamline style.*
** Eliminate use of the style.h types in as much of codebase as possible, particularly display/*.
** Externally, it should present a simple sset of accessor methods for getting/setting properties by name, and propagating to/from repr.
** Inside, it should have:
*** a concise list of property names with the expected domain of values in CSS and the associated Inkscape data type
*** a concise list of property aliases which represent one or more properties combined, each with the rule used to combine
*** definitions of the aforementioned rules and value domains
*** some generic code (not tied to any one property) implementing the needed behavior
* 2geom Integration
* Convert remaining GTK dialog code to Gtkmm


Extensions Effort:
Extensions Effort:
Line 102: Line 110:
* Prereq: We need a conceptualization of how it should work
* Prereq: We need a conceptualization of how it should work
* Currently, part of the concept discussion is at [[Animation-(Timeline)|here]]
* Currently, part of the concept discussion is at [[Animation-(Timeline)|here]]
Inkboard Effort
* Ensure multi-user conferences work across most JEP-compliant Jabber servers
* Conduct an informal security analysis of Inkboard for security flaws
=== Milestone 14 - Inkscape 0.48 - Animation ===
* Get basic rendering and authoring of simple animations working adequately
=== Milestone 15 - Inkscape 0.49 - Prototype all SVG Mobile features ===


SVG Feature Compliance Effort:
SVG Feature Compliance Effort:
Line 108: Line 126:
* Animation
* Animation
* Implement perspective transformations via [[PerspectiveObject]]
* Implement perspective transformations via [[PerspectiveObject]]
* Scripting
* Path editing
* Path editing
* Shaped strokes
* Shaped strokes
* Markers
** Inherit stroke properties like color
** On-canvas editing
** Fix snapping issue
* Masking/clippaths
* Masking/clippaths
** on-canvas editing
** on-canvas editing
Line 120: Line 133:
* [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]
* 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
=== Milestone 16 - Inkscape 0.50 - SVG Mobile Support ===
SVG Feature Compliance Effort:
* Multi-page
* Scripting
* Markers
** Inherit stroke properties like color
** On-canvas editing
** Fix snapping issue
* Real CMYK / LAB / HSB support
* Real CMYK / LAB / HSB support


Inkboard Effort
=== Milestone 17 - Inkscape 0.51 ===
* Stabilize the code by closing crash bugs in the bug tracker
* Ensure multi-user conferences work across most JEP-compliant Jabber servers
* Conduct an informal security analysis of Inkboard for security flaws


=== Milestone 13 - Inkscape 0.47 ===
Architectural Refactoring Effort:
* 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


New/Changed Dependencies:
File Format Support Effort:
* Gtk 2.10
* Native [[Adobe Illustrator]] file Import/Export
** Requires good PDF Import/Export
* Native [[CorelDraw]] file Import/Export
* DXF import/export
* gdkpixbuf(?) - would give JPEG support


=== Milestone 14 - Inkscape 0.48 ===
=== Milestone 15 - Inkscape 0.49 ===
=== Milestone 16 - Inkscape 0.50 - SVG Mobile Support ===
=== Milestone 17 - Inkscape 0.51 ===
=== Milestone 18 - Inkscape 0.52 ===
=== Milestone 18 - Inkscape 0.52 ===
=== Milestone 19 - Inkscape 0.53 ===
=== Milestone 19 - Inkscape 0.53 ===

Revision as of 10:06, 30 January 2007

Inkscape Development Roadmap

NOTE: This is a working document showing specific near-term tasks needed for achieving the numbered milestones.

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 all use of sp_repr_new in favor of XML::Document::* classes (see [1]
  • Migrate SPObject to native C++ classes
  • Implement gradient UI "release" handler to deal with gradient garbage collection (see bug 984854)
  • 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.

Codebase Cleanup Effort:

File Format Support Effort:

  • PDF Import/Export
    • Identify remaining problems with the cairo-based PDF tool
    • Ensure clippaths, transparency, bitmaps, etc. all work

Inkboard Effort

  • Stabilize the code by closing crash bugs in the bug tracker

SVG Feature Compliance Effort:

  • Animation
    • Sketch out UI mockup ideas for animation rendering/animation
    • Make an ultra-preliminary proof of concept of at least one animation feature

Milestone 13 - Inkscape 0.47

New/Changed Dependencies:

  • Gtk 2.10

File Format Support Effort:

Architectural Refactoring Effort:

  • Streamline style.*
    • Eliminate use of the style.h types in as much of codebase as possible, particularly display/*.
    • Externally, it should present a simple sset of accessor methods for getting/setting properties by name, and propagating to/from repr.
    • Inside, it should have:
      • a concise list of property names with the expected domain of values in CSS and the associated Inkscape data type
      • a concise list of property aliases which represent one or more properties combined, each with the rule used to combine
      • definitions of the aforementioned rules and value domains
      • some generic code (not tied to any one property) implementing the needed behavior
  • 2geom Integration
  • Convert remaining GTK dialog code to Gtkmm

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

Inkboard Effort

  • Ensure multi-user conferences work across most JEP-compliant Jabber servers
  • Conduct an informal security analysis of Inkboard for security flaws

Milestone 14 - Inkscape 0.48 - Animation

  • Get basic rendering and authoring of simple animations working adequately

Milestone 15 - Inkscape 0.49 - Prototype all SVG Mobile features

SVG Feature Compliance Effort:

  • Ability to select which SVG spec version to save as
  • Multi-page
  • Animation
  • Implement perspective transformations via PerspectiveObject
  • Path editing
  • Shaped strokes
  • Masking/clippaths
    • on-canvas editing
    • Should work like gradient tool to apply transparency
  • hyperlinking
  • Ensure Inkscape does not throw away the internal DTD subsets of documents it reads

Milestone 16 - Inkscape 0.50 - SVG Mobile Support

SVG Feature Compliance Effort:

  • Multi-page
  • Scripting
  • Markers
    • Inherit stroke properties like color
    • On-canvas editing
    • Fix snapping issue
  • Real CMYK / LAB / HSB support

Milestone 17 - Inkscape 0.51

Architectural Refactoring Effort:

  • 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

File Format Support Effort:

  • Native Adobe Illustrator file Import/Export
    • Requires good PDF Import/Export
  • Native CorelDraw file Import/Export
  • DXF import/export
  • gdkpixbuf(?) - would give JPEG support

Milestone 18 - Inkscape 0.52

Milestone 19 - Inkscape 0.53

Milestone 20 - Inkscape 0.54

Milestone 21 - Inkscape 0.55

??? - Inkscape 1.00 - Full SVG 1.1 support

Milestone [Future]