File: ChangeLog

package info (click to toggle)
python-bsddb3 5.2.0-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 2,012 kB
  • sloc: python: 15,027; ansic: 8,521; makefile: 114; sh: 5
file content (762 lines) | stat: -rw-r--r-- 35,173 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
5.2.0:
  * Support for Berkeley DB 5.2.
  * Support for the newly available replication manager events:
    DB_EVENT_REP_SITE_ADDED, DB_EVENT_REP_SITE_REMOVED,
    DB_EVENT_REP_LOCAL_SITE_REMOVED, DB_EVENT_REP_CONNECT_BROKEN,
    DB_EVENT_REP_CONNECT_ESTD, DB_EVENT_REP_CONNECT_TRY_FAILED,
    DB_EVENT_REP_INIT_DONE.
  * New Object: "DB_SITE". Support for all its methods.
  * Parameters for "DB_SITE->set_config()": DB_BOOTSTRAP_HELPER,
    DB_GROUP_CREATOR, DB_LEGACY, DB_LOCAL_SITE, DB_REPMGR_PEER.
  * Support for some stuff in the new "Dynamic Environment Configuration":
    DB_MEM_LOCK, DB_MEM_LOCKOBJECT, DB_MEM_LOCKER, DB_MEM_LOGID,
    DB_MEM_TRANSACTION, DB_MEM_THREAD.
  * Add "bytes" to "DBEnv_memp_stat()". Original patch from Garrett Cooper.

5.1.2:
  * 5.1.1 install fails if the bsddb in the standard library is not installed,
    under Python 2.7. Reported by Arfrever Frehtes Taifersar Arahesis.
  * Since 5.0.0, we can't find 4.x libraries unless we specify a
    "--berkeley-db=/path/to/bsddb" option. Reported by Wen Heping.
  * Support "DB_ENV->get_open_flags()", "DB_ENV->set_intermediate_dir_mode()",
    "DB_ENV->get_intermediate_dir_mode()".
  * Support "DB->get_dbname()", "DB->get_open_flags()".
  * Support "db_full_version()".
  * Document "version()". This top-level function has been supported forever.
  * Bugfix when calling "DB->get_size()" on a zero length record.
    Reported by Austin Bingham.
  * 'assertEquals()' is deprecated in Python 3.2.
  * 'assert_()' is deprecated in Python 3.2.
  * Solved 'ResourceWarning' under Python 3.2.

5.1.1:
  * Recent pre-releases of Python 3.2 issue ResourceWarnings about
    fileshandles deallocated without being closed first. Fix testsuite.
  * Current "*.pyc" and "*.pyo" cleaning is not working in a PEP 3147
    world ("__pycache__"). I don't think this code is actually
    necessary anymore. Deleted.
  * Python 2.7.0 deprecates CObject incorrectly. See Python issue #9675.
  * Testsuite for "DB->get_transactional()" should not create databases
    outside the TMP directory, neither leave the files behind.
  * If something happens while creating the CObject/Capsule object,
    keep going, even without exporting the C API, instead of crashing.
  * Support for "DB_FORCESYNC", "DB_FAILCHK", "DB_SET_REG_TIMEOUT",
    "DB_TXN_BULK", "DB_HOTBACKUP_IN_PROGRESS".
  * Support "DB_EVENT_REG_ALIVE", "DB_EVENT_REG_PANIC",
    "DB_EVENT_REP_DUPMASTER", "DB_REPMGR_CONF_ELECTIONS",
    "DB_EVENT_REP_ELECTION_FAILED", "DB_EVENT_REP_MASTER_FAILURE".
  * Support for "DB_VERB_REP_ELECT", "DB_VERB_REP_LEASE", "DB_VERB_REP_MISC",
    "DB_VERB_REP_MSGS", "DB_VERB_REP_SYNC", "DB_VERB_REP_SYSTEM",
    "DB_VERB_REPMGR_CONNFAIL", "DB_VERB_REPMGR_MISC".
  * Support for "DB_STAT_LOCK_CONF", "DB_STAT_LOCK_LOCKERS",
    "DB_STAT_LOCK_OBJECTS", "DB_STAT_LOCK_PARAMS".
  * Support for "DB_REP_CONF_INMEM".
  * Support for "DB_TIMEOUT ".
  * Support for "DB_CURSOR_BULK".

