This is a working document showing specific near-term tasks needed for achieving the numbered milestones. It is not a wishlist of features to be included in future releases. Because people often work on whatever they feel like, only the current and current+1 releases should be taken seriously. Beyond that is mainly conjectural.
See OldRoadmap for milestones that have already been achieved.
- 1 Inkscape 0.91 ~ Refactoring
- 2 Inkscape 0.92 ~ Infrastructure Focus
- 3 Inkscape 0.93 ~ Maintenance and Optimization Focus
- 4 Inkscape 0.94 ~ New Features Focus
- 5 Inkscape 0.95 ~ Stabilization Focus
- 6 Inkscape 1.0 ~ Documentation Focus
- 7 Inkscape 1.1 ~ Refactoring
- 8 Inkscape 1.2 ~ Infrastructure
- 9 Inkscape 1.3 ~ Maintenance and Optimization
- 10 Inkscape 1.4 ~ Major Features
- 11 Inkscape 1.5 ~ Stabilization
- 12 Milestone [Future]
Inkscape 0.91 ~ Refactoring
0.91 will be a longer cycle focused on refactoring and new features.
Merge GSoC 2010 work
Evaluate changing the numbering scheme to a date-based one, or setting more realistic goals for major (1.0, 2.0) releases
Port renderer to Cairo (Krzysztof - GSoC 2010)
Completely remove libnr
Following is a WIP draft of the 0.92 and future release goals; this is not yet finalized, and should not be taken as official yet
Inkscape 0.92 ~ Infrastructure Focus
Set up autogeneration of Inkscape source code documentation (Doxygen not available online according to old wiki page but available here (fossies.org))(http://jenkins.inkscape.org/job/Inkscape_trunk_doxygen/doxygen/)
Put it publicly somewhere on the inkscape domain for "official" access.(http://jenkins.inkscape.org/job/Inkscape_trunk_doxygen/doxygen/)
- Build system: migrate away from Autotools
- Decide between CMake and Waf
- Get decided system working
- Switch release tools to use new build system
- Switch packaging tools to use new build system
- Retain Autotools support one final release (legacy support), then drop next release.
- Decide which Unit testing framework to use (Discussion July 2013 didn't get much traction)
- Improved mailing list archive
- Move existing archive to inkscape.org or add an archive mirror at inkscape.org ("official" inkscape information is spread out wide between different domains), this would be an improvement.
- Consider also bringing lib2geom mailing lists?
- inkscape: We need firstname.lastname@example.org and email@example.com set up. Maybe as part of a mailing list refresh?
- Make the Windows uninstaller work (reevaluate this, we now have msi installer for win32 and Win64)
Inkscape 0.93 ~ Maintenance and Optimization Focus
- Improved performance
- with an empty start
- when starting up with an existing file
- Flip y-coordinate to match SVG.
- Introduce a backwards compatibility mechanism that will allow us to modify the XML representation of editing info. This is needed to bring the desktop coordinate system in line with SVG due to guideline and 3D box problems (they save desktop coordinates in the XML). This can be done either at the SP tree level or by moving to a SAX-based parser which updates the editing information as the document is parsed.
- 2geom maintenance
- Clean up and move generally useful geometry code to 2Geom
- Stop embedding 2Geom in Inkscape's codebase; handle it as a regular dependency
- Possibly start doing lib2geom releases in conjunction with Inkscape's releases?
- Split tutorials and other content from the main executable, to enable them to be updated independently of our main release process
- Split out less well maintained extensions to an 'extras' package
- Add a test suite that runs each extension against a collection of test documents
- Possibly start doing inkscape-extras releases in conjunction with Inkscape's releases?
- Refactor out "Sodipodi" history
- SPItem, SPObject and other variables have names from the early versions of Sodipodi, these names no longer makes sense (especially for new developers).
- Drop Autotools support
Inkscape 0.94 ~ New Features Focus
- Multi-page documents and parent/child document references
- SVG Flowed Text
- Fix flowtext
- Implement SVG 2 flowed text which has a natural SVG 1.1 fallback.
- Improve support for CMYK/spot colors
- Solicit community-contributed tutorial contributions
Inkscape 0.95 ~ Stabilization Focus
- Update all core plugins to handle multi-page documents
- Special focus on bugs relating to multi-page, flowed text, 2geom, and coordinate system flip
- Introduce new tutorials
Inkscape 1.0 ~ Documentation Focus
- Review, update, and expand existing documentation
- code documentation
- man page
- kickoff manual effort?
- Better translations - keep track of % translations for all languages. Drive to 95% on all major languages.
- Cleanup website and wiki
- Move pages of value to users from wiki to the main website
- Trim down amount of legacy material presented in the wiki
Inkscape 1.1 ~ Refactoring
- Adoption of C++11 features that will benefit Inkscape and are widely supported
- Take a holistic approach to UI design (Original email)
- Analyze the existing UI, make a list of UI decisions that are inconsistent between each other.
- Look around, see how other project solves these things, figure out what's good/applicable for Inkscape (like designing particular custom widgets that are less pixel-hungry etc.).
- Design some sort of HIG (Human Interface Guidelines) for Inkscape
- Use it to plan redesigns existing dialogs/docks.
- Preserve dialog layouts between sessions
Inkscape 1.2 ~ Infrastructure
- Replace VCS
- Greatly expand Unit test framework.
- Consider setting up workflow (passing tests, test coverage, code review) for getting code into trunk.
- make msi Windows install multilingual
Inkscape 1.3 ~ Maintenance and Optimization
- Better modularization
- Switch to using libcroco as a regular dependency (not embedded in our codebase)
- Switch to using libgdl as a regular dependency
- Switch to using Adaptagrams (libvpsc, libcola & libavoid) as a regular dependency (see https://bugs.launchpad.net/inkscape/+bug/1353833)
- Break libdepixelize out to its own library
- Break libnrtype out to its own library
- Break libuemf out to its own library
- Switch to using Poppler's API rather than using internals (the current situation causes regular breakage with new releases of Poppler)
- XML refactoring: Remove direct manipulation of XML from as many places as possible and replace it with SP tree methods.
- Improved performance
- Working with large files
- Working with files with lots of filters
Inkscape 1.4 ~ Major Features
- New plugin / extension system
- Easy to create
- Powerful enough to do LPEs
Inkscape 1.5 ~ Stabilization
- Split backend / GUI frontend
New features / Improvements to existing features
Make flowed text SVG-compliant.
- SVG2 support (with proper SVG 1.1 fallbacks)
- Improve support for SVG switches: the first recognized element in a switch should appear directly in the SP tree, not as a child of the switch element.
- Improve support for changing the name of the XML element node in response to SP tree changes.
- Hardware acceleration: make use of modern GPUs to speed up rendering.
- Live path effects: investigate extending to cover generic vector transformations (vector effects). Provide live versions of several destructive operations: boolean ops, stroke to path, text to path, etc.
- Mesh gradient support
- CSS support
- Animation support.
- frame-by-frame interpolations?
- Something else?
- D-Bus scripting API. (Merge GSoC work from 0.48 timeframe?)
- Evaluate pdf exporter to join features from scribus Export
- Improved export for printing industry (Mailing list thread from October 2014)
- For animation and css, a functionality to remove ALL transformations from an SVG
- PDF cleanup function - ungroup everything, remove all unnecessary clipping and masking
- Better marker support
- Object navigator (like in ponyscape)
- Inkscape for Android
- CAD drawing functionality
- More file format import compatibility
- OCR of bitmap traces
- Rewrite / reintroduce 3D box.
- 3-dimensional grid, perspective deformed, with snapping