Other Products History

Grading Components Top

19 July 2016

chesscalc-0.32.8 results-0.34.4 basesup-0.20 gridsup-0.19.3 rmappsup-0.38.3


The rules for converting between lists of record numbers and bitmapped record numbers are changed. The single number boundary is replaced by a range in which lists and bitmaps are not converted on deletion or insertion of records, but on leaving the range conversion is done if necessary. Databases updated by this version of basesup cannot be accessed by earlier versions.

gridsup rmappsup chesscalc results:

No changes except new versions of dependencies.


15 July 2016

chesscalc-0.32.7 results-0.34.3 basesup-0.19.2 gridsup-0.19.2 rmappsup-0.38.2


Scrolling a sorted list of records by dragging the scrollbar slider above or below the scrollbar no longer crashes the program rather than display records at start or end of list. The correct record is at top of display after dragging the slider to the top half of the scrollbar rather than the last record refernced by the same index value. The correct record is at top of display after dragging the slider to the bottom half of the scrollbar rather than the preceding record.

gridsup rmappsup chesscalc results:

No changes except new versions of dependencies.


12 June 2016



Data extracted from an email was sometimes flagged as different from data extracted and stored in an earlier run, preventing data extracted from new emails from being stored.


30 May 2016

chesscalc-0.32.6 results-0.34.1 basesup-0.19.1 gridsup-0.19.1 rmappsup-0.38.1


Scrolling a sorted list of records by dragging the scrollbar slider when using the bitmapped record version of the bsddb3 interface no longer crashes the program rather than display records for the new position. The sqlite3 apsw and DPT interfaces were not affected.

gridsup rmappsup chesscalc results:

No changes except new versions of dependencies.


20 May 2016

chesscalc-0.32.5 results-0.34 basesup-0.19 gridsup-0.19 rmappsup-0.38


Transactions enabled in the bsddb3 interface. All interfaces do transactions now.

Fix a problem positioning slider in scrollbar when displaying sorted lists of records. The apsw, bsddb3, and sqlite3, interfaces were affected.


Provide popup menus for actions available on grids which are not related to a specific existing displayed record.


Allow related lists to be scrolled at the same time using a single typing box.


No changes except new versions of dependencies.


Display descriptions of discrepancies between multiple reports of the same match. A hint about what to look for can help a lot.

The import processing for ECF reference data is changed to fit the current, since about 2010, data provided. Increase in volume and frequency, both desirable, had made the imports take too long using the obsolete rules.


17 April 2016

chesscalc-0.32.4 results-0.33.7 basesup-0.18.1 gridsup-0.18.2 rmappsup-0.37.3


Add a simple query language to support selection of records included in lists.

Fix a couple of problems exposed by first-use in the query language.


Add keyboard bindings corresponding to button clicks on the dialogues where these were missing.


No changes except new versions of dependencies.


No changes except new versions of dependencies.


No changes except new versions of dependencies.


5 April 2016

chesscalc-0.32.3 results-0.33.6 basesup-0.18 gridsup-0.18.1 rmappsup-0.37.2


Fix a major problem in the bitmapped record number implementation using sqlite3.

Adding third and subsequent records to an index when inserting records one-by-one did not work. Deleting records one-by-one did not work.

The import functions were not affected: many records inserted at once.


Adjustments to fit changes in basesup.


No changes except new versions of dependencies.


Correction to rules which determine whether an iteration will converge.


Adjust content of files of results sent to ECF for grading so a player's results in a league appear in one block on the grading website pages rather than several.


8 February 2016


Upgrade to the latest version of mingw32 port on FreeBSD introduced a new compilation error because '#include errno.h' directive(s) are absent. Patches amended to compensate. Early November 2014 mingw32 port is not affected.


4 December 2015


A fault which prevented a player's grading code being updated from submission file feedback from the ECF is fixed. The workaround was probably to enter the grading codes manually and then wait for the next monthly ECF reference data update to confirm the manual entry: no monthly update occurred between noticing the fault and fixing it. New ECF members were unlikely to be affected because their grading codes are available very soon after becoming members and should not need to be reported in feedback.

The fault was introduced at results-0.32 when changing the way Python objects are stored.


28 November 2015


Do not rely on object identities generated by Python being in receipt order when sorting multiple reports of a match. This leads to incorrect 'match reports inconsistent' errors when results of adjourned games are reported by repeating the whole match report.

Usually repeating the validation step eventually hit a case where the two orders are the same and the error report did not occur.


15 October 2015

chesscalc-0.32.1 results-0.33.2 basesup-0.17.1 gridsup-0.18 rmappsup-0.37.1

ChessPerfCalc and ChessResults refer to new versions of dependencies.


Indexes created by the bitmapped record number version of the bsddb3 database engine interface when inserting records in deferred update mode were likely to be incorrect. The two single character typing errors which caused the problem have been corrected.

The other database engine interfaces, including the default sqlite3, are not affected.

ChessPerfCalc and ChessResults are not affected because these do not use deferred update mode.

Some code made redundant at basesup-0.16 is removed.


Internal adjustments which do not affect functions provided.

One change which would affect functions provided, and should be in gridsup, was temporarily put in ChessTab, where it is needed, to avoid risk to ChessResults by changing it's functions to fit. It is planned to do things properly in August 2016.


No changes except new versions of dependencies.


24 July 2015


Fix a bug, introduced at results-0.32, which made assigning many players to a club (ECF reference data) awkward.

Re-organize the modules which import ECF reference data because most of the code is the same for all database engines.


15 July 2015

chesscalc-0.32 results-0.33 basesup-0.17 gridsup-0.17 rmappsup-0.37

The apsw database engine, an alternative to Python's sqlite3, is added.


15 July 2015

