Skip to content

Sync cookiecutter-scverse v0.7.0 template (tracking #69) #73

@Marius1311

Description

@Marius1311

The scverse-bot opened #69 to sync cookiecutter-scverse v0.7.0. The PR currently has conflicts, and more importantly, applying it wholesale would regress or rewrite a few things we've deliberately diverged on. Tracking the follow-up work here instead of force-merging the auto-sync.

The template sync touches:

  • .cruft.json (template version bump)
  • .github/ISSUE_TEMPLATE/bug_report.yml, .github/ISSUE_TEMPLATE/feature_request.yml
  • .github/workflows/build.yaml, .github/workflows/release.yaml, .github/workflows/test.yaml
  • .pre-commit-config.yaml
  • .readthedocs.yaml
  • docs/conf.py, docs/contributing.md
  • pyproject.toml

Why we're not merging #69 directly

Several template changes require thought rather than a mechanical conflict-resolve:

  1. PEP 735 [dependency-groups]. The template moves dev/test/doc to PEP 735 dependency groups. We need to keep the provider layers (openai, gemini, anthropic, all-providers, colors, gpu, tutorials) as optional-dependencies because they're install-time extras. So this is a partial adoption, not a straight copy.
  2. pytest config. The template drops xfail_strict and our real_llm_query marker definition. Both must stay.
  3. Python matrix. The template wants 3.11 + 3.14 stable and 3.14 pre-release. We currently run 3.11 + 3.13 stable and 3.13 pre. The bump is desirable but needs validation.
  4. Sphinx -W (warnings-as-errors). The template adds -W to the docs build. Our current build emits 9 warnings (a missing bibtex key Virshup_2023 and unresolved BaseOutput cross-references). We need to fix those before enabling -W.
  5. Codecov OIDC. The template switches codecov/codecov-action from token: to use_oidc: true + fail_ci_if_error: true. Requires enabling OIDC on codecov.io for the repo.
  6. Pre-commit hook revs. The template lists older revs than current main (see [pre-commit.ci] pre-commit autoupdate #70 landed recently). Trivial conflict, resolved by keeping main's newer versions.
  7. Misc template bits. docs/conf.py (add sphinxcontrib-katex), .readthedocs.yaml, issue templates, build/release workflow simplifications — mostly safe.

Plan — land in focused PRs

  1. Fix docs warnings + enable -W in docs build. Resolve the 9 pre-existing Sphinx warnings, then adopt -W.
  2. PEP 735 dependency groups for dev/test/doc. Keep provider layers as optional-dependencies. Update [tool.hatch.envs.*] accordingly. Keep xfail_strict and the real_llm_query marker.
  3. Python matrix bump to 3.11/3.14. Adjust classifiers, hatch matrix, and local verification.
  4. Codecov OIDC + remaining template bits. Enable OIDC on codecov.io, switch the action config, sync issue templates, .readthedocs.yaml, docs/conf.py (katex), build/release workflow simplifications, bump .cruft.json to v0.7.0.

Each PR will be scoped narrowly so CI noise is isolated and a regression is easy to roll back. Closing #69 once this is filed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions