# sourmash v4.0 release notes ```{contents} :depth: 2 ``` We are pleased to announce release 4.0 of sourmash! This release contains many feature improvements and new functionality, as well as many breaking changes with sourmash 2.x and 3.x. Please see [our migration guide](../support.md#migrating-from-sourmash-v3x-to-sourmash-v4x) for guidance on updating to sourmash v4, and post questions about migrating to sourmash 4.0 in the [sourmash issue tracker](https://github.com/sourmash-bio/sourmash/issues/new). ## Major changes for 4.0 ### Numerical output and search results are unchanged There are no changes to numerical output or search results in this release; you should get the same results with v4 as you get with v3, except where command-line parameters need to be adjusted as noted below (see: protein ksize #1277, lca summarize changes #1175, sourmash gather on signatures without abundance #1328). Please [file an issue](https://github.com/sourmash-bio/sourmash/issues) if your results change! ### New or changed behavior * default SBT storage is now .sbt.zip (#1174, #1170) * add `sourmash sketch` command for creating signatures (#1159) * protein ksizes in MinHash are now divided by 3, except in `sourmash compute` (#1277) * refactor MinHash API and implementation: add, iadd, merge, hashes, and max_hash (#1282, #1154, #1139, #1301) * add HyperLogLog implementation (#1223) * `SourmashSignature.name` is now a property (not a method): use `str(sig)` instead of `name()` (#1179, #1232) * `lca summarize` no longer merges all signatures, and uses hash abundance by default (#1175) * `index `and `lca index` (#1186, #1222) now support `--from-file` and no longer require signature files on command line * `--traverse-directory` is now on by default for signature loading behavior (#1178) * `sourmash sketch` and `sourmash compute` no longer create empty signatures from empty files and stdin (#1347) * `sourmash sketch` and `sourmash compute` set `sig.filename` to empty string when filename is `-` (#1347) ### Feature removal * remove Python 2.7 support (& end Python 2 compatibility) (#1145, #1144) * remove `lca gather` (#1307) * remove 10x support from `sourmash compute` (#1229) * remove `dump` command (#1157) ### Feature/function deprecations * deprecate `sourmash compute` (#1159) * deprecate `load_signatures`, `sourmash.load_one_signature`, `create_sbt_index`, and `load_sbt_index` (#1279, #1304) * deprecate `import_csv` in favor of new `sourmash sig import --csv` (#1281) ## Refactoring, improvements, and minor bug fixes: * accept file list in `sourmash sig cat` (#1236) * add unique_intersect_bp and gather_result_rank to gather CSV output (#1219) * remove deprecated minhash functions (#1149) * fix Rust panic error in signature creation (#1172) * cache nodes in SBT during search (#1161) * fix two bugs in gather `--output-unassigned` (#1156) ## Documentation updates * major update and cleanup of docs given new functionality; add sourmash sketch documentation (#1283) * add information about versioning, migrations, etc to the docs (#1153, #1283) ## Infrastructure and CI changes: * update finch requirement from 0.3.0 to 0.4.1 (#1290) * update rand for test, and activate "js" feature for getrandom (#1275) * dev updates (configs and doc) (#1298) * move wheel building from Travis to GitHub Actions (#1295) * fix new clippy warnings from Rust 1.49 (#1267) * use tox for running tests locally (#696) * CI: small build fixes (#1252) * CI: Fix releases in GitHub Actions (#1250) * update build_wheel action paths * CI: moving python tests from travis to GH actions (#1249) * CI: move wheel building to GitHub actions (#1244) * remove last .rst file from docs (#1185) * update CI for latest branch name change (#1150)