Difference between revisions of "Roadmap"

From Inkscape Wiki
Jump to navigation Jump to search
Line 1: Line 1:
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, this roadmap should only contain items that really have a good chance of being done for the next release (which means, somebody is actually working on them).
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.


'''NOTE 1:''' Because this document became completely separated from reality, I replaced it with a more realistic version that reflects what we're actually doing. --[[User:Tweenk|Tweenk]] 13:45, 31 January 2010 (UTC)
''See [[OldRoadmap]] for milestones that have already been achieved.''
 
''Milestones 0-13 have been completed since the start of the Inkscape Project. See [[OldRoadmap]]''


=== Inkscape 0.48 ===
=== Inkscape 0.48 ===
Line 31: Line 29:
* (DONE) <del>Port renderer to Cairo (Krzysztof - GSoC 2010)</del>
* (DONE) <del>Port renderer to Cairo (Krzysztof - GSoC 2010)</del>
* (DONE) <del>Completely remove libnr</del>
* (DONE) <del>Completely remove libnr</del>
=== Inkscape 0.92 ===
=== Inkscape 0.93 ===
=== Inkscape 0.94 ===
=== Inkscape 0.9x ===


=== Inkscape 1.0 ===
=== Inkscape 1.0 ===


=== Inkscape 1.x ===
=== Milestone [Future] ===
=== Random Ideas / Requests / Needs ===
Note this list is unordered, unapproved, and unofficial.  Feel free to add new ideas worth considering for the roadmap.
* Replace VCS.
* Replace Automake Build System.
* Greatly expand Unit test framework.
* C++11.  Initially focus on widely supported C++11 features, then later adopt remaining features as they become widespread.
* Better modularization
** Switch to using libcroco as a regular dependency, not embedded in our codebase
** Break libavoid out to its own library
** Break libcola out to its own library
** Break libdepixelize out to its own library
** Break libgdl out to its own library
** Break libnrtype out to its own library
** Break libuemf out to its own library
** Break libvpsc out to its own library
* 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 SVG switches: the first recognized element in a switch should appear directly in the SP tree, not as a child of the switch element.
* Using the above mechanism, make flowed text SVG-compliant.
* Using the above mechanism, make flowed text SVG-compliant.
* Improve support for changing the name of the XML element node in response to SP tree changes.
* Improve support for changing the name of the XML element node in response to SP tree changes.
* 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.
* 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.
=== Long term goals ===
* Better modularization: separate the Inkscape codebase into several libraries that could be used by other programs.
* General refactoring: make Inkscape a joy to develop.
* General refactoring: make Inkscape a joy to develop.
* (DONE - Markus) <del>SP tree refactoring: Port the object tree to C++ objects.</del>
* (DONE - Markus) <del>SP tree refactoring: Port the object tree to C++ objects.</del>
Line 50: Line 74:
* CSS support?
* CSS support?
* Animation support.
* Animation support.
=== Inkscape 1.* ===
=== Milestone [Future] ===


[[Category:Developer Documentation]]
[[Category:Developer Documentation]]

Revision as of 07:24, 14 October 2014

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.

Inkscape 0.48

0.48 is intended to be a quick release cycle focused on merging GSoC work and fixing some long standing bugs.

  • Merge and stabilize Google Summer of Code 2009 work
    • (DONE) Node tool rewrite
    • (DONE…?) Connector tool improvements
    • (POSTPONED) D-Bus scripting API
  • (DONE) Desktop integration improvements: solve the issue of broken files resulting from people unknowingly pasting bitmap images as links.
  • (DONE) Build system improvements: evaluate Waf as an unified build system for all platforms (Krzysztof)
    • to be considered for 0.49, branch at lp:~tweenk/inkscape/waf-build)
  • (DONE) Move code hosting to Launchpad
  • Windows port improvements
    • (DONE) move devlibs to a Launchpad project
    • (DONE) Rebuild C++ libraries using TDM-GCC to fix Launchpad bug #173116 - exceptions not caught across DLLs
    • (DONE) Upgrade Windows devlibs to recent versions of GTK and GLib to fix several Windows bugs
    • Make the uninstaller work

Inkscape 0.91

0.91 will be a longer cycle focused on refactoring and new features.

  • (DONE) Merge GSoC 2010 work
  • (DONE) Evaluate changing the numbering scheme to a date-based one, or setting more realistic goals for major (1.0, 2.0) releases
  • (DONE) Port renderer to Cairo (Krzysztof - GSoC 2010)
  • (DONE) Completely remove libnr

Inkscape 0.92

Inkscape 0.93

Inkscape 0.94

Inkscape 0.9x

Inkscape 1.0

Inkscape 1.x

Milestone [Future]

Random Ideas / Requests / Needs

Note this list is unordered, unapproved, and unofficial. Feel free to add new ideas worth considering for the roadmap.

  • Replace VCS.
  • Replace Automake Build System.
  • Greatly expand Unit test framework.
  • C++11. Initially focus on widely supported C++11 features, then later adopt remaining features as they become widespread.
  • Better modularization
    • Switch to using libcroco as a regular dependency, not embedded in our codebase
    • Break libavoid out to its own library
    • Break libcola out to its own library
    • Break libdepixelize out to its own library
    • Break libgdl out to its own library
    • Break libnrtype out to its own library
    • Break libuemf out to its own library
    • Break libvpsc out to its own library
  • 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.
  • Using the above mechanism, make flowed text SVG-compliant.
  • Improve support for changing the name of the XML element node in response to SP tree changes.
  • 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.
  • General refactoring: make Inkscape a joy to develop.
  • (DONE - Markus) SP tree refactoring: Port the object tree to C++ objects.
  • GtkMMification
  • XML refactoring: Remove direct manipulation of XML from as many places as possible and replace it with SP tree methods.
  • 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.
  • CSS support?
  • Animation support.