5.1.0:
  * Support for Berkeley DB 5.1. 
  * Drop support for Berkeley DB 4.1. Our reference
    is Red Had Enterprise Linux 4, until February 2012.
    After that, RHEL5 has Python 2.4 and BDB 4.3.
    * According to http://superuser.com/questions/189931/python-and-berkeley-db-versions-in-redhat-enterprise-linux-3-4-5-and-upcoming-6 :
      * RHEL3: Python 2.2.3, BDB 4.1.25
      * RHEL4: Python 2.3.4, BDB 4.2.52
      * RHEL5: Python 2.4.3, BDB 4.3.29
      * RHEL6: Python 2.6.2, BDB 4.7.25 (Currently in BETA)
  * Include documentation source (*.rst) in the EGG.
  * Include processed HTML documentation in the EGG.
  * Update the external links in documentation, since Oracle changed its web
    structure.
  * Some link fixes for external documentation.
  * Links added in the documentation to Oracle Berkeley DB programmer
    reference.
  * Support for "DB->get_transactional()".
  * Support for "DB_REPMGR_ACKS_ALL_AVAILABLE".

5.0.0:
  * Support for Berkeley DB 5.0.
  * Drop support for Python 3.0.
  * Now you can use TMPDIR env variable to override default
    test directory ("/tmp").
  * Versioning of C API. If you use the code from C, please
    check the bsddb_api->api_version number against
    PYBSDDB_API_VERSION macro.
  * In C code, the bsddb_api->dbsequence_type component is always available,
    even if the Berkeley DB version used doesn't support sequences. In that
    case, the component will be NULL.
  * In C code, "DBSequenceObject_Check()" macro always exists, even if the
    Berkeley DB version used doesn't suport sequences. In that case, the test
    macro always returns "false".
  * For a long time, the API has been accesible via C using "_bsddb.api" or
    "_pybsddb.api". If you are using Python >=2.7, you acquire access to that
    API via the new Capsule protocol (see "bsddb.h").  If you use the C API and
    upgrade to Python 2.7 and up, you must update the access code (see
    "bsddb.h"). The Capsule protocol is not supported in Python 3.0, but
    pybsddb 5.0.x doesn't support Python 3.0 anymore.
  * Capsule support was buggy. The string passed in to PyCapsule_New() must
    outlive the capsule.  (Larry Hastings)
  * Solve an "Overflow" warning in the testsuite running under python 2.3.
  * When doing a complete full-matrix test, any warning will be considered
    an error.

4.8.4:
  * When doing the full matrix testing with python >=2.6, we
    activate the deprecation warnings (py3k).
  * Split dependencies in the Replication testsuite.
  * Help the Gargabe Collection freeing resources when the
    replication testsuite is completed.
  * Import warning when used as stdlib "bsddb" instead of
    pybsddb project as "bsddb3", when using python >=2.6 and
    py3k warnings are active.
  * Old regression: dbshelve objects are iterable again. The bug was
    introduced in pybsddb 4.7.2. Added relevant testcases.
  * Patches ported from Python developers:
    * Memory leaks: #7808 - http://bugs.python.org/issue7808 - Florent Xicluna
    * Floating point rounding in testcases:
      #5073 - http://bugs.python.org/issue5073 - Mark Dickinson
    * Orthograpy: #5341 - http://bugs.python.org/issue5341
    * Py3k warnings in Python >=2.6: #7092 - http://bugs.python.org/issue7092
    * Correct path for tests:
      #7269 - http://bugs.python.org/issue7269 - Florent Xicluna
    * Shebang: benjamin.peterson
    * Use new Python 2.7 assert()'s: Florent Xicluna
  * Solve a spurious stdlib warning in python >=2.6 with -3 flags.
  * Remove "DBIncompleteError", for sure this time. There were traces
    in "dbtables", in some tests and in the docs.
  * The DBKeyEmptyError exception raised by the library is not the same
    DBKeyEmptyError available in the lib. So the raised exception was
    uncatchable unless you catch DBError. And you can not identify it.
  * Solved last point, document that DBKeyEmptyError exception derives also
    from KeyError, just like DBNotFoundError exception.
  * Update documentation to describe all exceptions provided by this module.

4.8.3:
  * "bsddb.h" inclusion in PYPI is inconsistent. Solved.
  * Support for "DB_ENV->mutex_stat()", "DB_ENV->mutex_stat_print()",
    "DB->stat_print()", "DB_ENV->lock_stat_print()",
    "DB_ENV->log_stat_print()", "DB_ENV->stat_print()",
    "DB_ENV->memp_stat()" and "DB_ENV->memp_stat_print()".
  * Support for "DB_ENV->get_tmp_dir()".
  * Support for "DB_STAT_SUBSYSTEM", "DB_STAT_MEMP_HASH" flags.
  * Support for "DB_ENV->set_mp_max_openfd()", "DB_ENV->get_mp_max_openfd()",
    "DB_ENV->set_mp_max_write()", "DB_ENV->get_mp_max_write()",
    "DB_ENV->get_mp_mmapsize()".
  * New DataType: DBLogCursor. If you are using the C api, you could need
    to recompile your code because the changes in the api interface
    structure.
  * Support for "DB_ENV->log_file()", "DB_ENV->log_printf()".
  * Solve a core dump if something bad happens while trying to create a
    transaction object.
  * We protect ourselves of failures in creation of Locks and Sequences
    objects.
  * EGG file is a ZIP file again, not a directory. This requires that
    any program importing the module can write in the ".python-eggs"
    of its user.
  * Keeping a cached copy of the database stats is a bad idea if we have
    several processes working together. We drop all this code. So "len()"
    will require a database scanning always, not only when there is any
    write. If you need an accurate and fast "len()", the application must
    keep that information manually in a database register.

