Skip to content

Align with scverse repo-health: pinned pre-commit hooks, Dependabot, SPEC 0 - #105

Open
maltekuehl wants to merge 3 commits into
mainfrom
chore/repo-health
Open

maltekuehl wants to merge 3 commits into
mainfrom
chore/repo-health

Conversation

@maltekuehl

Copy link
Copy Markdown
Collaborator

This PR fixes the scverse repo-health checks that are still failing after #99 (template v0.8.0) and #104. Those two already pinned the actions, added top-level workflow permissions: and persist-credentials: false, and made the zizmor audit come back clean.

Changes

Check Change
security/precommit-pinned Pins each hook rev: to the commit its current tag points at, written as # frozen: vX. Hook versions do not change.
security/dependabot Replaces .github/dependabot.yml with scanpy's configuration, copied verbatim. It now updates the pre-commit hooks as well as the GitHub Actions, weekly with a 7-day cooldown.
packaging/spec0-python Sets requires-python = ">=3.13", drops the 3.12 classifier and moves the hatch test matrix (which generates the CI jobs) to 3.13 and 3.14. SPEC 0 dropped Python 3.12 on 2026-10-02, three years after its release.
SPEC 0 (no dashboard check) Raises the core dependency minimums to the oldest releases still within SPEC 0's 24-month window: numpy 2.2, scipy 1.15, pandas 2.3, matplotlib 3.10, scikit-learn 1.6, networkx 3.5. anndata goes to 0.11 under the same window.

No library code changes. What changes is support: Python 3.12 is dropped, and environments with older versions of those dependencies will be upgraded.

Tests

  • pytest on Python 3.13 with every direct dependency at its new lower bound (uv pip install --resolution lowest-direct): 31 passed.
  • pytest on Python 3.14 with the latest releases (numpy 2.5.4, pandas 3.1.0, anndata 0.13.4, …): 31 passed.
  • All pre-commit hooks pass, including zizmor.
  • The docs build passes with -W.

The remaining dashboard items need repository or service settings, not code:

  • branch rules on main (require PR, review and status checks);
  • a read-only default workflow token;
  • protection rules on the pypi environment;
  • the pytometry.scverse.org docs domain;
  • a release published through trusted publishing.

🤖 Generated with Claude Code

maltekuehl and others added 3 commits October 30, 2026 21:06
Freezes every hook rev in .pre-commit-config.yaml to the commit its current tag
points at, keeping the tag in a `# frozen:` comment (no hook version changes),
and adds .github/dependabot.yml, taken verbatim from scanpy, which keeps both
the pre-commit hooks and the GitHub Actions current. Addresses the scverse
repo-health checks security/precommit-pinned and security/dependabot.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
SPEC 0 drops a Python version three years after its first release. Python 3.12
was released on 2023-10-02, so as of 2026-10 the oldest version to support is
3.13. Updates requires-python, the classifiers and the hatch test matrix, from
which the CI test jobs are generated (scverse repo-health check
packaging/spec0-python).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
SPEC 0 supports minor releases of core packages for 24 months. As of 2026-10-30
the oldest releases in that window are numpy 2.2, scipy 1.15, pandas 2.3,
matplotlib 3.10, scikit-learn 1.6 and networkx 3.5. anndata is not a SPEC 0 core
project; the same window gives anndata 0.11. The test suite passes with every
direct dependency resolved to its lowest allowed version on Python 3.13.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.69%. Comparing base (1dba141) to head (635fa4d).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #105   +/-   ##
=======================================
  Coverage   76.69%   76.69%           
=======================================
  Files          15       15           
  Lines         618      618           
=======================================
  Hits          474      474           
  Misses        144      144           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@maltekuehl
maltekuehl marked this pull request as ready for review October 30, 2026 20:36
@maltekuehl

Copy link
Copy Markdown
Collaborator Author

@grst @mbuttner would it be possible to get the docs onto the .scverse.org domain, too?

Since I am not core, I would need somebody else to email NumFocus, if Maren agrees on this move.

@grst

grst commented Oct 31, 2026

Copy link
Copy Markdown
Collaborator

If there's no rush, we can wait maybe 2 more weeks until we have the DNS records under our own control, then we don't have to put in a separate request

@maltekuehl

Copy link
Copy Markdown
Collaborator Author

@grst sure, I don't think there is any rush!

This branch has not been deployed

No deployments
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.

3 participants