Difference between revisions of "Roadmap"
Line 5: | Line 5: | ||
''Milestones 0-12 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 | === Milestone 13 - Inkscape 0.47 === | ||
New/Changed Dependencies: | New/Changed Dependencies: | ||
* | * Gtk 2.12 (required) | ||
* ( | * 2geom (required) | ||
** | |||
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 [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? | |||
* 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 | |||
Codebase Cleanup Effort: | Codebase Cleanup Effort: | ||
Line 25: | Line 43: | ||
* Rename all '[[SPFooBar]]' routines to '[[FooBar]]' and put into namespaces | * Rename all '[[SPFooBar]]' routines to '[[FooBar]]' and put into namespaces | ||
** (DONE) dialogs folder | ** (DONE) dialogs folder | ||
User Documentation Effort: | User Documentation Effort: | ||
Line 39: | Line 48: | ||
* (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 | ||
Line 87: | Line 66: | ||
Desktop Integration Effort: | Desktop Integration Effort: | ||
* Inter-application cut-and-paste | * Inter-application cut-and-paste | ||
* Inter-application drag-and-drop | * Inter-application drag-and-drop | ||
Line 113: | Line 91: | ||
=== Milestone 14 - Inkscape 0.48 - Animation === | === Milestone 14 - Inkscape 0.48 - Animation === | ||
File Format Support Effort: | |||
* PDF Import/Export | |||
** Choice of PDF spec. (PDF/X-1a, PDF/X-3) | |||
** Add file info/comments | |||
** Add color bars | |||
* [[MicrosoftVisio|Visio]] support | |||
** Add extension for use of [[VDX2SVG]] (http://vdxtosvg.sourceforge.net/) | |||
** (OBSOLETE) Add extension for use of [[PDF2SVG]] (http://www.solidcode.net/pdf2svg/ - this doesn't actually link to a useful page) | |||
Tools: | |||
* [https://bugs.launchpad.net/inkscape/+bug/sf904962 correct handling of multiple font faces] by Text tool | |||
* [http://article.gmane.org/gmane.comp.graphics.inkscape.devel/16938/ Filters tool] | |||
* Get basic rendering and authoring of simple animations working adequately | * Get basic rendering and authoring of simple animations working adequately | ||
Line 118: | Line 109: | ||
Architectural Refactoring Effort: | Architectural Refactoring Effort: | ||
* Complete lib2geom integration | * Complete lib2geom integration | ||
DOM Binding Effort: | DOM Binding Effort: | ||
Line 187: | Line 170: | ||
Architectural Refactoring Effort: | Architectural Refactoring Effort: | ||
* cairo Adoption Effort: | * cairo Adoption Effort: | ||
** Integrate a cairo-based SVG Canvas library | ** Integrate a cairo-based SVG Canvas library | ||
* follow the [http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Freedesktop Icon Naming Spec] for easier themeing | * follow the [http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Freedesktop Icon Naming Spec] for easier themeing | ||
Line 194: | Line 175: | ||
File Format Support Effort: | File Format Support Effort: | ||
* Native [[Adobe Illustrator]] file Import (DONE)/Export | * Native [[Adobe Illustrator]] file Import (DONE)/Export | ||
** Requires good PDF Import/Export | ** (DONE) Requires good PDF Import/Export | ||
* Native [[CorelDraw]] file Import/Export (DONE as extension) | * Native [[CorelDraw]] file Import/Export (DONE as extension) | ||
* DXF import/export | * DXF import/export | ||
Line 202: | Line 183: | ||
User Interface Effort: | User Interface Effort: | ||
* Implement iso (DONE) & hex grid | * Implement iso (DONE) & hex grid | ||
* Editable toolbars (libegg) | * Editable toolbars (libegg) |
Revision as of 02:16, 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 13 - Inkscape 0.47
New/Changed Dependencies:
- Gtk 2.12 (required)
- 2geom (required)
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?
- 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
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
- Learn and use autoscan and autoreconf to find out which configure tests are still needed.
- Clean up configure.in
- (PARTIALLY DONE) DirectoryReorgProposal
- Convert all tabs into spaces (convert tabs to 4 spaces)
- Remove trailing whitespace
- Rename all 'SPFooBar' routines to 'FooBar' and put into namespaces
- (DONE) dialogs folder
User Documentation Effort:
- Re-arrange tutorial categories [ScislaC]
- (PARTIALLY DONE) Switch to use of xml2po for tutorial files (Colin Marquardt)
- Document filters
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:
- 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
File Format Support Effort:
- PDF Import/Export
- Choice of PDF spec. (PDF/X-1a, PDF/X-3)
- Add file info/comments
- Add color bars
- Visio support
- Add extension for use of VDX2SVG (http://vdxtosvg.sourceforge.net/)
- (OBSOLETE) Add extension for use of PDF2SVG (http://www.solidcode.net/pdf2svg/ - this doesn't actually link to a useful page)
Tools:
- correct handling of multiple font faces by Text tool
- Filters tool
- Get basic rendering and authoring of simple animations working adequately
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 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:
- 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
- (DONE) 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:
- 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