4.8.2:
  * Support for "DB_OVERWRITE_DUP", "DB_FOREIGN_ABORT",
    "DB_FOREIGN_CASCADE", "DB_FOREIGN_NULLIFY", "DB_PRINTABLE", "DB_INORDER"
    flags.
  * Support for "DB_FOREIGN_CONFLICT" exception.
  * Support for "DB_ENV->memp_trickle()", "DB_ENV->memp_sync()",
    "DB_ENV->get_lg_bsize()", "DB_ENV->get_lg_dir()",
    "DB_ENV->get_lg_filemode()", "DB_ENV->set_lg_filemode()",
    "DB_ENV->get_lk_detect()", "DB_ENV->get_lg_regionmax()",
    "DB_ENV->get_lk_max_lockers()", "DB_ENV->set_lk_max_locks()",
    "DB_ENV->get_lk_max_objects()", "DB_ENV->set_lk_partitions()",
    "DB_ENV->get_lk_partitions()", "DB_ENV->get_flags()",
    "DB_ENV->set_cache_max()", "DB_ENV->get_cache_max()",
    "DB_ENV->set_thread_count()", "DB_ENV->get_thread_count()",
    "DB_ENV->log_set_config()", "DB_ENV->log_get_config()"
    functions.
  * Support for "DB->get_h_ffactor()", "DB->set_h_nelem()",
    "DB->get_h_nelem()", "DB->get_lorder()", "DB->get_pagesize()",
    "DB->get_re_pad()", "DB->get_re_len()", "DB->get_re_delim()",
    "DB->get_flags()", "DB->get_bt_minkey()",
    "DB->set_priority()", "DB->get_priority()",
    "DB->set_q_extentsize()", "DB->get_q_extentsize()",
    "DB->set_re_source()", "DB->get_re_source()"
    functions.
  * Unlock the Python GIL when doing "DB_ENV->db_home_get()". This is
    slower, because the function is very fast so we add overhead, but it is
    called very infrequently and we do the change for consistency.

4.8.1:
  * Support for "DB_ENV->mutex_set_align()" and
    "DB_ENV->mutex_get_align()".
  * Support for "DB_ENV->mutex_set_increment()" and
    "DB_ENV->mutex_get_increment()".
  * Support for "DB_ENV->mutex_set_tas_spins()" and
    "DB_ENV->mutex_get_tas_spins()".
  * Support for "DB_ENV->get_encrypt_flags()".
  * Support for "DB->get_encrypt_flags()".
  * Support for "DB_ENV->get_shm_key()".
  * Support for "DB_ENV->get_cachesize()".
  * Support for "DB->get_cachesize()".
  * Support for "DB_ENV->get_data_dirs()".
  * Testsuite compatibility with recent releases of
    Python 3.0 and 3.1, where cPickle has been removed.
  * Compatibility with development versions of
    Python 2.7 and 3.2 (r76123).
  * For a long time, the API has been accesible via C
    using "_bsddb.api" or "_pybsddb.api". If you are
    using Python 3.2 or up, you acquire access to
    that API via the new Capsule protocol (see "bsddb.h").
    If you use the C API and upgrade to Python 3.2 and up,
    you must update the access code (see "bsddb.h").

4.8.0:
  * Support for Berkeley DB 4.8.
  * Compatibility with Python 3.1.
  * The "DB_XIDDATASIZE" constant has been renamed
    to "DB_GID_SIZE". Update your code!. If linked
    to BDB 4.8, only "DB_GID_SIZE" is defined.
    If linked to previous BDB versions, we keep
    "DB_XIDDATASIZE" but define "DB_GID_SIZE" too,
    to be the same value. So, new code can use
    the updated constant when used against old
    BDB releases.
  * "DB_XA_CREATE" is removed. BDB 4.8 has eliminated
    XA Resource Manager support.
  * Drop support for Berkeley DB 4.0. Our reference
    is Red Had Enterprise Linux 3, until October 2010.
    After that, RHEL4 has Python 2.3 and BDB 4.2.
  * Remove "DBIncompleteError" exception. It was only
    used in BDB 4.0.
  * Remove "DB_INCOMPLETE", "DB_CHECKPOINT",
    "DB_CURLSN". They came from BDB 4.0 too.
  * RPC is dropped in Berkeley DB 4.8. The bindings
    still keep the API if you link to previous BDB
    releases.
  * In recno/queue databases, "set_re_delim()" and "set_re_pad()"
    require a byte instead of a unicode char, under Python3.
  * Support for "DB_ENV->mutex_set_max()" and "DB_ENV->mutex_get_max()".

