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
 
(23 intermediate revisions by 5 users not shown)
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, only the current and current+1 releases should be taken seriously.  Beyond that is mainly conjectural.
removed - content was outdated
 
''See [[OldRoadmap]] for milestones that have already been achieved.''
 
=== Inkscape 0.91 ~ Refactoring ===
 
0.91 will be a longer cycle focused on refactoring and new features.
 
* (DONE) <del>Merge GSoC 2010 work</del>
* (DONE) <del>Evaluate changing the numbering scheme to a date-based one, or setting more realistic goals for major (1.0, 2.0) releases</del>
* (DONE) <del>Port renderer to Cairo (Krzysztof - GSoC 2010)</del>
* (DONE) <del>Completely remove libnr</del>
 
=== Inkscape 0.92 ~ Infrastructure Focus ===
* (DONE) <s>Set up autogeneration of Inkscape source code documentation ([http://wiki.inkscape.org/wiki/index.php/Doxygen_documentation Doxygen not available online according to old wiki page] but [http://fossies.org/dox/inkscape-0.91pre2/ available here (fossies.org)])</s> (http://jenkins.inkscape.org/job/Inkscape_trunk_doxygen/doxygen/)
** (DONE) <s>Put it publicly somewhere on the inkscape domain for "official" access.</s> (http://jenkins.inkscape.org/job/Inkscape_trunk_doxygen/doxygen/)
* (DONE) <s>Build system: migrate away from Autotools (See [[Build system improvements]])</s>
** (DONE) <s>Decide between CMake and Waf</s>
*** (DONE) <s>Alex will be doing a "neutral party" review of the two</s>  Decision to go with cmake for now.
** (DONE) <s>Get decided system working</s>
*** See [[CMake_Tasks]]
** (DONE) <s>Switch release tools to use new build system</s>  Documented for now; will wait on mechanizing it until after switch to git.
** (DONE) <s>Switch packaging tools to use new build system</s>
** (DONE) <s>Retain Autotools support one final release (legacy support)</s>, then drop next release.
* (DONE) <s>Make the Windows uninstaller work (reevaluate this, we now have msi installer for win32 and Win64)</s>
 
=== Inkscape 0.93 ~ Maintenance and Optimization Focus ===
* (DONE) <s>Migration to Git</s>
* (DONE) <s>Migration to GitLab</s>
* (DONE) <s>Decide which Unit testing framework to use ([http://inkscape.13.x6.nabble.com/Unit-testing-td4967386.html Discussion July 2013 didn't get much traction])</s>
** Hackfest consensus is Google test.  Bryce will make RFC to devel list for any other opinions.
* Set up continuous builds using Travis CI / Appveyor
* (DONE) <s>Make C++11 compiler a hard requirement</s>
* Gtk3/UI revamp and panels fixing
* (DONE) <s>Drop Autotools support (See [[Build system improvements]])</s>
* Improved performance
** with an empty start
** when starting up with an existing file
* 2geom maintenance
** Stop embedding 2Geom in Inkscape's codebase; handle it as a regular dependency
** Move project to gitlab, from https://launchpad.net/lib2geom, http://lib2geom.sourceforge.net/, and https://github.com/inkscape/lib2geom
** Possibly start doing lib2geom releases in conjunction with Inkscape's releases?
** Add to PPAs and other CI / autobuilds we already use for Inkscape
* 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).
* (DONE) <s>Migrate potrace to be an external dependency</s> Done for 0.92
* Prepatory work for expanded testing
** Implement example unit tests for:  SP objects, verbs, cmdline options, live effects, UI dialogs, UI widgets/tools, UI view, etc.
* New Swatch dialog [Tomasz' GSoc project]
 
=== 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.
** Ex. https://dl.dropboxusercontent.com/u/65084033/irc/ask-smart-questions.svg
* Improve support for CMYK/spot colors
** Minor UI streamlining
** Eliminate the CMS tab
** Change the CMYK tab to allow selecting the CMYK colors directly
** Allow setting the document to CMYK, which sets a global CMYK profile
** Stores RGB colors as RGB, CMYK colors as CMYK
* Solicit community-contributed tutorial contributions
* (Optionally) Start allowing use of C++-11 features that we find to be sufficiently widely supported
* 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 postmaster@inkscape.org and abuse@inkscape.org set up.  Maybe as part of a mailing list refresh?
 
=== 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
* Write unit test cases
** Core functions
* Introduce new tutorials
 
=== Inkscape 1.0 ~ Documentation Focus ===
* Review, update, and expand existing documentation
** code documentation
** tutorials
** 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
 
 
-----------------------------------
'''Following is a WIP draft of the post-1.0 release goals; this is not yet finalized, and should not be taken as official yet'''
-----------------------------------
 
=== Inkscape 1.1 ~ Refactoring ===
* Expand range of C++-11 features allowed; make C++-11 support more of a requirement for Inkscape
** http://en.cppreference.com/w/cpp/compiler_support
* Take a holistic approach to UI design ([http://sourceforge.net/p/inkscape/mailman/message/33080043/ 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
* Externalize some (easy) dependencies
** Switch to using libcroco as a regular dependency (not embedded in our codebase).
*** Contact maintainer to see if still actively maintaining, and if can roll a new release for us
*** Else, consider adopting maintenance of the library under the Inkscape project umbrella
*** Or consider replacement with libcss or other CSS parser.
*** See http://inkscape.13.x6.nabble.com/Should-inkscape-take-over-libcroco-td2784457.html
** Switch to using Adaptagrams (libvpsc, libcola & libavoid) as a regular dependency
*** Contact maintainer to see if still actively maintaining, and if can roll a new release for us
*** Else, consider adopting maintenance of the library under the Inkscape project umbrella
*** See https://bugs.launchpad.net/inkscape/+bug/1353833
 
=== 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.
** Improve new contributor experience for getting patch reviews
** Switch patch review software from launchpad to something like mailing list + patchwork, or phabricator
* make msi Windows install multilingual
 
=== Inkscape 1.3 ~ Maintenance and Optimization ===
* Better modularization
** 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)
* [[GtkMMification]]
* 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 ===
* Complete conversion to GTK 3
** Switch to using libgdl as a regular dependency
** Be smarter about toolbar layout so we never have invisible (but necessary) buttons off the screen.
** Rework panels so that they resize consistently and display contents better.  Consider moving back to dialogs in some cases or moving more functionality to the canvas.
* Begin development of new plugin / extension system(s)
** C++ API with Python bindings
** Review the D-Bus scripting API GSoC work from 0.48 timeframe
** Easy to create
** Powerful enough to do LPEs, filters, etc.
** Probably need several different APIs for different levels in the codebase, such as atop the object model, one for canvas stuff, one atop the UI, etc.
*** For object layer will require better division from UI, so it doesn't require a selection for items to operate on
** Include a debug print of the loaded extensions/plugins/etc.
** Establish an Extensions Center for community-collaborative sharing/reviewing/maintaining extensions
*** Core extensions are shipped with Inkscape
*** User review ranking
*** Developer review ranking
*** Auto-QC ranking (mechanical testing, and checking for docs, test cases, etc.)
** Search the Extensions Center and install from within Inkscape
* Text support overhaul
** Opentype (turning on/off small caps)
** Fix Overreliance on system fonts.  Deja Vu is not an adequate typeface.
** Fix loss of typeface, text styling, text positioning
 
=== Inkscape 1.5 ~ Stabilization ===
 
 
 
 
=== Milestone [Future] ===
 
 
 
===== Infrastructure =====
 
 
===== Maintenance =====
* Split backend / GUI frontend
 
===== New features / Improvements to existing features =====
* <strike>Make flowed text SVG-compliant.</strike>
* [[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
* Javascript support
* Animation support.
** frame-by-frame interpolations?
** SMIL?
** Javascripts?
** Something else?
* Evaluate pdf exporter to join features from scribus Export
** Improved export for printing industry ([http://sourceforge.net/p/inkscape/mailman/inkscape-devel/thread/trinity-c6dc9287-cda7-4d8d-9a49-3201dd64f2d1-1412200320248%403capp-gmx-bs01/#msg32887957 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
** TopDraw
* OCR of bitmap traces
* Rewrite / reintroduce 3D box.
** 3-dimensional grid, perspective deformed, with snapping
 
===== Documentation =====
 
===== Community =====
 
[[Category:Developer Documentation]]
[[Category:Developer Documentation]]

Latest revision as of 14:56, 26 May 2025

removed - content was outdated