Difference between revisions of "Roadmap"
Line 19: | Line 19: | ||
** Rename all '[[SPFooBar]]' routines to '[[FooBar]]' and put into namespaces | ** Rename all '[[SPFooBar]]' routines to '[[FooBar]]' and put into namespaces | ||
* 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 | * 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.* | * Streamline style.* | ||
** 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/*. | ||
Line 49: | Line 49: | ||
User Interface Effort: | User Interface Effort: | ||
* | * 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 |
Revision as of 17:11, 23 October 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 - 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
- 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:
- Change to use of GQuarks instead of #defines where feasible
- Use autoscan and autoreconf to find out which configure tests are still needed.
- Trim down the amount of stuff in our configure.ac
- (PARTIALLY DONE) DirectoryReorgProposal
- Convert all tabs into spaces (convert tabs to 4 spaces)
- [Remove trailing whitespace]
- Replace use of C macros (E.g. SP_IS_PATH) with C++ instance methods, static class methods, etc.
- Use Copy/Paste Detector to find and refactor duplicated code
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
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://cgit.freedesktop.org/~cworth/svg2pdf/)
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:
- correct handling of multiple font faces by Text tool
- Filters tool
- 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:
- 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 (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
Milestone 19 - Inkscape 0.53 - Inkcore
- Separate sections of code into various libraries for use by other programs
- inkcanvas
- inkview
- inkscape