Difference between revisions of "Roadmap"

From Inkscape Wiki
Jump to: navigation, search
m (Milestone 13 - Inkscape 0.47 - Refactoring / Cleanup)
m (Bolded titles of lists.)
Line 7: Line 7:
 
=== Milestone 13 - Inkscape 0.47 - Refactoring / Cleanup ===
 
=== Milestone 13 - Inkscape 0.47 - Refactoring / Cleanup ===
  
New/Changed Dependencies:
+
'''New/Changed Dependencies:'''
 
* Gtk 2.12 (required)
 
* Gtk 2.12 (required)
  
Architectural Refactoring Effort:
+
'''Architectural Refactoring Effort:'''
 
* [[Lib2geom]] Integration
 
* [[Lib2geom]] Integration
 
** Eliminate code in favor of 2geom where feasible
 
** Eliminate code in favor of 2geom where feasible
Line 29: Line 29:
 
*** some generic code (not tied to any one property) implementing the needed behavior
 
*** some generic code (not tied to any one property) implementing the needed behavior
  
Codebase Cleanup Effort:
+
'''Codebase Cleanup Effort:'''
 
* Change to use of [http://library.gnome.org/devel/glib/stable/glib-Quarks.html GQuarks] instead of #defines where feasible
 
* Change to use of [http://library.gnome.org/devel/glib/stable/glib-Quarks.html GQuarks] instead of #defines where feasible
 
* Use autoscan and autoreconf to find out which configure tests are still needed.
 
* Use autoscan and autoreconf to find out which configure tests are still needed.
Line 40: Line 40:
 
* Use [http://pmd.sourceforge.net/cpd.html Copy/Paste Detector] to find and refactor duplicated code
 
* Use [http://pmd.sourceforge.net/cpd.html Copy/Paste Detector] to find and refactor duplicated code
  
User Documentation Effort:
+
'''User Documentation Effort:'''
 
* Re-arrange tutorials into sub-categories
 
* Re-arrange tutorials into sub-categories
 
* (PARTIALLY DONE) Switch to use of xml2po for tutorial files ([[User:Colin Marquardt|Colin Marquardt]])
 
* (PARTIALLY DONE) Switch to use of xml2po for tutorial files ([[User:Colin Marquardt|Colin Marquardt]])
 
* Document filters
 
* Document filters
  
Inkscape SVG Effort
+
'''Inkscape SVG Effort'''
 
* Revisit coordination system (move away from Cartesian)
 
* Revisit coordination system (move away from Cartesian)
  
User Interface Effort:
+
'''User Interface Effort:'''
* 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
 
* Palettes
 
* Palettes
 
** Custom palettes like from Gnome
 
** Custom palettes like from Gnome
Line 56: Line 56:
 
* Improve freehand curve smoothness [pjrm, paraprax]
 
* Improve freehand curve smoothness [pjrm, paraprax]
  
Testing Effort:
+
'''Testing Effort:'''
 
* Include some rendering tests in `make check'.
 
* Include some rendering tests in `make check'.
 
* Get 'make check' to pass on Win32 and OSX (with the current btool, does this mean a 'btool check' should pass?)
 
* Get 'make check' to pass on Win32 and OSX (with the current btool, does this mean a 'btool check' should pass?)
 
* Investigate performance measurement testing for Inkscape
 
* Investigate performance measurement testing for Inkscape
  
Animation Effort
+
'''Animation Effort'''
 
* Create a written conceptualization of how it should work
 
* Create a written 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]]
  
User Documentation Effort:
+
'''User Documentation Effort:'''
 
* More tutorials
 
* More tutorials
 
** Node editing
 
** Node editing
Line 73: Line 73:
 
** Creating photo-realistic art
 
** Creating photo-realistic art
  
Performance effort:
+
'''Performance effort:'''
 
*Support Hardware acceleration
 
*Support Hardware acceleration
 
**Take advantage of opengl 2.1 or dx9 to enhance editing and display performance. (Note: OpenVG would be better suited for Inkscape's needs but I'm not sure about its status. --[[User:Tweenk|Tweenk]] 00:53, 26 July 2009 (UTC))
 
**Take advantage of opengl 2.1 or dx9 to enhance editing and display performance. (Note: OpenVG would be better suited for Inkscape's needs but I'm not sure about its status. --[[User:Tweenk|Tweenk]] 00:53, 26 July 2009 (UTC))
Line 79: Line 79:
 
**Boost performance on multi-core processor.
 
**Boost performance on multi-core processor.
  
GUI effort:
+
'''GUI effort:'''
 
*Layer panel
 
*Layer panel
 
**Add object selection in layer(similar to adobe illustrator).
 
**Add object selection in layer(similar to adobe illustrator).
Line 90: Line 90:
 
(similar to adobe illustrator).
 
(similar to adobe illustrator).
 
*Multi-page
 
*Multi-page
**Multi-page tool(similar to Artboard tool on adobe illustrator cs4).
+
**Multi-page tool (similar to Artboard tool on adobe illustrator CS4).
  
 
=== Milestone 14 - Inkscape 0.48 - Animation ===
 
=== Milestone 14 - Inkscape 0.48 - Animation ===

Revision as of 18:02, 5 November 2009

Inkscape Development Roadmap

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

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

Milestone 13 - Inkscape 0.47 - Refactoring / Cleanup

New/Changed Dependencies:

  • Gtk 2.12 (required)

Architectural Refactoring Effort:

  • Lib2geom Integration
    • Eliminate code in favor of 2geom where feasible
  • Convert remaining GTK dialog code to Gtkmm
  • Eliminate all use of sp_repr_new in favor of XML::Document::* classes (see [1])
  • SubsystemRearchitecture
    • Migrate SPObject to native C++ classes
    • Rename all 'SPFooBar' routines to 'FooBar' and put into namespaces
  • Implement gradient UI "release" handler to deal with gradient garbage collection (see bug 984854)
  • Create an API for tracking references and avoiding id clashes on import and interdocument copy/paste. The optimal place to put it would probably be somewhere at the XML level.
  • Streamline style.*
    • Eliminate use of the style.h types in as much of codebase as possible, particularly display/*.
    • Externally, it should present a simple set 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

Codebase Cleanup Effort:

User Documentation Effort:

  • Re-arrange tutorials into sub-categories
  • (PARTIALLY DONE) Switch to use of xml2po for tutorial files (Colin Marquardt)
  • Document filters

Inkscape SVG Effort

  • Revisit coordination system (move away from Cartesian)

User Interface Effort:

  • 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.)
  • Reenable fuzzy font matching [bulia]
  • Improve freehand curve smoothness [pjrm, paraprax]

Testing Effort:

  • Include some rendering tests in `make check'.
  • Get 'make check' to pass on Win32 and OSX (with the current btool, does this mean a 'btool check' should pass?)
  • Investigate performance measurement testing for Inkscape

Animation Effort

  • Create a written conceptualization of how it should work
    • Currently, part of the concept discussion is at here

User Documentation Effort:

  • More tutorials
    • Node editing
    • Advanced text effects
    • Grid snapping
    • Connectors
    • Creating photo-realistic art

Performance effort:

  • Support Hardware acceleration
    • Take advantage of opengl 2.1 or dx9 to enhance editing and display performance. (Note: OpenVG would be better suited for Inkscape's needs but I'm not sure about its status. --Tweenk 00:53, 26 July 2009 (UTC))
  • Multi-Processor
    • Boost performance on multi-core processor.

GUI effort:

  • Layer panel
    • Add object selection in layer(similar to adobe illustrator).
  • Tab document
    • Open and create new document(s) in the same window.
  • Menu icons
    • Compact icons
    • Grayed icons
      • Tool icons turn into color when hovering or selected

(similar to adobe illustrator).

  • Multi-page
    • Multi-page tool (similar to Artboard tool on adobe illustrator CS4).

Milestone 14 - Inkscape 0.48 - Animation

File Format Support Effort:

DOM Binding Effort:

  • Evaluate Adobe Activescript to use instead of Spidermonkey for our JS engine
  • Create sample prototype app to explore ActiveScript
  • Decide whether to go with Spidermonkey or Adobe ActiveScript

Tools:

  • Get basic rendering and authoring of simple animations working adequately

Desktop Integration Effort:

  • [PARTIALLY DONE] Inter-application cut-and-paste
  • Inter-application drag-and-drop

Architectural Refactoring Effort:

  • Complete lib2geom integration

DOM Binding Effort:

  • Create tool that reads the w3c idl files and generates binding code
  • Bind xpath parsing/execution
  • Finish the CSS-DOM classes
  • Add a 'run' mode in a separate window that runs and displays the scripted SVG

Desktop Integration Effort:

  • WebDAV/FTP support via GVFS, KIO, Neon, or the like
  • Finish making printing work more efficiently and reliably
  • Clipart manager GUI

Inkboard Effort

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

File Format Support Effort:

  • PDF Import/Export
    • Generate multipage PDF documents
    • Define bleed and slug areas for offset printing
    • Add crop, bleed and registration marks

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

Extension Effort:

  • Unification of the way to display help on extensions
  • Localizable help of bundled extensions
  • Effect extensions browser

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 (patch for 0.47 is ready)
    • 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: (Also see SVG Tiny Compliance)

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

File Format Support Effort:

  • Native Adobe Illustrator file Import (DONE)/Export
    • (DONE) Requires good PDF Import/Export
  • Native CorelDraw file Import/Export (currently uses UniConvertor)
  • DXF import/export
  • Improved raster support via Gdk::Pixbuf

Milestone 18 - Inkscape 0.52 - Tech drawing abilities

User Interface Effort:

  • Implement iso (DONE) & hex grid
  • Editable toolbars (Gtk::Toolbar class)
  • Geometrical constraints
    • "Perpendicular-to", "Parallel-to", etc.
  • Path trimming/extending/offset
  • Filleting tool

Extensions Effort:

  • Implement extension registry for users to upload/download extensions via Inkscape
  • Dia-like smart shapes support

(CAD and BlueprintGeometricAndTechDrawing)

Milestone 19 - Inkscape 0.53 - Inkcore

  • Separate sections of code into various libraries for use by other programs
    • inkcanvas
    • inkview
    • inkscape

Milestone 20 - Inkscape 0.54

Milestone 21 - Inkscape 0.55

??? - Inkscape 1.00 - Full SVG 1.1 support

Milestone [Future]