This page collects possibilities for the 3.2 version of GRAMPS
- end of March 2009: decision of the final 3.2 Roadmap (this document). Every main goal and database change needs at minimum one developer and one reviewer.
- June 2009: database changes finished and merged back in trunk
- November 2009: main goals finished (if started in another branch, it is merged back in trunk)
- Beginning of 2010: Release
Changes to the way developers handle the workflow. This will be decided by the core developers in the near future.
- A required minimum pylint score of 9. This would require all present code to at least obtain this score? Developer to write this policy: Brian M.
- Every main goal and database change needs at minimum one developer and one reviewer. We need to avoid situations as with 3.0/3.1 where large code changes where left only partially finished. If the developer drops out, the reviewer can or take over and fix things up, or revert the changes. If there are two developers then it suffices both are also reviewers.
- svn branches for all large changes that requires multiple checking over a period of time during which the code will be broken (eg database changes and large refractoring). It is mainly up to the developers to do this or not, but this should make it clear how main changes can be added to the codebase without disrupting development of other people for a long period (which should be avoided). See commands eg here. Developer to write this policy: ?
- Decision on the definition of the different parts of GRAMPS. What do we allow as plugins, views, gramplets, ... ? How do we offer the user a non-confusing image of what GRAMPS is? This starts in version 3.1 with not distributing some parts of GRAMPS that are present in the subversion repository. Developer to write this policy: bmcage. First scribles: GEPS 012: Ecosystem_definition
- Decision on a tool for adding API documentation to GRAMPS source code. The aim would be to work out the infrastructure to make this possible, and guidelines to the GRAMPS developers. Note that GRAMPS contains some support already, but as since the last version nobody seems to bother this means the present guidelines are or not known, or the syntax not liked, or ... See feature request. Developer to write this policy: ?
For 3.1 we have: Python 2.5 or greater, PyGTK2 2.10 or greater, Python Glade bindings, librsvg2 (svg icon view), xdg-utils Recommended or optional: GraphViz, gtkspell, ttf-freefont. Documentation is in mediawiki.
- change to PyGTK 2.12. Reason: Move away from libglade to GtkBuilder. Info: , example: . Developers: ? - Reviewers: ?
- change to python 2.6. Reason: preparing for a move to python 3.0. For this we need the support that python 2.6 offers. That is, people should start to run GRAMPS with:
python -3 gramps.py
- which will print out depreciation warnings for all syntax that is not compatible with Python 3.0. The goal is then to clean up all Python 3.0 depreciation warnings using the new functionality that python 2.6 offers for this. There is no need to have this finished before 3.2 though. Developers: All
- it appears there is a drive to use enchant for spell checking. The API is better than gtkspell and has a python interface. We should investigate if we should not move entirely to this package and deprecate gtkspell. At a minimum enchant we will look into adding enchant as a possible spell checking backend to GRAMPS, using it when installed. Packagers could then choose to let GRAMPS depend on enchant or gtkspell (part of gnome-extras now).
Database backend changes
Are there features that require database change? This should happen in the beginning of the development cycle. List your requirements here. Database changes should be started in subversion branches if disruptive (see commands eg here).
- event subtype: bug tracker:. There is partial support for this in GEDCOM that is not present in Gramps. This addition would mean a rework of the event type system to make it more user friendly to the user, instead of the copy of GEDCOM it is now: selection of most used events, main events with subtypes, addition of iternaries as subtype to use for map display, .... Developers: bmcage - Reviewers: ?
This section lists main goals developers want to achieve with GRAMPS 3.2. Main goals should be started in subversion branches if the user wants to collaborate or use version management (consider svn-git if needed) (see commands eg here)
- File Organization (GEPS 008): bug tracker:. Although this goal is disruptive it will be done in trunk due to its inherent nature. Developers: Brian M. - Reviewers: ?
- Import Export Merge (GEPS 009): bug tracker:. Developers: ? - Reviewers: ?
- Beter API documentation: bug tracker:. Developers: ? - Reviewers: ?
- rework PageView classes: bug tracker: TODO. Aim would be to split PageView and classes to it's own subdirectory, allow views to be plugins, have PersonView derive from the same classes as the other views instead of a custom class, have history in all listviews (as it was intended originally, code is half finished now), allow organized views in source/place like in present person view. Developers: bmcage - Reviewers: ?
- Class and method naming: bug tracker: TODO. Class and method names in Gramps do not follow object oriented conventions. Class names should be nouns and method names should be verbs. Developers: gburto01 - Reviewers: Brian M.
This section lists minor goals developers want to achieve. Changes to plugins are normally minor goals !! Minor goals can be done by one developers alone. Partially finished 3.1 features might be completed in 3.2 and backported to a 3.1.x version if there is support for this in the communitity.
- Fully functional GeoView: bug tracker: TODO. GeoView has some way to go to be on the level needed to allow inclusion in GRAMPS. Developers: ?
- Remove memory leaks present in glade loading code. bug tracker:  - these changes might be backported to 3.1 depending on the code size. Developers: gburto01
- GEDCOM import error/warnings report. bug tracker: todo - provide a report of GEDCOM errors and warnings after import to show the user what information has not been imported. Developers: gburto01