chesscalc-0.31.2 results-0.32.3 basesup-0.16.2 gridsup-0.16.2 rmappsup-0.36.2

The sqlite3 part of the basesup component is changed to drop indexes before, and create them after, adding multiple records (rows) in one operation; provided the number of records is not small.

The other products' setup scripts are changed to refer to the new versions of dependencies.

The change does not affect chesscalc, results, gridsup, or rmappsup.

The first few rows (records) are always added before dropping indexes. Few means between 65537 and 131072 rows depending on the value 'high rowid modulus 65536' just before starting to add rows. Indexes are created after the remaining rows are added. If a table is empty just before starting to add rows, indexes are dropped before any rows are added. The drop and create actions make the whole operation span 4 transactions.


30 June 2015

chesscalc-0.31.1 results-0.32.2 basesup-0.16.1 gridsup-0.16.1 rmappsup-0.36.1

A fault in the sqlite3 part of the basesup component is fixed.

The other products' setup scripts are changed to refer to the new versions of dependencies.

The fault did not affect chesscalc, results, gridsup, or rmappsup.


18 June 2015


Most of the import functions did not work on OpenBSD 5.7 despite working on default Microsoft Windows and FreeBSD Ports Pythons.

The pydoc-g-exhausts-the-stack-td223979.html document at openbsd-archive.7691,n7.nabble.com described the problem encountered in Results. It seems the --enabled-threads option leads to the problem because adjusting Results to avoid doing User Interface actions (tkinter calls) in the wrong thread stopped the problem occurring, and the functions which worked did not do the tkinter calls.


14 June 2015

chesscalc-0.31 results-0.32 basesup-0.16 gridsup-0.16 rmappsup-0.36

Python's repr() and ast.literal_eval() replace both Python's pickle.dumps() and pickle.loads() and some functions in the Chesscalc and Results products when serializing a Python object for storage on a database or reconstructing it. It is no longer possible to opt out of using the serialization.

Databases created using earlier versions of these products cannot be accessed. In practice this means Results databases must be converted to the new format by using the 'Export Events' action in the old version and the 'Import Events' action in this version.

Threading (DPT or sqlite3) and record locking (DPT) problems in 'Import Events', when using the DPT or sqlite3 database engines, have been fixed. These prevent events being imported into sqlite3 databases at all, or DPT databases which already contain events. Databases using bsddb3 are not affected.


20 May 2015

chesscalc-0.30.3 results-0.31.1 basesup-0.15.1 gridsup-0.15.1 rmappsup-0.35.3

A problem in the basesup bitmapped record interface to Python's sqlite3 module is fixed. If a record is being deleted, any index value refering to this record which refers to exactly two records loses the reference to the other record instead. The problem seems to have been there always.

The other products' setup scripts are changed to refer to the new versions of dependencies.


18 May 2015

chesscalc-0.30.2 results-0.31 basesup-0.15 gridsup-0.15 rmappsup-0.35.2

Improvements to the User Interface for changing event configuration files in Results.

Basesup loses the non-bitmapped record interface to Python's sqlite3 module.

The other products' setup scripts are changed to refer to the new versions of dependencies.


13 February 2015

chesscalc-0.30.1 results-0.30.2 basesup-0.14.1 dpt3.0-dptdb-0.6.1 gridsup-0.14.1 rmappsup-0.35.1

Contact details moved from README files to new CONTACT files.

No changes to package's functions.

The README file will be used as the description of a package if put on PyPI. The author's email is given separately when uploading the package, but not displayed, so it is sensible to remove that email address from the README file.


12 February 2015

chesscalc-0.30 results-0.30.1 basesup-0.14 gridsup-0.14 rmappsup-0.35

Use setuptools rather than distutils as the package installer.

results-0.30.1 fixes some problems in results-0.30 but includes the switch to setuptools.

The Microsoft Windows binary installers for ChessPerfCalc and ChessResults, along with their versions of source distributions, have been removed. The setuptools install will download and install all the components needed when results-0.30.1 or chesscalc-0.30 are installed.

Installing results-0.30.1 will install chesscalc-0.30 because it is a dependency.


8 February 2015


No changes in DPT API functions. DPT API version 3 release 0 is still the one wrapped by dptdb.

Python moved distutils to legacy status and recommended using setuptools as the package distribution method at Python 3.3.

The DPT website, www.dptoolkit.com, expired on 15 January 2015 so the existing dptdb binary packages are obsolete because their home website is not available as the source code location.

The DPT API source and documentation zip files are on this website and will be downloaded as the first step of the installation process for dptdb-0.6. There are no binary packages for dptdb now, just the source package.


29 September 2014


Significant changes to the User Interface related to extracting results from emails.

Can now right-click on the validation report to scroll the source window to the relevant email extract.

Can do simple filtering of emails within the program as an alternative to using just the email client's filters.

Results are expected in a 'one game per line' style. All code related to reporting styles specific to particular leagues has been removed, and replaced by regular expressions defined for a particular case and placed in a configuration file. This is likely a very strong inducement to use the 'one game per line' style mentioned.


29 September 2014


Add function to say if a tab switch will succeed. Needed in changes to ChessResults.


29 August 2014


Minor correction to display of round numbers. The problem caused the program to fail.


22 June 2014


Add ability to compare performances between seasons to the results_lite variant, but not the results_ecf or results_ogd variants, of results. See the Predictions button on the Events tab.


22 June 2014


Add support for ChessResults to compare performances between seasons.


22 June 2014


Additional date format supported for ChessResults.


21 June 2014

Other Products History started following first changes to components not used by ChessTab since conversion to Python 3. Products are iteration-0.1, chesscalc-0.27, results-0.27, basesup-0.13, dptdb.dpt3-0.5, gridsup-0.13, and rmappsup-0.32 when page started.