Wednesday, November 18, 2009

CDK 1.2.4: the changes

Here is the changelog of CDK 1.2.4 which I am about to upload to SourceForge:
  • Fixed param name 743bad3
  • Updated the makefp3d target to work with the current build system bbb78ee
  • Set up a branch for the 1.2.4 release 4801d79
  • Fixes bug 2898399. Updates to the SMARTS parser to handle proper matching for explicit hydrogens (including H, 1H, 2H and 3H). SMARTSQueryVisitor updated to take into account different isotopes of H. Also updated unit tests to take into account proper H matching. Added a unit test to further check H matching. b67d76a
  • Added tests to match hydrogens 45a7f54
  • Reworked the tests for bug 2898032. Updated Javadocs for smiles generator 7f68b07
  • Added unit test to confirm and check for bug 2898032 924b563
  • Updated UIT to handle single atom queries and added a unit test for bug 2888845. Also updated Javadocs to specifically note behavior of single atom queries dfb2805
  • Added generation of java source jars e33fba2
  • Fixed matchers to allow XML without new lines (closes #2832835) f9a0552
  • Added unit tests for detection of PubChem XML files. 571f434
  • Overwrite unit tests, because there are no change events passed around at all for the NoNotification interface implementations 36f295b
  • Added missing unit tests for IChemModel event propagation for the ICrystal field 2993e0c
  • Fixed propagation of change events to IChemModel when modifications are made in child IChemObjects 0c8a88f
  • Fixed unit tests: the IChemModel.setFoo(null) should actually give a change event on the listener of the IChemModel, and not after unregistering of the Foo object. b833176
  • Added unit test to the function of the new IO setting to force 2D coordinate output. 4e2b2bf
  • Added writer IO option to force writing of 2D coordinates if 3D coordinates are present too, which now are preferably outputted. 0e6aa2c
  • Added unit test to verify that if 2D and 3D coordinates are available, the 3D coordinates are outputted. 56852f8
  • Fixed Taglets: only return HTML if the Tag is really given; the toString() method is given for all cases, not just when the tag is found 1107fb2
  • Fixeda bug which was causing various parts of the DescriptorEngine to fail - it was trying to instantiate a non-descriptor class which happens to reside in the descriptor package directory. This fix is a bit kludgy - ideally only descriptors should be in that directory 0242d9a
  • Fixes ClassCastException when not IMolecule 6f3e848
  • Upgraded to PMD 2.4.5 with many bug fixes, giving more accurate error reports f29a66b
  • Added missing dependency on cdk-diff, being used in one of the unit tests 0e287dd
  • Fixed methods names to match those in the test class 789a314
  • Fixed test method name to match the expected patters, fixing a coverage test fail ac13619
  • Removed duplicate code: MolecularFormulaTest now extends AbstractMolecularFormulaTest b8651c7
  • Fixed test method annotation to point to the right method bb7d341
  • Added missing @TestMethod annotation f6f759b
  • Added modules that were missing from the PMD testing 073e5ec
  • Added modules that were missing from the doccheck testing 10dc19c
  • Patch for bug 2843445. Aims to fix generation of NaN coordinates by SDG d1397fe
  • Fix the unit test to not give a 'input must support mark' exception on some platforms, by wrapping the InputStream in a BufferedInputStream. 6f6f41e
  • Added missing dependencies 8759481
  • Added ioformats to modules to test 56289e2
  • Use StringBuilder to aggregate the field data, which gives an huge performance boost for SD file where multiline field data is found. df35f02
  • Use StringBuilder to aggregate the field data, which gives an huge performance boost for SD file where very much field data, like the ChEBI_complete.sdf eac8266
  • Factored out steps in reading the SD file data block 678e7ca
  • Bumped version, to make it clear this is not the 1.2.3 release 8c8166a
  • Fixed registering on the cdk.threadnonsage tag (closes #2796362) d451576
  • Removed obsolete pattern from old svnrev tag c8f5a72
  • Fixed JavaDoc to remove traces of the old svnrev Tag 1a70488
  • Synchronized exception message with implementation (fixes #2844333) c70b79c
  • The Pauling Electronegativity is copied in configure as well. I can't see why not copy everything we have. 3fd2b17
  • Added bug annotation 38d0235
  • test case for bug #2846213 f84c53b
  • Fixed perception of N.planar3 where N.sp2 was detected, by now taking into account the given hydrogen count. 1714de2
  • Fixed perception of benzene with all single bond, but hydrogen count 1 and bonds flagged aromatic. In this case, the type is C.sp2 not C.sp3. 05e0be3
  • Added assertions to unit test for values being not null 863b0a5
  • Added two unit tests for the same problem: carbon atom types are not correctly perceived if bond order info is SINGLE only, and hydrogen count and aromaticity flag is set. f19a451
  • Moved class into a org.openscience.cdk package, which seems to work now. I'm puzzled why it did not before. Solved several unit test fails. b055c6b
  • Merge branch 'cdk-1.2.x' of ssh:// into cdk-1.2.x f77db9c
  • Unsealed the XOM jar to allow having the CustomSerializer 3b82340
  • Fixed Javadocs error e0304bf
  • Fixed a wrong javadoc tag. Also removed svn tag in the SMARTS parser JJT file, replaced with git tag c888773
  • Added support for 'public enum's 4bf822d
  • corrected bug in bondtools.isStereo(IAtomContainer container, IAtom stereoAtom). A comparision of atom symbols in a nested loop was using the counter of the outer loop twice. Note it worked before, because there is a sort of fallback to Morgan numbers. fallback to morgan (fixes #2830287) 025fb47
  • added a new test for bondtools 13f72bd
  • Fixed inconsistency between accepts() and write: also support writing of IAtomContainerSet and IAtomContainer as accepts() indicates (fixes #2827745) 6380578
  • General test for testing consistency between write() and accepts(), testing that all accepted IChemObject's can also be written f0678eb
  • Added unit test for bug #2826961: inconsistent atom typing for two SMILES. Unit test does not show a fail, ruling out a CDK bug 42e45ef
  • Remove erroneous throws statement f8cfea8
  • Bug found calculating the exact mass given a molecular formula when it is negative charged. 3d1de45
  • Fixed reading of the cdk/dict/data/elements.owl database which is now in OWL 73225a0
  • Fixed issue 2458210: use assertNotNull(foo) etc instead of assertTrue(foo != null). 182afe6
  • Added minimum equivalents for BondManipulator.getMaximumBondOrder() methods 6e12696
  • Fixes asserts: after removal *no* change should be recorded 3b9fa30
  • Added IO option to disable generator of XML declaration statements in the output CML. 74451b8
  • Added generics, and consistified code by always returning a List of the same '?'. (And some 80 chars fixes in the JavaDocs.) d6337cd
  • Added unit tests to test that when a [Molecule|Reaction|Ring]Set has been removed from a ChemModel, the ChemModel should unregister as listener. 63e6c01
  • Added unit tests for event propagation from [Molecule|Reaction|Ring]Sets to ChemModel. e011035
  • More testing of flags. abb5384
  • Fix for junior job id: [ 1837692 ] Test methods should throw only one Exception. 8c38536
  • Fixed missing imports and wrapped to 80 chars fd2d2df
  • Better excpetion handling in builder3d: bc5837d
  • Fixed serialization of IAtom's with null formal charge to not cause NullPointerExceptions acc8012
  • Added unit test for serialization of null formal charges into the MDL molfile format (which currently fails) df57aea
  • Updated Javadocs for SMARTS query tool to indicate unsupported features e1da4c0
  • Cleaned up source file to remove spurious line endings 3d7adae

This overview was created with this Linux one-liner:
git log --oneline cdk-1.2.3.. | sed 's/\([a-f0-9]*\)\s\(.*\).*/<li>\2 <a href="http:\/\/\/git\/gitweb.cgi?p=cdk\/cdk;a=commit;h=\1">\1<\/a><\/li>/'


  1. Any chance of a summary of the summary? Like "Why you should upgrade in 6 bullet points"? :-)

  2. I often do that, but have not had time to summarize yet :)

    There are no API changes, nor any big new fancy features. Instead, roughly: 1. bug fixes, 2. some speed improvements.