Changelog
=========

Version 0.1:                                                      March 3, 2014
-------------------------------------------------------------------------------
- Initial release

Version 0.2:                                                     April 23, 2014
-------------------------------------------------------------------------------
- Corrected installation issue (replace inplace with build_lib in setup.cfg)
- Documentation updates

Version 0.2.1                                                    April 24, 2014
-------------------------------------------------------------------------------
- C API path fix

Version 0.2.2:                                                     June 3, 2014
-------------------------------------------------------------------------------
- Corrected issue with parsing "SEQUENCE_PRIMER_PAIR_OK_REGION_LIST" as a
  python sequence object. "SEQUENCE_PRIMER_PAIR_OK_REGION_LIST" should now
  be provided as a list of lists or tuple of tuples (or a combination of the
  two). -1 should be used in the case where an index is ommitted. For example::

      Primer3 boulder IO input:   100,50,300,50 ; 900,60,,
      Primer3 python input:       [[100,50,300,50], [900,60,-1,-1]]

Version 0.2.3:                                                     June 5, 2014
-------------------------------------------------------------------------------
- Corrected several potential sources of memory leaks in the C API design
  bindings.

Version 0.2.4:                                                    June 17, 2014
-------------------------------------------------------------------------------
- Addressed bug in mispriming/mishybridization library parsing in which
  memory for the global parameters struct was not being properly allocated

Version 0.2.5:                                                   August 7, 2014
-------------------------------------------------------------------------------
- Fixed incorrect tm/salt correction method lookups in calcTm function in
  both bindings and wrappers

Version 0.3.0:                                                  August 12, 2014
-------------------------------------------------------------------------------
- Fixed memory leak in global param struct allocation for design bindings
- Integrated C API patch code into libprimer3
- Refactored libprimer3 to pure C (khash lib is now used in lieu of hashmap)
- Corrected many minor compiler warnings in libprimer3
- (POTENTIAL BREAKING CHANGE) Refactored thermodynamic alignment bindings to
  always return a thermoresult namedtuple (in the previous embodiment, if no
  structure was found, the return value was `None`)

Version 0.3.1:                                                  August 13, 2014
-------------------------------------------------------------------------------
- Improved support for sequences stored in Bytes objects
- Renamed getThermoParams to loadThermoParams for clarity

Version 0.4.0:                                                November 25, 2014
-------------------------------------------------------------------------------
- Several major bug fixes in the design bindings pipeline
- Better testing framework for the design bindings
- New documentation system
- Better under-the-hood thermodynamic analysis abstraction

Version 0.4.1:                                                November 28, 2014
-------------------------------------------------------------------------------
- Better documentation regarding max. seq. lengths for thermo. calcs
- calcHairpin, calcHomodimer, calcHeterodimer, and calcEndStability now raise
  `RuntimeError`s as appropriate

Version 0.4.2:                                               September 18, 2015
-------------------------------------------------------------------------------
- Added misprimingCheck function to `primer3/thermoanalysis.pyx`
- Corrected unclear syntax in C API code

Version 0.4.3                                                  December 1, 2015
-------------------------------------------------------------------------------
- Fixed compilation errors, unicode-related build problems
- Fixed memory allocation / deallocation issues with mispriming libraries

Version 0.5.0                                                 February 25, 2016
-------------------------------------------------------------------------------
- Update libprimer3 to version 2.3.7
- Better test coverage for low level bindings

Version 0.5.1                                                      May 25, 2016
-------------------------------------------------------------------------------
- Update thal.c to incorporate traceback fix from Primer3 dev team
  (thanks Triinu)

Version 0.5.2                                                       May 1, 2017
-------------------------------------------------------------------------------
- Fixed issue where `pa->num_intervals` was not properly set via the bindings
- Fixed typo that caused incorrect output for `PRIMER_PAIR_EXPLAIN`

Version 0.5.3                                                       May 6, 2017
-------------------------------------------------------------------------------
- Fixed improper assignment of "PRIMER_PAIR_MAX_COMPL_END_TH" during design
  arg parsing

Version 0.5.4                                                     June 20, 2017
-------------------------------------------------------------------------------
- Migration of Cython extension build process to build_clib to remove Cython
  as a runtime requirement for setup.py (thanks to @tdsmith)

Version 0.5.5                                                  October 30, 2017
-------------------------------------------------------------------------------
- Remove unicode character from README.rst

Version 0.5.6                                                     July 12, 2018
-------------------------------------------------------------------------------
- Fixes to primerdesign_helpers.c C macro errors.
- Added the todict() methods in thermoanalysis.pyx for serialization help for
  tests there

Version 0.5.7                                                   August 10, 2018
-------------------------------------------------------------------------------
- Changes to upper case sequences in seqtm() in oligotm.c because calls to
ThermoAnalysis.calcTm returned 0.0 for strings with lower case letters
- disabled existing tests on Windows due to incompatibility with process and
memory calls.  TODO: create more tests for ThermoAnalysis

Version 0.6.0                                                      May 10, 2019
-------------------------------------------------------------------------------
- Added functionality for bindings to expose the ASCII representation of
  computed dimer and hairpin structures

Version 0.6.1                                                       May 9, 2020
-------------------------------------------------------------------------------
- Fixed issue related to absolute paths populated in `SOURCES.txt` of sdist
- Clean up in `setup.py` and better Windows build support
