Difference between revisions of "Roadmap"

From Inkscape Wiki
Jump to navigation Jump to search
(Replaced content with "removed - content was outdated Category:Developer Documentation")
Tags: Replaced Visual edit
 
(123 intermediate revisions by 18 users not shown)
Line 1: Line 1:
== Inkscape Development Roadmap ==
removed - content was outdated
 
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:
* 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])
* SubsystemRearchitecture
** Migrate SPObject to native C++ classes
** 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)
* 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 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 [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.
** Trim down the amount of stuff in our configure.ac
* (PARTIALLY DONE) [[DirectoryReorgProposal]]
* Convert all tabs into spaces (convert tabs to 4 spaces)
** Also see http://sourceforge.net/mailarchive/message.php?msg_id=7164324
* [[http://wiki.inkscape.org/wiki/index.php/InkscapeJanitors#Cleanup:_Whitespace Remove trailing whitespace]]
* Replace use of C macros (E.g. SP_IS_PATH) with C++ instance methods, static class methods, etc.
* Use [http://pmd.sourceforge.net/cpd.html 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 ([[User:Colin Marquardt|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 [[Animation-(Timeline)|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
* [[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)
 
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:
* [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
 
Desktop Integration Effort:
* 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 GNOME-VFS, 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
* [https://bugs.launchpad.net/inkscape/+bug/sf893812 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 [http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html 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
 
=== Milestone 20 - Inkscape 0.54 ===
=== Milestone 21 - Inkscape 0.55 ===
 
=== ??? - Inkscape 1.00 - Full SVG 1.1 support ===
 
=== Milestone [Future] ===
 
[[Category:Developer Documentation]]
[[Category:Developer Documentation]]

Latest revision as of 14:56, 26 May 2025

removed - content was outdated