[Python-Dev] Re: replacing bsddb with pybsddb's bsddb3 module
Barry A. Warsaw
barry@zope.com
Mon, 24 Jun 2002 14:47:21 -0400
>>>>> "GPS" == Gregory P Smith <greg@electricrain.com> writes:
GPS> This sounds good. Here's what i see on the plate to be done
GPS> so far:
GPS> 1) move the existing Modules/bsddbmodule.c to a new
GPS> Modules-old or directory.
mkdir Modules/old (or Modules/extensions-old)
mv Modules/bsddbmodule.c Modules/old
GPS> 2) create a new Lib/bsddb
GPS> directory containing bsddb3/bsddb3/*.py from the pybsddb
GPS> project.
+1
GPS> 3) create a new Modules/bsddb directory containing
GPS> bsddb3/src/* from the pybsddb project (the files should
GPS> probably be renamed to _bsddbmodule.c and
GPS> bsddbmoduleversion.h for consistent naming)
I don't think you need to create a new directory under Modules for
this; it's just two files. Probably Modules/_bsddbmodule.c and
Modules/_bsddbversion.h are fine.
Also, for backwards compatibility, won't Lib/bsddb/__init__.py need to
do "from _bsddb import btopen, error, hashopen, rnopen"?
GPS> 4) place the pybsddb setup.py in the Modules/bsddb directory,
GPS> modifying it as needed. OR modify the top level setup.py
GPS> to understand how to build the pybsddb module. (there is
GPS> code in pybsddb's setup.py to locate the berkeleydb install
GPS> and determine appropriate flags that should be cleaned up and
GPS> carried on)
How much of Skip's recent changes to setup.py can be retargeted for
pybsddb?
GPS> 5) modify the top level python setup.py to build the bsddb
GPS> module as appropriate. 6) "everything else" including
GPS> integrating documentation and pybsddb's large test suite.
What to do about the test suite is a good question. pybsddb's is
/much/ more extensive, and I wouldn't want to lose that, but I'm also
not sure I'd want it to run during a normal regrtest.
Here's an idea: leave test_bsddb as is and add pybsddb's as
test_all_bsddb.py. Then add a "-u all_bsddb" to regrtest's resource
flags.
GPS> How do we want future bsddb module development to proceed? I
GPS> envision it either taking place 100% under the python
GPS> project, or taking place as it is now in the pybsddb project
GPS> with patches being fed to the python project as desired? Any
GPS> preferences? [i prefer to not maintain the code in two
GPS> places myself (ie: do it all under the python project)]
I'd like to see one more official release from the pybsddb project,
since its cvs has some very useful additions (important bug fixes plus
support for BerkeleyDB 4). Then move all development over to the
Python project and let interested volunteers port critical patches
back to the pybsddb project. If you add me as a developer on
pybsddb.sf.net, I'll volunteer to help.
-Barry