4.7.6:
  * Compatibility with Python 3.0.1.
  * Add support for "DB_ENV->stat()" and "DB_ENV->stat_print()".
  * Add support for "DB_ENV->rep_set_clockskew()" and
    "DB_ENV->rep_get_clockskew()". The binding support
    for base replication is now complete.
  * "DB.has_key()" used to return 0 or 1. Changed to return
    True or False instead. Check your code!.
  * As requested by several users, implement "DB.__contains__()",
    to allow constructions like "if key in DB" without
    iterating over the entire database. But, BEWARE, this
    test is not protected by transactions!. This is the same
    problem we already have with "DB.has_key()".
  * Change "DBSequence.init_value()" to "DBSequence.initial_value()",
    for consistence with Berkeley DB real method name. This could
    require minimal changes in your code. The documentation was
    right. Noted by "anan".
  * Implements "DBCursor->prev_dup()".
  * Add support for "DB_GET_BOTH_RANGE", "DB_PREV_DUP",
    and "DB_IGNORE_LEASE" flags.
  * Export exception "DBRepLeaseExpiredError".
  * Add support for "DB_PRIORITY_VERY_LOW", "DB_PRIORITY_LOW",
    "DB_PRIORITY_DEFAULT", "DB_PRIORITY_HIGH", 
    "DB_PRIORITY_VERY_HIGH", and "DB_PRIORITY_UNCHANGED" flags.
  * Add support for "DBCursor->set_priority()" and
    "DBCursor->get_priority()". The binding support for cursors
    is now complete.

4.7.5:
  * Add support for "DB_EID_INVALID" and "DB_EID_BROADCAST" flags.
  * Add support for "DB_SEQUENCE->stat_print()". The binding
    support for "DB_SEQUENCE" is now complete.
  * Add support for "DB_ENV->txn_stat_print()".
  * Add support for "DB_ENV->get_timeout()".
  * Document that "DB_ENV->txn_stat()" accepts a flag.
  * Unlock the GIL when doing "DB_ENV->set_tx_max()" and
    "DB_ENV->set_tx_timestamp()".
  * Add support for "DB_ENV->get_tx_max()".
  * Add support for "DB_ENV->get_tx_timestamp()".
  * Add support for "DB_TXN_WAIT" flag.
  * Add support for "DB_TXN->set_timeout()".
  * Add support for "DB_TXN->set_name()" and
    "DB_TXN->get_name()". Under Python 3.0, the name
    is an Unicode string. The binding support for
    "DB_TXN" is now complete.
  * Add support for "DB_REP_PERMANENT", "DB_REP_CONF_NOAUTOINIT",
    "DB_REP_CONF_DELAYCLIENT", "DB_REP_CONF_BULK",
    "DB_REP_CONF_NOWAIT", "DB_REP_LEASE_EXPIRED",
    "DB_REP_CONF_LEASE", "DB_REPMGR_CONF_2SITE_STRICT",
    "DB_REP_ANYWHERE", "DB_REP_NOBUFFER" and "DB_REP_REREQUEST"
    flags.

4.7.4:
  * Under Python 3.0, "bsddb.db.DB_VERSION_STRING",
    "bsddb.db.__version__" and "bsddb.db.cvsid" must
    return (unicode) strings instead of bytes. Solved.
  * Use the new (20081018) trove classifiers in PyPI
    to identify Python supported versions.
  * In "DB_ENV->rep_set_timeout()" and "DB_ENV->rep_get_timeout()",
    support flags "DB_REP_LEASE_TIMEOUT".
  * In "DB_ENV->rep_set_timeout()" and "DB_ENV->rep_get_timeout()",
    support flags "DB_REP_HEARTBEAT_MONITOR" and
    "DB_REP_HEARTBEAT_SEND". These flags are used in the Replication
    Manager framework, ignored if using Base Replication.
  * Implements "DB->exists()".
  * Add support for "DB_IMMUTABLE_KEY" flag.
  * Add support for "DB_REP_LOCKOUT" exception.
  * Support returning a list of strings in "associate()"
    callback.  (Kung Phu)
  * Testsuite and Python 3.0 compatibility for "associate()"
    returning a list. In particular, in Python 3.0 the list
    must contain bytes.
  * Implements "DBEnv->fileid_reset()".  (Duncan Findlay)
  * Implements "DB->compact()".  (Gregory P. Smith)
    Berkeley DB 4.6 implementation is buggy, so we only
    support this function from Berkeley DB 4.7 and newer.
    We also support related flags "DB_FREELIST_ONLY"
    and "DB_FREE_SPACE".

