Skip to content

Adopt the scverse cookiecutter template 0.8.0 - #459

Merged
Zethson merged 4 commits into
mainfrom
adopt-cookiecutter-0.8.0
Sep 6, 2026
Merged

Zethson merged 4 commits into
mainfrom
adopt-cookiecutter-0.8.0

Conversation

@Zethson

@Zethson Zethson commented Sep 6, 2026 •

Copy link
Copy Markdown
Member

Adds .cruft.json so future template releases arrive as automated update PRs, moves the package to a src layout, and takes the template's pyproject layout, pre-commit hooks and test/build/release workflows; the hatch matrix in pyproject.toml is now the only place supported Python versions are written down. The version is derived from git tags with hatch-vcs rather than hand-bumped.
The mypy configuration and the existing sphinx-gallery docs tree are deliberately kept as they are, since reworking either is a separate job.

Closes #429

Zethson and others added 2 commits September 6, 2026 21:27
Adds .cruft.json so future template releases arrive as automated update PRs,
and brings the repository in line with what the template generates.

The package moves to a src layout, and pyproject.toml switches to the template's
layout: dependency groups for dev, test, typecheck and doc, hatch environments
that define the test matrix, and the ruff, pytest, coverage and cruft
configuration. The test matrix now covers the ends of the supported range, 3.12
and 3.14, and CI derives its jobs from it rather than restating them, so
pyproject.toml is the only place a supported version is written down.

pr_validation.yml is replaced by the template's test, build and release
workflows. Linting moves to pre-commit, which gains biome, pyproject-fmt and
zizmor. The issue templates, dependabot config, editorconfig, codecov config
and VS Code settings come from the template as generated.

The mypy configuration is left alone: the template does not run mypy, and
reworking type checking is a separate job. The pre-commit hook stays and gains a
hatch-check-types environment so it can also be run on its own. The existing
sphinx-gallery documentation tree under docs/source is kept as well, since the
template's docs layout would replace the gallery.

`load_example_data` located the datasets directory relative to the package, so
the src move needed a matching path change, and the GitHub fallback URL now
points at scverse rather than owkin.

Builds a correct wheel, and the tests, ruff, mypy and the documentation build
all pass.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
@codecov-commenter

Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

The version was written out in pyproject.toml and had to be bumped by hand for
every release. hatch-vcs reads it from the git tag instead, so tagging is the
only step. `pydeseq2.__version__` already read installed metadata, so it needs
no change.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
The exact pin meant type checking silently stayed on an old release. mypy 2.3
passes on the current source.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
@Zethson
Zethson merged commit 13ded24 into main Sep 6, 2026
8 checks passed
@Zethson
Zethson deleted the adopt-cookiecutter-0.8.0 branch September 6, 2026 21:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move to scverse cookiecutter template

2 participants