Skip to content

scverse/cookiecutter-scverse

Scverse Cookiecutter Template

Test Powered by NumFOCUS

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

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.

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.

  1. pre-commit.ci to check for inconsistencies and to enforce a code style
  2. readthedocs.org to build and host documentation
  3. 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

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:

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.