Difference between revisions of "Roadmap"

From Inkscape Wiki
Jump to navigation Jump to search
(→‎Milestone 12 - Inkscape 0.46: added Quarks info if still relevant)
Line 3: Line 3:
 
NOTE: This is a working document showing specific near-term tasks needed for achieving the numbered milestones.
 
NOTE: This is a working document showing specific near-term tasks needed for achieving the numbered milestones.
  
''Milestones 0-11 have been completed since the start of the Inkscape Project. See [[OldRoadmap]]''
+
''Milestones 0-12 have been completed since the start of the Inkscape Project. See [[OldRoadmap]]''
  
 
=== Milestone 12 - Inkscape 0.46 ===
 
=== Milestone 12 - Inkscape 0.46 ===
Line 9: Line 9:
 
New/Changed Dependencies:
 
New/Changed Dependencies:
 
* (DONE) Gtk 2.8 (required)
 
* (DONE) Gtk 2.8 (required)
* 2geom (optional)
+
* (DONE) 2geom (optional)
**<i>2geom is a hard dependency now due to LPE. 2geom source has been copied to the inkscape tree, so that inkscape can make full profit from the latest and greatest 2geom (instead of depending on an earlier official 2geom release) [johan]</i>)
+
** <i>2geom is a hard dependency now due to LPE. 2geom source has been copied to the inkscape tree, so that inkscape can make full profit from the latest and greatest 2geom (instead of depending on an earlier official 2geom release) [johan]</i>)
 
 
Architectural Refactoring Effort:
 
* Eliminate all use of sp_repr_new in favor of XML::Document::* classes (see [http://article.gmane.org/gmane.comp.graphics.inkscape.devel/19068])
 
* Migrate SPObject to native C++ classes
 
* 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.
 
* Prepatory work to integrate lib2geom next release
 
** what exactly is meant by this? is this already done with LPE?
 
  
 
Codebase Cleanup Effort:
 
Codebase Cleanup Effort:
Line 37: Line 29:
 
* (DONE) Switch from use of TRUE/FALSE to true/false
 
* (DONE) Switch from use of TRUE/FALSE to true/false
 
**(Bulia: "This was attempted and (partially?) rolled back, because it broke GTK calls which require gbooleans.")
 
**(Bulia: "This was attempted and (partially?) rolled back, because it broke GTK calls which require gbooleans.")
 
  
 
File Format Support Effort:
 
File Format Support Effort:
* PDF Import/Export
+
* (DONE) PDF Import/Export
 
** (HELP NEEDED) Identify remaining problems with the cairo-based PDF tool check [[FileTypes]]
 
** (HELP NEEDED) Identify remaining problems with the cairo-based PDF tool check [[FileTypes]]
 
** 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
 
 
Extension Effort:
 
* Unification of the way to display help on extensions
 
* Localizable help of bundled extensions
 
* Effect extensions browser
 
  
 
User Documentation Effort:
 
User Documentation Effort:
Line 85: Line 63:
 
** Eliminate code in favor of 2geom where feasible
 
** Eliminate code in favor of 2geom where feasible
 
* Convert remaining GTK dialog code to Gtkmm
 
* Convert remaining GTK dialog code to Gtkmm
 +
* Eliminate all use of sp_repr_new in favor of XML::Document::* classes (see [http://article.gmane.org/gmane.comp.graphics.inkscape.devel/19068])
 +
* Migrate SPObject to native C++ classes
 +
* 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.
 +
* Prepatory work to integrate lib2geom next release
 +
** what exactly is meant by this? is this already done with LPE?
  
 
Inkscape SVG Effort
 
Inkscape SVG Effort
Line 159: Line 143:
 
** Define bleed and slug areas for offset printing
 
** Define bleed and slug areas for offset printing
 
** Add crop, bleed and registration marks
 
** 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 ===
 
=== Milestone 15 - Inkscape 0.49 - Prototype all SVG Mobile features ===

Revision as of 01:41, 14 March 2008

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 12 - Inkscape 0.46

New/Changed Dependencies:

  • (DONE) Gtk 2.8 (required)
  • (DONE) 2geom (optional)
    • 2geom is a hard dependency now due to LPE. 2geom source has been copied to the inkscape tree, so that inkscape can make full profit from the latest and greatest 2geom (instead of depending on an earlier official 2geom release) [johan])

Codebase Cleanup Effort:

  • Change to use of GQuarks instead of #defines where feasible
    • Where can information be found on this? (I have no clue what GQuarks are for example)
Try here: Quarks

File Format Support Effort:

  • (DONE) PDF Import/Export
    • (HELP NEEDED) Identify remaining problems with the cairo-based PDF tool check FileTypes
    • Ensure clippaths, transparency, bitmaps, etc. all work

User Documentation Effort:

  • Re-arrange tutorial categories [ScislaC]
  • (PARTIALLY DONE) Switch to use of xml2po for tutorial files (Colin Marquardt)
  • Document filters

Milestone 13 - Inkscape 0.47

New/Changed Dependencies:

  • Gtk 2.10 (required)
  • 2geom (required)

File Format Support Effort:

Tools:

Architectural Refactoring Effort:

  • 2geom 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])
  • 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.
  • Prepatory work to integrate lib2geom next release
    • what exactly is meant by this? is this already done with LPE?

Inkscape SVG Effort

  • Revisit coordination system (move away from Cartesian)

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

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 [bb]
  • Improve freehand curve smoothness [pjrm, paraprax]

Desktop Integration Effort:

  • (DONE) Replace existing printer dialog with one from gtk 2.10
  • Inter-application cut-and-paste
  • Inter-application drag-and-drop

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

Inkboard Effort

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

User Documentation Effort:

  • Solicit more tutorial contributions from userbase
    • Node editing
    • Advanced text effects
    • Grid snapping
    • Connectors
    • Creating photo-realistic art

Milestone 14 - Inkscape 0.48 - Animation

  • Get basic rendering and authoring of simple animations working adequately

Architectural Refactoring Effort:

  • Complete lib2geom integration
  • 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

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 GNOME-VFS, Neon, or the like
  • Finish making printing work more efficiently and reliably
  • Clipart manager GUI

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:

  • 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
  • follow the Freedesktop Icon Naming Spec for easier themeing

File Format Support Effort:

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

Milestone 18 - Inkscape 0.52 - Tech drawing abilities

User Interface Effort:

  • (DONE) Object-to-object snapping
  • (DONE) Implement LittleCMS as color management system
  • Implement iso (DONE) & hex grid
  • Editable toolbars (libegg)
  • 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

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]