Difference between revisions of "PastMilestones"

From Inkscape Wiki
Jump to navigation Jump to search
Line 322: Line 322:
* (DONE) PR and Release announcement sent out [rejon + bryce]
* (DONE) PR and Release announcement sent out [rejon + bryce]

=== Milestone 8 - [[GtkMM]] Architectural Change - Inkscape 0.42 ===
=== Milestone 8 - GtkMM Architectural Change - Inkscape 0.42 ===

General Gtkmm Interface
General Gtkmm Interface

Latest revision as of 19:34, 29 February 2012

Past Milestones

Milestone 0

Inkscape Production:

  • (DONE) Post hydra-october patchset to Sodipodi mailing list [bryce]
  • (DONE) Import sodipodi into inkscape CVS as module 'inkscape' from hydra-october [mental]
  • (DONE) Unsodipodify the tree, replacing instances of 'Sodipodi' with 'Inkscape' where appropriate (we will be keeping the sodipodi XML namespace for compatibility) [mental]
  • (DONE) Install inkscape 0.00 for personal use [bryce]
  • (DONE) Install inkscape 0.00 for personal use [mental]
  • (DONE) Install inkscape 0.00 for personal use [ted]
  • (DONE) Install inkscape 0.00 for personal use [njh]
  • (DONE) Decide what release number N to use (0.00? 0.33? 0.35? 1.00?) - we'll use 0.35

Inkscape Experimental

  • (DONE) Decide name for Mental's sketch 'inkscape-experimental'? 'experimental'? 'inkscape-next-gen'? -- It shall be called 'experimental' [mental]
  • (DONE) Import code into CVS [mental]
  • (DONE) Document use of the experimental module [bryce]

Inkscape Website

  • (DONE) Set up a Wiki [bryce]
  • (DONE) Post sketchy website with homepage, contact info, news, and pointer to wiki [bryce]
  • (DONE) Set up website to auto-rebuild every few minutes [bryce]

Milestone 1

Inkscape Production

  • (DONE) Get inkscape to build with a C++ compiler [team]
  • (DONE) Fix CDATA issue [mental]
  • (DONE) Get codebase to successfully complete `make distcheck` -- mental says 'worksforme' [team]
  • (DONE) Fix 'snap to guides' crash bug [bryce]
  • (DONE) Update the about dialog to include the new logo and version [bryce, tvon]
  • (DONE) Cut a release of Inkscape 0.35 [ted]
  • (DONE) Upload release tarball of Inkscape 0.35 to Inkscape SF file manager [ted]

Inkscape Experimental

  • (DONE) Initiate work on grid-proto code & put in CVS [njh]
  • (DONE) Conceptualize a new export dialog in python [tvon, njh]

Inkscape Website & Project

  • (DONE) Create logo for Inkscape [team]
  • (DONE) Create look and feel graphical design prototype for website [tvon]
  • (DONE) Create 3+ screenshots of Inkscape Production [bryce]
  • (DONE) Flesh out website more fully [bryce]
  • (DONE) SourceForge RFE section needs setting up (categories and groups) [bryce]
  • (DONE) Create inkscape_project module & add wiki.pl there [bryce]

Inkscape 0.36 - Milestone 2

Objective: Implement new features & do prep work for major changes in future

