Difference between revisions of "Roadmap"
Jump to navigation
Jump to search
Line 37: | Line 37: | ||
** with an empty start | ** with an empty start | ||
** when starting up with an existing file | ** when starting up with an existing file | ||
* 2geom maintenance | * 2geom maintenance | ||
** Stop embedding 2Geom in Inkscape's codebase; handle it as a regular dependency | ** Stop embedding 2Geom in Inkscape's codebase; handle it as a regular dependency |
Revision as of 15:28, 23 September 2017
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.91 ~ Refactoring
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 ~ Infrastructure Focus
- (DONE)
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/)- (DONE)
Put it publicly somewhere on the inkscape domain for "official" access.(http://jenkins.inkscape.org/job/Inkscape_trunk_doxygen/doxygen/)
- (DONE)
- (DONE)
Build system: migrate away from Autotools (See Build system improvements)- (DONE)
Decide between CMake and Waf- (DONE)
Alex will be doing a "neutral party" review of the twoDecision to go with cmake for now.
- (DONE)
- (DONE)
Get decided system working- See CMake_Tasks
- (DONE)
Switch release tools to use new build systemDocumented for now; will wait on mechanizing it until after switch to git. - (DONE)
Switch packaging tools to use new build system - (DONE)
Retain Autotools support one final release (legacy support), then drop next release.
- (DONE)
- (DONE)
Make the Windows uninstaller work (reevaluate this, we now have msi installer for win32 and Win64)
Inkscape 0.93 ~ Maintenance and Optimization Focus
- (DONE)
Migration to Git - (DONE)
Migration to GitLab - (DONE)
Decide which Unit testing framework to use (Discussion July 2013 didn't get much traction)- 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)
Make C++11 compiler a hard requirement - Gtk3/UI revamp and panels fixing
- (DONE)
Drop Autotools support (See Build system improvements) - 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)
Migrate potrace to be an external dependencyDone 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
- 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
- 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
- Switch to using libcroco as a regular dependency (not embedded in our codebase).
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
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
- 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 (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