4.7.3: (Python 2.6 release. First release with Python 3.0 support)
  * "private" is a keyword in C++.  (Duncan Grisby)
  * setup.py should install "bsddb.h".  (Duncan Grisby)
  * "DB_remove" memory corruption & crash.  (Duncan Grisby)
  * Under Python 3.0, you can't use string keys/values, but
    bytes ones. Print the right error message.
  * "DB.has_key()" allowed transactions as a positional parameter.
    We allow, now, transactions as a keyword parameter also, as
    documented.
  * Correct "DB.associate()" parameter order in the documentation.
  * "DB.append()" recognizes "txn" both as a positional and a
    keyword parameter.
  * Small fix in "dbshelve" for compatibility with Python 3.0.
  * A lot of changes in "dbtables" for compatibility with Python 3.0.
  * Huge work making the testsuite compatible with Python 3.0.
  * In some cases the C module returned Unicode strings under
    Python 3.0. It should return "bytes", ALWAYS. Solved.
  * Remove a dict.has_key() use to silence a warning raised under 
    Python2.6 -3 parameter. Python SVN r65391, Brett Cannon.
  * Solve some memory leaks - Neal Norwitz
  * If DBEnv creation fails, library can crash.  (Victor Stinner)
  * Raising exceptions while doing a garbage collection
    will kill the interpreter.  (Victor Stinner)
  * Crash in "DB.verify()". Noted by solsTiCe d'Hiver.

4.7.2:
  * Solved a race condition in Replication Manager testcode.
  * Changing any python code, automatically regenerates the
    Python3 version. The master version is Python2.
  * Compatibility with Python 3.0.
  * Solved a crash when DB handle creation fails.
    STINNER Victor - http://bugs.python.org/issue3307
  * Improve internal error checking, as suggested by Neal Norwitz
    when reviewing commit 63207 in Python SVN.
  * Routines without parameters should be defined so, as
    suggested by Neal Norwitz when reviewing commit 63207 in Python SVN.
    The resulting code is (marginally) faster, smaller and clearer.
  * Routines with a simple object parameter are defines so, as
    suggested by Neal Norwitz when reviewing commit 63207 in Python SVN.
    The resulting code is (marginally) faster, smaller and clearer.
  * Routines taking objects as arguments can parse them better, as
    suggested by Neal Norwitz when reviewing commit 63207 in Python SVN.
    The resulting code is (marginally) faster, smaller and clearer.
  * Improve testsuite behaviour under MS Windows.
  * Use ABC (Abstract Base Classes) under Python 2.6 and 3.0.
  * Support for "relative imports".
  * Replication testcode behaves better in heavily loaded machines.

4.7.1:
  * Workaround a problem with un-initialized threads with the
    replication callback.
  * Export "DBRepUnavailError" exception.
  * Get rid of Berkeley DB 3.3 support. Rationale:
    http://mailman.jcea.es/pipermail/pybsddb/2008-March/000019.html
  * Better integration between Python test framework and bsddb3.
  * Improved Python 3.0 support in the C code.
  * Iteration over the database, using the legacy interface, now
    raises a RuntimeError if the database changes while iterating.
    http://bugs.python.org/issue2669 - gregory.p.smith
  * Create "set_private()" and "get_private()" methods for DB and DBEnv
    objects, to allow applications to link an arbitrary object to
    a DB/DBEnv. Useful for callbacks.
  * Support some more base replication calls: "DB_ENV->rep_start",
    "DB_ENV->rep_sync", "DB_ENV->rep_set_config", "DB_ENV->rep_get_config",
    "DB_ENV->rep_set_limit", "DB_ENV->rep_get_limit",
    "DB_ENV->rep_set_request", "DB_ENV->rep_get_request".
  * Support more base replication calls:  "DB_ENV->rep_elect",
    "DB_ENV->rep_set_transport" and "DB_ENV->rep_process_message". 
    Support also related flags.

4.7.0:
  * Support for Berkeley DB 4.7.
  * Support "DB_ENV->log_set_config", and related flags.
  * Complete the Berkeley DB Replication Manager support:
    "DB_ENV->repmgr_site_list" and related flags.
    "DB_ENV->repmgr_stat", "DB_ENV->repmgr_stat_print" and related flags.
  * Solved an old crash when building with debug python. (Neal Norwitz)
  * Extend the testsuite driver to check also against Python 2.6 (a3).
  * Support for RPC client service.