Inkscape Production

  • (DONE) Create Freshmeat project for Inkscape [tgould]
  • (DONE) Remove the KDE / Qt code and dependencies [manny]
  • (DONE) Check all listed Sodipodi bugs numbered from 775385 to less than 830500, and copy recreatible ones to Inkscape's CVS tracker [bryce]
  • (DONE) Check all listed Sodipodi bugs numbered from 830500 and up, and copy recreatible ones to Inkscape's CVS tracker [kidproto]
  • (DONE) Check all listed Sodipodi bugs numbered less than 775385 and copy recreatible ones to Inkscape's CVS tracker [kidproto]
  • (DONE) Copy open patches from Sodipodi patch tracker to Inkscape [bryce]
  • (DONE) Implement preliminary support for doxygen or doc++ in the codebase [tgould]
  • (DONE) Implement preliminary support for arrowheads on path ends [bryce]
  • (DONE) Make SPGroup?s behave like layers if inkscape:groupmode is set to "layer" [mental]
  • (DONE) Decide on URI namespace [mental, bryce] - http://www.inkscape.org/namespaces/inkscape
  • (DONE) Implement an Inkscape namespaces [mental]
  • (DONE) Eliminate all warnings in g++ build process on Linux [joncruz]
  • (DONE) Incorporate bulk of patches posted to patch tracker [Kees]
  • (DONE) Fix bug: on quit, still says I have unsaved changes, even though I saved
  • (DONE) Fix bug: save as/save should use "SVG with xmlns:sodipodi namespace" as default [tgould]
  • (DONE) Fix bug: files are sometimes erroneously saved without the extension namespaces (typically the first time) [tgould, mental]
  • (DONE) Rename &q

1000 uot;SVG with xmlns:sodipodi namespace" to "SVG with extension namespaces" [mental]

  • (DONE) Rewrite inkscape manpage [bryce]
  • (DONE) Replace the doc/keybindings.txt file with one from Wiki [tgould]
  • (DONE) Create & post tarball of 0.36 release [tgould]
  • (DONE) Create RPM for 0.36 [bryce]
  • (DONE) Create Deb package for 0.36 [njh]
  • (DONE) Create Windows exe package for 0.36 [mael]
  • (DONE) Post release to Freshmeat [tgould or bryce]
  • (DONE) Send mentions to GnomeDesktop?, LWN, and other sites [kidproto=rejon]

Interface & usability

  • (DONE) Merge BORKEN UI reorganization [mental]
  • (DONE) Make all dialogs unsinkable, closeable (ctrl-f4, ctrl-w), defocusable (esc, enter in textfields) [bb]
  • (DONE) Make all dialogs remember size and position across sessions [bb]
  • (DONE) Unify names of commands and dialogs [bb]
  • (DONE) Implement Tab, Esc, ctrl-a in node editor [bb]
  • (DONE) Fix scrollwheel problem [kees]

Inkscape Experimental R&D

  • (DONE) Describe what needs to be done to fix ambiguous default namespace issue [mental]
