GRAMPS work required for Python 2.6

From Gramps
Revision as of 13:11, 23 November 2008 by Josip (talk | contribs) (Required Changes)
Jump to: navigation, search

Work to do to have GRAMPS work in python 2.6

Required Changes

  • Change md5 module by hashlib.
    • where is this used? Keys? Website? Do the keys remain the same after changing to hashlib?
  • Replace sets module with built-in set types
    • where is this used: for importing GRAMPS XML files with _ReadXML.py in GrampsDbUtils

Database Change

Python 2.6 will normally ship with bsddb 4.7.x , which has some important changes from 4.6.x.

Details:

Points:

  • Is upgrade of the old database possible?? So can a database created with 4.6 be opened with 4.7? We can expect the reverse not to be possible? If so, do we need a new database version just for this, so we can stop users opening the db made with 4.7 again with 4.6 ?
    • A database created with bsddb 4.6 can be opened with 4.7 if minor changes are made to dbdir.py (as below for DB_LOG_AUTOREMOVE).
  • The log system must be changed:
    • 4.6: db.DB_LOG_AUTOREMOVE ==> 4.7: db.DB_LOG_AUTO_REMOVE. FIXED in branch/trunk, see 2483 (there is also a customized dbdir.py on [3])
      • This change to dbdir.py allows gramps to start up and load a db. A log subsystem error is raised if Rebuild Reference Maps is run (Repair Database in the Family Tree editor runs without apparent error).
    • method DB->set_flags must be researched. Change to log_set_config() method where needed. SHOULD BE FIXED in branch/trunk, see 2483


From the above it looks like we will need two parellel implementations, so in config a flag will need to be raised: 4.6- database engine or 4.6+ database engine. For the first, the code is as today, for the second, use the new methods. Is this the best way to handle this??