4.6.4:
  * Basic support for Berkeley DB Replication Manager.
  * Support for a few replication calls, for benefice of Berkeley DB
    Replication Manager: "DB_ENV->rep_set_priority",
    "DB_ENV->rep_get_priority", "DB_ENV->rep_set_nsites",
    "DB_ENV->rep_get_nsites", "DB_ENV->rep_set_timeout",
    "DB_ENV->rep_get_timeout".
  * Implemented "DB_ENV->set_event_notify" and related flags.
  * Export flags related to replication timeouts.
  * Export "DBRepHandleDeadError" exception.
  * Implemented "DB_ENV->set_verbose", "DB_ENV->get_verbose"
    and related flags.
  * Implemented "DB_ENV->get_lg_max".
  * Improved performance and coverage of following tests: lock,
    threaded ConcurrentDataStore, threaded simple locks, threaded
    transactions.
  * New exported flags: "DB_LOCK_EXPIRE" and "DB_LOCK_MAXWRITE".

4.6.3:
  * Be sure all DBEnv/DB paths in the TestSuite are generated in a
    way compatible with launching the tests in multiple
    threads/processes.
  * Move all the "assert" in the TestSuite to the version in the
    framework. This is very convenient, for example, to generate the
    final report, or better automation.
  * Implements "dbenv.log_flush()".
  * Regression: bug when creating a transaction and its
    parent is explicitly set to 'None'.
  * Regression: bug when duplicationg cursors. Solved.
  * Provide "dbenv.txn_recover()" and "txn.discard()", for fully
    support recovery of distributed transactions. Any user of this
    service should use Berkeley DB 4.5 or up.
  * If a transaction is in "prepare" or "recover" state, we MUST NOT
    abort it implicitly if the transaction goes out of scope, it is
    garbaged collected, etc. Better to leak than sorry.
  * In the previous case, we don't show any warning either.
  * Export "DB_XIDDATASIZE", for GID of distributed transactions.
  * If "db_seq_t" and PY_LONG_LONG are not compatible, compiler
    should show a warning while compiling, and the generated code
    would be incorrect but safe to use. No crash. Added sanity
    check in the testunit to verify this is not the case, and
    the datatypes are 64 bit width in fact.
  * Solve a compilation warning when including "bsddb.h"
    in other projects. (George Feinberg)

4.6.2:
  * Support for MVCC (MultiVersion Concurrency Control).
  * Support for DB_DSYNC_LOG, DB_DSYNC_DB and DB_OVERWRITE flags.
  * Move old documentation to ReST format. This is important for several
    reasons, notably to be able to integrate the documentation "as is"
    in python official docs (from Python 2.6).
  * Don't include Berkeley DB documentation. Link to the online version.
  * DBSequence objects documented.
  * DBSequence.get_key() didn't check for parameters. Fixed.
  * If a DB is closed, its children DBSequences will be
    closed also.
  * To be consistent with other close methods, you can call
    "DBSequence.close()" several times without error.
  * If a Sequence is opened inside a transaction, it will be
    automatically closed if the transaction is aborted. If the
    transaction is committed and it is actually a subtransaction, the
    sequence will be inherited by the parent transaction.
  * Be sure "db_seq_t" and "long long" are compatible. **Disabled because
    MS Windows issues to be investigated.**
  * Documented the already available DBEnv methods: "dbremove",
    "dbrename", "set_encrypt", "set_timeout", "set_shm_key",
    "lock_id_free", "set_tx_timestamp", "lsn_reset" and "log_stat".
  * Completed and documented "DBEnv.txn_stat()".
  * Completed and documented "DBEnv.lock_stat()".
  * Documented the already available DB methods: "set_encrypt", "pget".
  * Completed documentation of DB methods: "associate", "open".
  * Completed and documented "DB.stat()".
  * Documented the already available DBCursor methods: "pget" (several
    flavours).
  * Completed documentation of DBCursor methods: "consume", "join_item".

4.6.1: (first release from Jesus Cea Avion)
  * 'egg' (setuptools) support.
  * Environments, database handles and cursors are
    maintained in a logical tree. Closing any element
    of the tree, implicitly closes its children.
  * Transactions are managed in a logical tree. When
    aborting transactions, enclosed db handles, cursors
    and transactions, are closed. If transaction commits,
    the enclosed db handles are "inherited" by the parent
    transaction/environment.
  * Solved a bug when a DBEnv goes out of scope
    without closing first.
  * Add transactions to the management of closing
    of nested objects. (not completed yet!)
  * Fix memory leaks.
  * Previous versions were inconsistent when key or
    value were "" (the null string), according to
    opening the database in thread safe mode or not.
    In one case the lib gives "" and in the other
    it gives None.