We need to disambiguate between qnames that have no namespace and qnames in the default namespace (normally SVG's). Since internally we use a standard set of prefixes with qnames rather than expanded names, this means using e.g. "svg:g" and "svg:svg" instead of "g" and "svg" everywhere to name SVG elements. Note that namespaces are normalized to our standard prefix mappings at load time, so that does not itself constitute a compliance issue. -- MenTaLguY?
  • (DONE) Select a regression test system strategy (I wrote a very minimal testing framework) [mental]
  • (DONE) Build a prototype GridOptions? dialog using gtkmm [njh]
  • (DONE) Prototype stroking/path enhancements [njh]
  • (DONE) Start assembling list of requirements for plugin system [bryce]
  • (DONE) Change Inkscape from 'CSDI' to 'SDI'. See [HIG Document Interface Types] [mental]

Inkscape Website & Project

  • (DONE) Convert wiki to new look and feel [tvon]
  • (DONE) Convert website to new look and feel [tvon]
  • (DONE) Post project status [bryce]
  • (DONE) See if it's possible to make wiki send edit notification to a mailing list & set it up if so [bryce]
  • (DONE) Figure out how to get http://inkscape.org to work correctly [mental, kees]
  • (DONE) Set up a 'project' cvs module for putting config files, backups, etc. [bryce]
  • (DONE) Plan out Milestone 3 [bryce]

Inkscape 0.37 - Milestone 3

Objective: Convert codebase to C++ and cleanup codebase

Inkscape Production

  • (DONE) Fill in HandlingPreferences with a how-to on storing and using preference values
  • (DONE) Create patch to add doxygen documentation for sp-root [bryce]
  • (DONE) Create a class hierarchy diagram & add to website [mental & bryce]
  • (DONE) Create a block diagram of the subsystems* Define C++ namespaces (e.g., 'Inkscape::$subsystem')
  • (DONE) Ensure doc/ dir is included in source tarballs [mental]
  • (DONE) Commit to C++ build; rename .c files to .cpp [mental & njh]
  • (DONE) Investigate getting spsvgview building in C++
  • (DONE) Increase precision in SVG, apply and test the 256x zoom patch [bb]
  • (DONE) Investigate why events don't always get passed from dialogs to canvas - see EventContextGrab
  • (DONE) Fix node editor's display update properly when the path is modified outside of the editor - see SelectionModifiedSignal
  • (DONE) Consider using the release number for the milestone number [bryce + kidproto]
  • (DONE) Go through all Sodipodi feature requests and programming tasks and copy ones worth doing into Inkscape's tracker, or create Wiki pages for those that require discussion [kidproto=rejon]
  • (DONE) Implement Fullscreen mode menuitem [jceuppens]
  • (DONE) Review #if 0 code and delete any that doesn't look like it's needed or document why, if it is
    • (DONE) Review #if 0 code in bonobo/ [bryce]
    • (DONE) Review #if 0 code in *-context.cpp files [johan]
    • (DONE) Review #if

1000 0 code in desktop*.cpp and svg-view.cpp files [ted]

    • (DONE) Review #if 0 code in sp-gradient.cpp, sp-root.cpp [njh]
    • (DONE) Review #if 0 code in file.h, interface.cpp, geom.cpp, inkscape.cpp, and style.cpp [ishmal]
    • (DONE) Review #if 0 code in *-chemistry.cpp [njh]
    • (POSTPONED) Review #if 0 code in seltrans.cpp [pjrm]
    • (DONE) Review #if 0 code in knotholder.cpp, nodepath.cpp, rubberband.cpp, object-edit.cpp, and object-ui.cpp [bb]
    • (DONE) Review #if 0 code in svg/ [bryce]
    • (DONE) Review #if 0 code in dialogs/ [bryce]
    • (DONE) Review #if 0 code in display/ [mental]
    • (DONE) Review #if 0 code in helper/ [bryce]
    • (DONE) Review #if 0 code in libnr/
    • (DONE) Review #if 0 code in libnrtype/ [rejon]
    • (DONE) Review #if 0 code in modules/
    • (DONE) Review #if 0 code in widgets/ [bryce]
    • (DONE) Review #if 0 code in xml/
    • (DONE) dialogs folder [rejon]
  • (DONE) Revise HACKING file(s) [bryce]
  • (DONE) Create new screenshots for website & Freshmeat [kidproto=rejon]
  • (DONE) Port good code from Sodipodi 0.33 (including xml:space work) [bb]
  • (DONE) Update coding-style.txt when the Coding_Style page is finalized [bryce]
  • (DONE) Do a final proof-read / edit of Coding_Style to formalize it [bryce]
  • (DONE) Move the contents of the Coding_Style page to CVS [bryce]
  • (DONE) Announce finalized coding-style.txt to inkscape-devel@ list [bryce]
  • (DONE for src/*) Remove NRPoint based code. [njh, pjrm]
  • (DONE) Update NEWS with copy of Release notes when all development is finalized [rejon]
  • (DONE) Create & post tarball of 0.37 release [tgould]
  • (DONE) GPG sign the tarballs - md5sum is not secure enough [tgould]
  • (DONE)Look at the spec files from KDE-Redhat for how to use %defines for different flavors of distros (it works better for different versions of same distro.. its gets ugly when mixing distros)
  • (DONE)Grab spec file from fedora.us in the sodipodi package to set up Fedora packaging
  • (DONE) Create Mandrake SRPM & RPM for 0.37 [bryce]
  • (DONE) Create Deb package for 0.37 [njh]
  • (DONE) Create Windows exe package for 0.37 [ishmal]
  • (DONE) Post release to Freshmeat [tgould]
  • (DONE) Upload debs to debian unstable
  • (DONE) Upload rpm(s) to Mandrake Cooker [bryce]
  • (DONE) rename old glade directories and make sure name change is reflected throughout code [rejon]

Interface & usability

  • (DONE) Enable keyboard navigation within dialogs (tab switching, next widget, etc) [bb]
  • (DONE) Make text fields in dialogs directly editable
  • (DONE) Make all dialogs remember size and position across sessions [bb]
  • (DONE, except skew) Consistently enable restricted rotate (with Ctrl) everywhere [bb]
  • (DONE) Implement the global dialogs on/off toggle [bb]
  • (DONE) Store more global things in preferences (nudge distance, mouse scroll distance, etc) [bb]
  • (DONE) Decide on mouse scrollwheel modifiers [everyone, see mailing list archives]
  • (DONE) Full keyboard control in node edit [bb]
  • (DONE) Flesh out the SecondaryToolbar, at least for selector [bb]
  • (DONE) Add keyboard shortcuts reference and tutorial to the Help menu [bb]
  • (DONE) Allow the user to edit the control points in the gradient editor [njh]

Inkscape Experimental:

  • (DONE) Identify the remaining XML compliance bugs needing to be fixed & add to plan for M4/M5 [mental]
  • (DONE) Investigate feasibility of removing libarikkei and plan doing it [bryce]
  • (DONE) Investigate replacement of libnrtype with Pango and plan doing it [bryce]

Inkscape Website & Project

  • (DONE) Set up a logging for jabber
  • (DONE) Set up hourly cronjob to rebuild code docs onto website [tvon]
  • (DONE) Set up Google Search for inkscape.org [kidproto=rejon]
  • (DONE) Set up automatically updated display of man page(s) onto Inkscape website [kidproto=rejon]
  • (DONE) Initiate clipart effort [bryce]

Milestone 4 - Bug Hunt & Testing - Inkscape 0.38

  • (DONE) Port Inkscape to work with ebuild, the gentoo packaging/compiling system
  • (DONE) Knock bug list count down to 10 or fewer, or to a ratio of 1

1000 0% open/total [all]

  • (DONE) Implement text kerning and spacing (hor & vert), at least by keys [bb]
  • (DONE) outline help system, possible strategies and available documentation for inclusion - use SVG! [bb]

Milestone 5 - Pango Architectural Change - Inkscape 0.39

  • (DONE) Develop GTKMM mockup/ideas for the Layers dialog [brisgeek, mental]
  • (DONE) Consider trimming ChangeLog? (currently ~370 KB) [bryce]
  • (DONE) Wiki site refactoring/cleanup - move old or less useful links off the top wiki page [bryce]
  • (DONE) Review and revise TricksAndTips - can some of these move to the User Manual?
  • (DONE) Reduce/eliminate debug messages that occur when doing e.g. node editing, etc.
  • (DONE) Remove last bits of dependency on libart by copying what we need out of it, into libnr
  • (DONE) Cleanup/reorganize Wiki homepage (too many links!) - perhaps move some into a PDF manual?
  • (DONE) Finish moving tool options to 2ndary palette
    • (DONE) move arc tool options to 2ndary palette (code in src/toolbox.cpp)
    • (DONE) Remove tool options dialogue and code from project [bulia]
    • (DONE) Fix Alt+X
  • (DONE) Make window layout settable in View menu
  • (DONE) Fix markers preview
  • (DONE, unless I missed something) Fix all object-replacing commands to preserve ID
  • (DONE) Fix svg:use support, create the Clone command [bb]
  • (DONE) Add -V, --version commandline option to display application version & copyright info
  • (DONE) Replace calls to arikkei string/tokenizing routines in libnrtype/ with standard glib functions & remove libarikkei
  • (DONE) Expand the Preferences dialog (see HandlingPreferences) [bb]
  • (DONE) Create SetStyleSignal? and make Dropper useful [bb]
  • (DONE) Reorganize/trim down User Interface Discussion section of main wiki page [bryce]
  • (DONE) Incorporate ECMA Javascript [ishmal]

Adopt Pango for handling fonts (http://inkscape.org/cgi-bin/wiki.pl?Pangoification)

  • (DONE) Add Pango as an optional dependency for Inkscape & test on our various target platforms
  • (DONE) Make Pango a required dependency for Inkscape & remove compile-time option scaffolding
  • (DONE) Create a pango_test in the experimental CVS module [fred]
  • (DONE) Test outlines using Pango [fred] - c.f. test_font->RasterFont?(one_mat,the_stroke_width)
  • (DONE) Test vertical text using Pango with multi-glyph characters like an A with an umlaut [fred]
  • (DONE) Document functions in libnrtype
  • (DONE) Test out if letterspacing / kerning works with Pango [fred]
  • (DONE) Reimplement the libnrtype routines in Pango terms [fred]
  • (DONE) Go through the code looking for nrtype calls and replace them with direct calls to Pango
  • (DONE) Eliminate need for the libnrtype API via direct calls whereever possible.

Holdovers from last release

  • (DONE) Write an extensions/plugin enhancement proposal(s) and post to mailing list and [this wiki page] for review [bryce]
  • (DONE, but needs fixing libnr display while dragging) Implement "scale stroke" switch

Publicity & Networking

  • (DONE) Write an article about the project to various websites [bryce]
  • (DONE) Try to get a mention on LWN

Website Revision

  • (DONE) Find & move pages out of the wiki that should really be in the main website
  • (DONE) Archive obsolete pages in the Inkscape wiki
  • (DONE) Consider refactoring for the main Inkscape website
  • (DONE) Trim down the number of links on the main wiki page to be much fewer

Milestone 6 - Features and Fixes - Inkscape 0.40

New/Changed? Dependencies

  • (DONE) Add a dependency on libgc (the Boehm conservative collector), which will be required for the AST code [mental]
  • (DONE) Switch to sigc++ 2 + gtkmm 2 early in 0.40, before we start doing gtkmm-intensive stuff like the layers dialog etc. [mental]
  • (DONE) Add Gtk-Wimp (for windows theming)
  • (DONE) Use new file dialog when GTK 2.4 is released (but need to smooth out)


  • (DONE) Create new gtkmm classes Inkscape::Dialog, Inkscape::Application, and some widgets [bryce]
  • (DONE) Auto-include AUTHO

c93 RS list into manpage on build [pjrm]

  • (DONE) Set up automatic insertion of current application version into Inkscape man page [pjrm]
  • (DONE) Change the SEGV and SIGABRT handlers to reliably autosave and put up a crash dialog
  • (DONE) add support for inkscape:label attribute for author-readable object names [mental]
    • (DONE) add SPObject::defaultLabel() to return a default label string if inkscape:label is unset [bryce]
  • (DONE) Implement SPItem::{locked,setLocked,visible,setVisible} [bryce]
  • (DONE) Implement SPDesktop::itemIsHidden?(SPItem *) for getting per-desktop visibility [mental]


  • (DONE) Implement Text on Path
  • (DONE) Smoother freehand pencil tool [pjrm]
  • (DONE) Make gradient management & chaining work similar to patterns [bb]
    • (DONE) Fix fill-opacity ignored with gradients [bb]
  • (DONE except bug #1061934) add support for visibility CSS property [mental]

Interface & Usability

  • (DONE) Make all knots display explanations in statusbar on mouseover
  • (DONE) Implement "Select Under" [bb]
  • (DONE) Add shortcuts to button tooltips (at least for verbs)
  • (DONE) Basic metadata/RDF support for clipart, etc.
  • (DONE) Rudimentary layers UI
    • (DONE) Finish new gtkmm layer selector [mental]
      • (DONE) Update list upon addition/removal/reordering of layers [mental]
      • (DONE) Finish show/hide lock/unlock buttons [mental]
      • (DONE) Add UI for setting inkscape:label attribute [bryce]
      • (DONE) Fix funky widget resizing [bryce]
      • (DONE) unselect objects when manually switching layers [mental]
    • (DONE) Tie off loose ends with layer-related commands [mental]
      • (DONE) Add "selection to sublayer" command and its inverse [mental, bb]
      • (DONE) Make "move to next/prev layer" move selected objects to next/prev layer [mental, bb]
  • (DONE) UI support for visibility
    • (DONE) Implement and enable "visible" checkbox in object properties (using SPObject::{visible,setVisible} [bryce]
    • (DONE) Make "intelligent" raise/lower aware of visibility status (using per-desktop SPDesktop::itemIsHidden?) [bb]
    • (DONE) Make selection tool and tests for item-at-point aware of per-desktop visibility [bb]
  • (DONE) object label support
    • (DONE) add ability to set inkscape:label from "Item Properties" [bryce]
    • (DONE) remove id setting from "Item Properties"? [bryce]
    • (DONE) switch to using SPObject::label()/SPObject?::defaultLabel() in UI where object ID is currently used [bryce]
  • (DONE) add (preliminary) support for "title" and "desc" elements to "Item Properties"

Documentation & Packaging

  • (DONE) Split tutorials into even smaller pieces, document new stuff since 0.38
    • (DONE) shrink and subdivide Elements and Principles of Design (made smaller) [rejon]
    • (DONE) Create a new tutorial (Shapes) [bulia]
  • (DONE) Push for new dependencies to be updated upstream [all]

Milestone 7 - Bugfix Release - Inkscape 0.41

  • (DONE) Experiment with use of Glade for inkscape_gtkmm
  • (DONE) Fix 150 "points" worth of bugs
  • (DONE) PR and Release announcement sent out [rejon + bryce]

Milestone 8 - GtkMM Architectural Change - Inkscape 0.42

General Gtkmm Interface

  • (DONE) Merge the inkscape_gtkmm codebase into mainline with cmdline option to activate it [bryce]
  • (DONE) Implement text in shape UI
  • (DONE) Selection and node tools: double-click on group sets group as current layer (without altering inkscape:groupmode) [bb]

Icons and Cursors

  • (DONE) Implement basic icon theming capability
  • (DONE) Convert all xmp icons to svg's
  • (DONE) Create one alternate icon/cursor set

Dialogs Redevelopment and improved HIG-Compliance

  • (DONE) Fill Stroke dialog
    • (DONE) Overhaul Gradient UI to improve management and creation
  • (DONE) Align and Distribute Dialog - Convert to Gtkmm
  • (DONE) Trace Dialog - Convert to Gtkmm
  • (DONE) Transformation Dialog - Convert to Gtkmm
  • (DONE) Object Properties dialog
    • (DONE) Redesign Object Properties dialog
  • (DONE) Create a swatches dialog

Layer Enhancements

  • (DONE) search checks inkscape:label, and ignores layers [bb]
  • (DONE) Move to Layer Above Shift + Page Up
  • (DONE) Move to Layer Below Shift + Page Down

Extensions Prep Work

  • (DONE) Example extension package


  • (DONE) Clean up tool ("event context") code

Milestone 9 - RFE's - Inkscape 0.43

New/changed Dependencies

  • (DONE) Add libcroco
  • (DONE) Add dependencies for Whiteboard and other Google SoC projects


  • (DONE) Reduce open/total RFE ratio to 55%
  • (DONE) Bidirectional text in Pango needs attention
  • (DONE) MakeVertical in Pango needs attention
  • (DONE) Integrate use of libcroco for handling Cascading Style Sheets.


  • (DONE) tools: add/remove points on path, bezier drag
  • (DONE) Markers
  • (DONE) Load-from-URL [bryce]


  • (DONE) Redevelop About screen [kees]
    • (DONE) break out the credited developers, translators, and testers [kees]
    • (DONE) investigate use of Gtk About [kees]


  • (DONE) Implement tests of Inkscape against the W3C test suite [rick beton, bryce]
  • (DONE) Host a Bug Party [nicu, bryce]

Milestone 10

fill in from Roadmap page