Skip to content

Comments

Update template to v0.7.0#63

Open
scverse-bot wants to merge 17 commits intosrivarra:mainfrom
scverse-bot:template-update-v2-srivarra-annsel-v0.7.0
Open

Update template to v0.7.0#63
scverse-bot wants to merge 17 commits intosrivarra:mainfrom
scverse-bot:template-update-v2-srivarra-annsel-v0.7.0

Conversation

@scverse-bot
Copy link

cookiecutter-scverse released v0.7.0.

Changes

Changes

Fixes

Additional remarks

  • unsubscribe: If you don’t want to receive these PRs in the future,
    add skip: true to template-repos.yml using a PR or,
    if you never want to sync from the template again, delete the .cruft.json file in the root of your repository.
  • If there are merge conflicts, you need to resolve them manually.
  • The scverse template works best when the pre-commit.ci, readthedocs and codecov services are enabled.
    Make sure to activate those apps if you haven't already.

@codecov
Copy link

codecov bot commented Feb 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 49.68%. Comparing base (9ac4620) to head (5f46834).

Additional details and impacted files
@@             Coverage Diff             @@
##             main      #63       +/-   ##
===========================================
- Coverage   98.13%   49.68%   -48.45%     
===========================================
  Files          13       13               
  Lines         322      322               
===========================================
- Hits          316      160      -156     
- Misses          6      162      +156     

see 7 files with indirect coverage changes

Signed-off-by: Sricharan Reddy Varra <sricharanvarra@gmail.com>
@srivarra
Copy link
Owner

@greptile

@greptile-apps
Copy link

greptile-apps bot commented Feb 13, 2026

Greptile Overview

Greptile Summary

This PR updates the project template from cookiecutter-scverse v0.6.0 to v0.7.0, bringing significant infrastructure modernization:

Key Changes:

  • Migrated to PEP 735 dependency groups in pyproject.toml, consolidating hatch.toml and ruff.toml into a single configuration file
  • Minimum Python version bumped from 3.10 to 3.11, narwhals upgraded from 1.37.1 to 2.14 (major version change)
  • CI/CD workflows overhauled to use hatch test matrix, now testing only Python 3.11 and 3.14 (stable + pre-release)
  • Source code improvements: replaced inspect-based expression parsing with narwhals private API (with known nested expression limitation), and fixed truthiness checks to explicit is not None in filter/select functions
  • ReadTheDocs configuration updated to Ubuntu 24.04 and Python 3.13
  • Pre-commit hooks and various tools updated to latest versions

Issues Found:

  • Test matrix only covers Python 3.11 and 3.14, but classifiers list 3.12 and 3.13 as supported
  • New expression parsing uses narwhals private API which may break in future versions

Confidence Score: 3/5

  • Requires attention due to test coverage gap and dependency on private API
  • Template updates are generally well-tested, but critical issue: test matrix doesn't cover Python 3.12/3.13 despite being declared as supported. Additionally, the switch to narwhals private API (_expression_parsing) introduces brittleness with acknowledged limitations on nested expressions. The Python 3.10 drop and narwhals major version bump are breaking changes that need verification.
  • Pay close attention to .github/workflows/test.yaml (missing Python version coverage) and src/annsel/core/utils.py (private API dependency with nested expression bugs)

Important Files Changed

Filename Overview
pyproject.toml Migrated to dependency groups (PEP 735), bumped Python minimum to 3.11, updated narwhals to 2.14+, consolidated ruff config from external file
src/annsel/core/utils.py Replaced inspect-based expression parsing with narwhals private API _expression_parsing. Known limitation: doesn't handle nested expressions correctly
src/annsel/tl/_filter.py Changed truthiness checks to explicit is not None checks for better handling of empty/falsy values
src/annsel/tl/_select.py Changed truthiness checks to explicit is not None checks for better handling of empty/falsy values
.github/workflows/test.yaml Complete rewrite to use hatch test matrix from pyproject.toml, tests only 3.11 and 3.14 (stable), 3.14 (pre-release), added all-green check job
.github/workflows/build.yaml Simplified to check package build validity using twine, removed artifact upload and workflow dependencies

Last reviewed commit: ceacb2e

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

19 files reviewed, 4 comments

Edit Code Review Agent Settings | Greptile

Signed-off-by: Sricharan Reddy Varra <sricharanvarra@gmail.com>
Signed-off-by: Sricharan Reddy Varra <sricharanvarra@gmail.com>
@greptile-apps
Copy link

greptile-apps bot commented Feb 13, 2026

Greptile Overview

Greptile Summary

This PR updates the project template from cookiecutter-scverse v0.6.x to v0.7.0, bringing several infrastructure improvements and modernizations.

Key Changes:

  • Migrated configuration from separate hatch.toml and ruff.toml files into pyproject.toml using dependency groups (PEP 735)
  • Updated Python support: dropped 3.10, now testing 3.11 and 3.14 (with pre-release dependencies)
  • Refactored CI workflows to dynamically discover test environments from hatch configuration
  • Updated GitHub Actions (checkout v4→v5, setup-uv v6→v7, pypa/gh-action-pypi-publish to release/v1)
  • Improved ReadTheDocs configuration to use hatch for docs building
  • Enhanced issue templates with better session-info2 usage instructions
  • Expanded contributing documentation with detailed hatch environment setup guide

Critical Issue Found:

  • The pyproject.toml defines [tool.hatch.envs.hatch-test] but is missing the required scripts section. The CI workflow (.github/workflows/test.yaml) attempts to run run-cov, cov-combine, and cov-report scripts that don't exist, which will cause all test jobs to fail.

Confidence Score: 1/5

  • This PR will break CI - tests cannot run without the missing hatch scripts
  • The missing hatch-test scripts (run-cov, cov-combine, cov-report) in pyproject.toml will cause immediate CI failures when the test workflow attempts to execute them. This is a blocking issue that prevents merging.
  • Pay close attention to pyproject.toml - must add the missing [tool.hatch.envs.hatch-test.scripts] section before merging

Important Files Changed

Filename Overview
pyproject.toml Critical issue: Migrated to dependency groups and hatch test matrix (3.11, 3.14), but missing required hatch-test scripts (run-cov, cov-combine, cov-report) that CI workflow expects
.github/workflows/test.yaml Refactored to use dynamic hatch environment discovery, but references undefined hatch scripts that will cause CI failures
.github/workflows/build.yaml Simplified to single-job package build check with twine validation, removed matrix strategy
.pre-commit-config.yaml Updated ruff hook from 'ruff' to 'ruff-check' and excluded .cruft.json from biome-format
.readthedocs.yaml Restructured to use hatch for docs build, updated to Ubuntu 24.04 and Python 3.13

Last reviewed commit: 5e7f4e9

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

16 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines +92 to +93
[tool.hatch.envs.hatch-test]
dependency-groups = [ "dev", "test" ]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing required hatch scripts. The CI workflow (.github/workflows/test.yaml:78-84) references run-cov, cov-combine, and cov-report scripts, but these aren't defined here.

Add after line 93:

Suggested change
[tool.hatch.envs.hatch-test]
dependency-groups = [ "dev", "test" ]
dependency-groups = [ "dev", "test" ]
[tool.hatch.envs.hatch-test.scripts]
run = "pytest {args}"
run-cov = "pytest --cov --cov-report=term-missing {args}"
cov-combine = "coverage combine"
cov-report = "coverage report"

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.

2 participants