4.6.0:

  * Adds support for compiling and linking with BerkeleyDB 4.6.21.
  * Fixes a double free bug with DBCursor.get and friends.  Based on
    submitted pybsddb patch #1708868. (jjjhhhll)
  * Adds a basic C API to the module so that other extensions or
    third party modules can access types directly. Based on pybsddb
    patch #1551895. (Duncan Grisby)
  * bsddb.dbshelve now uses the most recent cPickle protocol, based on
    pybsddb patch #1551443. (w_barnes)
  * Fix the bsddb.dbshelve.DBShelf append method to work for RECNO dbs.
  * Fix Bug #477182 - Load the database flags at database open time
    so that opening a database previously created with the DB_DUP or
    DB_DUPSORT flag set will keep the proper behavior on subsequent opens.
    Specifically dictionary assignment to a DB object.  It will now replace
    all values for a given key when the database allows duplicate values.
    DB users should use DB.put(k, v) when they want to store duplicates; not
    DB[k] = v.  This only works with BerkeleyDB >= 4.2.
  * Add the DBEnv.lock_id_free method.
  * Removes any remnants of support for Python older than 2.1.
  * Removes any remnants of support for BerkeleyDB 3.2.

4.5.0:

  * Adds supports for compiling and linking with BerkeleyDB 4.5
  * Python Bug #1599782: Fix segfault on bsddb.db.DB().type() due to
    releasing the GIL when it shouldn't.  (nnorowitz)
  * Fixes a bug with bsddb.DB.stat where the flags and txn keyword
    arguments are transposed.
  * change test cases to use tempfile.gettempdir()

4.4.5:

  * pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
    methods now allow their database parameter to be None as the
    sleepycat API allows.

