Awesome
Scverse Cookiecutter Template
The purpose of this template is to get you started quickly building a best-practice python library for a scverse ecosystem package. Ecosystem packages are independent software libraries that interact with scverse core packages and depend on anndata and mudata data structures.
Please check out the
- example repo and the
- example documentation
that are automatically generated and kept in sync with this template.
This template is part of the scverse project (website, governance) and is fiscally sponsored by NumFOCUS. Please consider making a tax-deductible donation to help the project pay for developer time, professional services, travel, workshops, and a variety of other needs.
<a href="https://numfocus.org/project/scverse"> <img src="https://raw.githubusercontent.com/numfocus/templates/master/images/numfocus-logo.png" width="200" > </a>Features
- automated testing with pytest
- continuous integration using GitHub actions.
- documentation hosted by readthedocs
- coverage tests with codecov
- pre-commit checks for code style and consistency
- tutorials with myst-nb and jupyter notebooks
- issue templates for better bug reports and feature requests
- bump2version for managing releases
Getting started
In this section we will show you how to set-up your own repository from this template and how to customize it for your needs.
Install dependencies
You need git >=2.28
and python >=3.10
. In addition you need to install the following Python dependencies:
pip install cruft pre-commit
Create the project
We are using cruft to initialize the project from the template. Cruft is fully compatible with cookiecutter, but enables automatic updates to your project whenever a new template version is released.
To create the project, run the following command and follow the prompts:
cruft create https://github.com/scverse/cookiecutter-scverse
This will create a git repository generated from the template.
Now cd
into the newly created directory and make the initial commit!
Don't forget to create a repository on GitHub and upload your project.
Set up online services
Your repository is now ready. However, to use all features of the template you will need to set up the following
online services. Clicking on the links will take you to the respective sections of the developer documentation.
The developer documentation is also shipped as part of the template in docs/template_usage.md
.
- pre-commit.ci to check for inconsistencies and to enforce a code style
- readthedocs.org to build and host documentation
- codecov to generate test coverage reports
All CI checks should pass, you are ready to start developing your new tool!
Customizations
Further instructions on using this template can be found in the dev docs included in the project.
Committment
We expect developers of scverse ecosystem packages to
- write unit tests
- provide documentation, including tutorials where applicable
- support users through github and the scverse discourse
Changelog
See the release page.
Releasing a new template version
To release a new version of the template, create a new release on the GitHub release page.
Choose a tag name of the format vX.X.X
that adheres to semantic versioning.
Note that when creating a new release, changes will be propagated to packages using this template.
Citation
You can cite the scverse publication as follows:
<!-- links -->The scverse project provides a computational ecosystem for single-cell omics data analysis
Isaac Virshup, Danila Bredikhin, Lukas Heumos, Giovanni Palla, Gregor Sturm, Adam Gayoso, Ilia Kats, Mikaela Koutrouli, Scverse Community, Bonnie Berger, Dana Pe’er, Aviv Regev, Sarah A. Teichmann, Francesca Finotello, F. Alexander Wolf, Nir Yosef, Oliver Stegle & Fabian J. Theis
Nat Biotechnol. 2022 Apr 10. doi: 10.1038/s41587-023-01733-8.