Repository navigation
Development
github-actions[bot] edited this page Oct 23, 2026
·
6 revisions
git clone https://github.com/duceppemo/mashID
cd mashID
conda env create -f environment.yml && conda activate mashID
pip install -e ".[test]"
pre-commit install # optional: ruff on every commit
ruff check .
pytestThe integration tests build a small synthetic database and are skipped when mash is not on PATH.
| Path | Content |
|---|---|
mashid/cli.py, makedb.py, download_cli.py
|
The three command-line entry points. |
mashid/pipeline.py |
Sample discovery → stats → screening → annotation → tables. |
mashid/mash.py |
Wrappers around mash screen, mash sketch, mash info. |
mashid/samples.py |
Input discovery and sample naming. |
mashid/seqstats.py |
Read/base counting and the --max-reads streamer. |
mashid/taxonomy.py |
Organism name parsing from fasta headers. |
mashid/metadata.py |
The metadata sidecar. |
mashid/databases.py |
Registry and download of pre-built databases. |
docs/wiki/ |
Source of this wiki, published by .github/workflows/wiki.yml. |
recipe/ |
Bioconda recipe. |
.github/workflows/ci.yml runs on every push and pull request: environment from environment.yml
on Linux with Python 3.10 and 3.12 and on macOS with Python 3.12, ruff check, pytest, and the
CLIs' --help. tests/test_taxonomy_corpus.py checks the header parser against 3309 real NCBI
headers, and tests/test_example.py keeps the shipped example's results exact.
- Update the version in
mashid/__init__.py,pyproject.tomlandCITATION.cff(a test checks they agree) and add a section toCHANGELOG.md. Runpytestand check its exit status before tagging. Three places quote a version without any test noticing: the citation line inREADME.md, thepip install .../tags/vX.Y.Z.tar.gzline indocs/wiki/Installation.md, andrecipe/meta.yaml(step 4). The first two are only correct once the tag exists, so push the tag in the same sitting. If a release changes which pre-built databases the registry points at, say indocs/wiki/Databases.mdwhich version those rows need, since an older install silently fetches the older set. - Commit, then tag:
git tag -a vX.Y.Z -m "mashID X.Y.Z" && git push origin master vX.Y.Z. -
.github/workflows/release.ymlbuilds the wheel and creates the GitHub release with the changelog section as notes. Zenodo archives the release automatically and mints a version DOI under the concept DOI 10.5281/zenodo.22888109; put the new version DOI inCITATION.cff(doi:andidentifiers) in the next commit. - Update
recipe/meta.yaml:version,sha256of the new tag's tarball (curl -sL https://github.com/duceppemo/mashID/archive/refs/tags/vX.Y.Z.tar.gz | sha256sum), andnumber: 0. Copyrecipe/tobioconda-recipes/recipes/mashidand open a pull request; once its checks pass, comment@BiocondaBot please add label.
Edit the Markdown files in docs/wiki/ and push to master. The wiki.yml workflow copies them to
the wiki repository. Page names are file names (Databases.md → Databases); _Sidebar.md is the
navigation.