4.4.4:

  * fix DBCursor.pget() bug with keyword argument names when no data= is
    supplied [SF pybsddb bug #1477863]
  * add support for DBSequence objects [patch #1466734]
  * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
  * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
  * add DB_ARCH_REMOVE flag and fix DBEnv.log_archive() to accept it without
    potentially following an uninitialized pointer.

4.4.3:

  * fix DBEnv.set_tx_timestamp to not crash on Win64 platforms (thomas.wouters)
  * tons of memory leak fixes all over the code (thomas.wouters)
  * fixes ability to unpickle DBError (and children) exceptions

4.4.2:

  * Wrap the DBEnv.set_tx_timeout method
  * fix problem when DBEnv deleted before Txn sf bug #1413192 (Neal Norwitz)

4.4.1:

  * sf.net patch 1407992 - fixes associate tests on BerkeleyDB 3.3 thru 4.1
    (contributed by Neal Norwitz)

4.4.0:

  * Added support for compiling and linking with BerkeleyDB 4.4.20.

4.3.3:

 * NOTICE: set_bt_compare() callback function arguments CHANGED to only
   require two arguments (left, right) rather than (db, left, right).
 * DB.associate() would crash when a DBError occurred.  fixed.
   [pybsddb SF bug id 1215432].

4.3.2:

 * the has_key() method was not raising a DBError when a database error
   had occurred. [SF patch id 1212590]
 * added a wrapper for the DBEnv.set_lg_regionmax method [SF patch id 1212590]
 * DBKeyEmptyError now derives from KeyError just like DBNotFoundError.
 * internally everywhere DB_NOTFOUND was checked for has been updated
   to also check for DB_KEYEMPTY.  This fixes the semantics of a couple
   operations on recno and queue databases to be more intuitive and results
   in less unexpected DBKeyEmptyError exceptions being raised.

4.3.1:

 * Added support for DB.set_bt_compare() method to use a user
   supplied python comparison function taking (db, left, right)
   args as the database's B-Tree comparison function.

4.3.0:

 * Added support for building properly against BerkeleyDB 4.3.21.
 * fixed bug introduced in 4.2.8 that prevent the module from
   compiling against BerkeleyDB 3.2 (which doesn't support pget).
 * setup.py was cleaned up a bit to search for and find the latest
   version of the correct combo of db.h and libdb.

4.2.9:

 * DB keys() values() and items() methods were ignoring their optional
   txn parameter.  This would lead to deadlocks in applications
   needing those to be transaction protected.

4.2.8:

 * Adds support for DB and DBCursor pget methods.  Based on a patch
   submitted to the mailing list by Ian Ward <ian@arevco.ca>
 * Added weakref support to all bsddb.db objects.
 * Make DBTxn objects automatically call abort() in their destructor if 
   not yet finalized and raise a RuntimeWarning to that effect.

4.2.7:

 * fix an error with the legacy interface relying on the DB_TRUNCATE
   flag that changed behaviour to not work in a locking environment
   with BerkeleyDB 4.2.52.  [SF bug id 897820]
 * fixed memory leaks in DB.get, DBC.set_range and potentially several
   other methods that would occur primarily when using queue | recno
   format databases with integer keys. [SF patch id 967763]

4.2.6:

 * the DB.has_key method was not honoring its txn parameter to perform
   its lookup within the specified (optional) transaction.  fixed.
   [SF bug id 914019]

4.2.5:

 * Fixed a bug in the compatibility interface set_location() method
   where it would not properly search to the next nearest key when
   used on BTree databases.  [SF bug id 788421]
 * Fixed a bug in the compatibility interface set_location() method
   where it could crash when looking up keys in a hash or recno
   format database due to an incorrect free().

4.2.4:

 * changed DB and DBEnv set_get_returns_none() default from 1 to 2.
 * cleaned up compatibility iterator interface.

4.2.3:

 * the legacy compatibility dict-like interface now support iterators
   and generators and allows multithreaded access to the database.
 * fixed a tuple memory leak when raising "object has been closed"
   exceptions for DB, DBEnv and DBCursor objects.  I doubt much
   previous code triggered this.
 * use of a closed DBCursor now raises a DBCursorClosedError exception
   subclass of DBError rather than a boring old DBError.

4.2.2:

 * added DBCursor.get_current_size() method to return the length in bytes
   of the value pointed to by the cursor without reading the actual data.

4.2.1:

 * Standalone pybsddb builds now use a _pybsddb dynamic/shared library
   rather than _bsddb.  This allows for pybsddb to be built, installed
   and used on python >= 2.3 which includes an older version of pybsddb
   as its bsddb library.

4.2.0:

 * Can now compile and link with BerkeleyDB 4.2.x (when its released).
 * the legacy bsddb module supports the iterator interface on python 2.3.

4.1.x:

 * Support the DBEnv.set_shm_key() method.
 * Fixed setup.py include/{db4,db3} header file searching (SF bug #789740).

4.1.6:

 * Extended DB & DBEnv set_get_returns_none functionality to take a
   "level" instead of a boolean flag.  The boolean 0 and 1 values still
   have the same effect.  A value of 2 extends the "return None instead
   of raising an exception" behaviour to the DBCursor set methods.
   This will become the default behaviour in pybsddb 4.2.
 * Updated documentation for set_get_returns_none.  Regenerated the
   stale html docs from the text documentation.
 * Fixed a typo in DBCursor.join_item method that made it crash instead
   of returning a value.  Obviously nobody uses it.  Wrote a test case
   for join and join_item.
 * Added the dbobj wrapper for DBEnv set_timeout method.
 * Updated README.txt 

4.1.5:

 * Added the DBEnv.set_timeout method.

4.1.4:
 
 * rebuilt the windows 4.1.3 package, the original package was corrupt due
   to bad ram on my build host.

4.1.3 - 2003-02-02:

 * code cleanup to use python 2.x features in .py files
 * the standalone pybsddb distribution will install a module
   called bsddb3 while the module included with python >= 2.3
   will be known as bsddb.

4.1.2 - 2003-01-17:

 * Shared all .py and .c source with the Python project.
 * Fixed DBTxn objects to raise an exception if they are used after
   the underlying DB_TXN handle becomes invalid. (rather than
   potentially causing a segfault)
 * Fixed module to work when compiled against a python without thread
   support.
 * Do not attempt to double-close DB cursor's whos underlying DB
   has already been closed (fixes a segfault).
 * Close DB objects when DB.open fails to prevent an exception about
   databases still being open when calling DBEnv.close.
	
4.1.1 - 2002-12-20:

 * Fixed a memory leak when raising exceptions from the database
   library.  Debugged and fixed by Josh Hoyt <josh@janrain.com>.  Thanks!
   (sourceforge patch 656517)

4.1.0 - 2002-12-13:

 * Updated our version number to track the latest BerkeleyDB interface
   version that we support.
 * Simplified the build and test process.  Now you should just be able
   to say "python setup.py build" and "python setup.py install".  Also
   added a nice test.py harness.  Do "python test.py -h" for details.
 * The windows binary is build against BerkeleyDB 4.1.24 with current
   eight patches issued by Sleepycat applied.
 * REMINDER: BerkeleyDB 4.1 requires code changes if you use database
   transactions.  See the upgrade docs on http://www.sleepycat.com/.

3.4.3 - 2002-10-18:

 * added support for BerkeleyDB 4.1:  DB.open and DB.associate
   will now accept a txn keyword argument when using BerkeleyDB 4.1.
   DBEnv.dbremove, DBEnv.dbrename, DBEnv.set_encrypt and DB.set_encrypt
   methods have been exposed for 4.1.

3.4.2 - 2002-08-14:

 * dbtables.py: serious bug fix.  The Select, Modify and Delete methods could
   all act upon rows that did not match all of the conditions.  (bug # 590449)
   A test case was added.
 * dbutils.py: updated DeadlockWrap
 * test_threads.py: fixed to use dbutils.DeadlockWrap to catch and avoid
   DBLockDeadlockError exceptions during simple threading tests.

3.4.1:

 * fixed typo cut and paste bugs in test_dbsimple.py and test_threads.py
 * fixed bug with cursors where calling DBCursor.close() would cause
   the object's destructor __del__() method to raise an exception when
   it was called by the gc.
 * fixed a bug in associated callbacks that could cause a null pointer
   dereference when python threading had not yet been initialized.

3.4.0:
 
 * many bugfixes, its been a long while since a new package was created.
 * ChangeLog started.