1.2.10
- Prodigal's error output is now captured and included in the error message when Prodigal fails (e.g., 'exit code 18: Error: no input sequences to analyze.'); results are unchanged

1.2.9
- performance improvements; results are unchanged
- marker genes are identified more efficiently: the marker file is parsed once rather than once per bin, the HMM file for each unique marker set is created once and is no longer indexed, larger bins are processed first, and HMMER runs in serial mode when bins are searched in parallel
- marker sets in lineage.ms and the reference data are parsed without eval(), which is ~13x faster
- the Pfam clan file and other reference files are read once rather than once per bin, and lineage_set no longer searches the reference tree for each bin
- HMMER results are parsed in parallel (qa now uses -t)
- --pplacer_threads now defaults to the number of threads (-t), to a maximum of 64; pplacer's memory usage increases only slightly with additional threads
- README badges are cached for a shorter time

1.2.8
- fix to the Pfam same-clan filter, which treated Pfams without a clan as members of the same clan; this can slightly change completeness and contamination estimates
- fix to reading FASTA files without a trailing newline, which dropped the last base
- fix to end coordinates of merged adjacent marker gene hits
- hits to the same marker on a run of consecutive genes (e.g., a gene split into several fragments) are now combined into a single hit, rather than being paired in an order that depended on hits to other markers; this can slightly change contamination and strain heterogeneity estimates
- failures of external programs (Prodigal, HMMER, pplacer) and of worker processes now cause CheckM to exit with an error instead of exiting with status 0 or silently dropping bins
- bins without any genes are now skipped with a warning, and FASTA records without sequence data are ignored
- output is now deterministic (order of HMM models, bins and markers in output files)
- fix to infinite loop when using --reduced_tree for bins placed at one node of the reduced tree
- fix to qa -o 4 --individual_markers corrupting stored results, qa -o 9 omitting markers, and parsing of custom HMM files with models lacking accessions or thresholds
- fix to --ali_top_hits aligning the worst rather than best hit
- fix to gc_bias_plot (pysam compatibility), nx_plot step sizes, histogram bins and percentages, and len_hist bar alignment
- fix to ssu_finder strand handling, contig matching, sequence coordinates and orientation of reverse-strand hits
- fix to handling of gzipped FASTA files in ssu_finder, unique and modify
- fix to coverage with BAM files lacking NM tags, BAM files with the same name, and BAM files without mapped reads
- fix to checkm --help, invalid --tmpdir values, bin input tables with blank lines, and checkm data setRoot errors
- paths containing spaces are now supported
- removed unused code (including util/img.py and uniqueMarkers.py) and fixed spelling in comments and messages

1.2.7
- fix to crash in BinStatistics.sequenceStats when no called genes are available

1.2.6
- fix to report hmmalign failures instead of ignoring them, which caused a NameError on 'mask' (issue #387)
- fix to 'OSError: AF_UNIX path too long' when using --tmpdir (issue #402)
- fix to coverage command dropping bins that contain sequences with the same ID as sequences in other bins (issue #386)

1.2.5
- fix to regular expression syntax warnings in prettytable.py
- fix to use of setuptools in checkmData.py thanks to meereeum
- fix to pysam import in coverage.py thanks to baptwr

1.2.4
- fixed issue with prodigal not trying the -meta model for failed genomes (fix provided by noelle-haddad) 
- added Dockerfile provided by Louis-MG

1.2.3
- changes to support numpy 2.0
- better handling of non-zero return codes from external programs

1.2.2
- support gzipped protein files as input (thanks to alienzj for the PR)

1.2.1
- renamed private classes (thanks to misialq for the PR)

1.2.0
- modified how bin IDs are identified to improve output tables

1.1.11
- fixed error with inverse_transformed being deprecated in newer versions of Matplotlib

1.1.10
- fixed bug with missing bCalledGenes flag that was impacting a number of commands

1.1.9
- fixed support for gzip input FASTA files

1.1.8
- updated setup.py to include long description and fixed PyPi URL

1.1.7
- added Jie Zhu's (alienzj) PR to allow input files to be specified via a file
- added Jeremy Jacobson's (jjacobson95) PR to fix prettytable import issue
- added fix by Jie Li (jili6t) regarding more stringent matching of bin extensions

1.1.6
- allow CheckM data path to be set through a CHECKM_DATA_PATH environmental variable

1.1.5
- fixed small bug with maxibor's PR

1.1.4
- added Maxime Borry's (maxibor) PR to allow path to DATA_CONFIG file to be set 

1.1.3
- fixed error resulting from incorrect GFF files produced by Prodigal on FASTA files with Windows style line endings
- replaced usage of normed keyword with density as required for Matplotlib >= 3.2.0

1.1.2
- removed erroneous error message when setting root to CheckM reference data
- fixed infinit loop issue when trying to install CheckM reference data to directory without write permission

1.1.1
- fixes legacy Python 2 syntax issues (thanks to Sebastian Jaenicke!)

1.1.0
- code base ported to Python 3
- massive thanks to baudrly, vinisalazar, and asafpr for initial Python 2 to 3 porting
- bug in ssu_finder fixed that on rare occasions caused a SSU sequence to be reported more than once
- now using i-Evalue to break ties in the rare cases when hits to a target sequence have the exact same full E-value; this makes the code more deterministic
- improvements to information reported in marker_plot
- fixed CLI issue with outliers method

1.0.18
- fix to CLI of bin_qa_plot (thanks to Finesim97 for PR)

1.0.17
- fixed bug with CLI of plotting methods introduced in 1.0.16

1.0.16
- made ~/.checkm the default directory for CheckM reference data
- "checkm data setRoot <directory>" is no longer interactive and the directory must be given on the command line

1.0.15
- fixed CheckM data setRoot command to work from command line (thanks to cbt for PR)
- added logging to files
- improved reporting of CheckM results to include timestamp
- removed "--force-overwrite" option and now allow output directories to already exist

1.0.14
- fixed bug with test command missing "--force-overwrite" option

1.0.13
- failed commands now exit with error code 1
- added "--force-overwrite" option

1.0.12
- removed bVerbose option for all commands

1.0.11
- fix to lineage_wf CLI regarding missing coverage_file argument
1.0.10
- updated version number for pypi
1.0.9
- removed ScreamingBackpack as a dependency and modified CheckM to never removes user files
- added "life" as an acceptable rank for the taxonomy_wf so the universal Prokaryotic marker set can be used
- fixed bug with processing empty gene files
- fixed bug with processing identical user genomes which cause pplacer to create polytomies

