Skip to content

marcovarrone/cookiecutter-scverse

 
 

Repository files navigation

Scverse Cookiecutter Template

Test

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.

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.8. 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/developer_docs.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 section.

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.

Releases

No releases published

Packages

No packages published

Languages

  • Python 63.4%
  • Jupyter Notebook 12.9%
  • TeX 9.2%
  • Batchfile 7.0%
  • Makefile 5.8%
  • Shell 1.7%