-
Notifications
You must be signed in to change notification settings - Fork 3
Update template to v0.7.0 #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update template to v0.7.0 #15
Conversation
📝 WalkthroughWalkthroughThis pull request modernizes the project's build and development infrastructure by migrating from traditional Python tooling to UV-based build system, restructuring CI/CD workflows with dynamic environment discovery, updating documentation and IDE configurations, and reorganizing project metadata across multiple configuration files. Changes
Sequence DiagramsequenceDiagram
autonumber
participant GA as GitHub Actions
participant GE as get-environments Job
participant Hatch
participant Test as test Job (Matrix)
participant Codecov
participant Check as check Job
GA->>GE: Trigger: get-environments
activate GE
GE->>Hatch: Parse pyproject.toml environments
Hatch-->>GE: Return env list (JSON)
GE-->>GA: Output: matrix environments
deactivate GE
rect rgb(200, 220, 240)
Note over Test: Dynamic Matrix per Environment
GA->>Test: Trigger with matrix (for each env)
activate Test
Test->>Hatch: Create hatch environment
Hatch-->>Test: Environment ready
Test->>Hatch: Run hatch run tests
Hatch-->>Test: Test results + coverage
Test->>Codecov: Upload coverage (v5, OIDC)
Codecov-->>Test: Coverage recorded
deactivate Test
end
GA->>Check: Trigger: check (needs: test)
activate Check
Check->>GA: alls-green: aggregate test results
GA-->>Check: All tests passed?
deactivate Check
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 10
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.gitignore (1)
1-21: Add IDE-specific directories to .gitignore.IDE configuration directories (
.idea/for JetBrains IDEs and.vscode/for Visual Studio Code) are currently not ignored. Without these entries, developers' IDE-specific settings and cache files will be unintentionally committed to the repository, creating friction across the team and polluting the repository history.
🧹 Nitpick comments (2)
docs/contributing.md (1)
239-239: Consider more concise phrasing for "in brief".The phrase "in brief" is somewhat wordy. You could replace it with a more direct transition, such as simply "as follows:" or omit it entirely for brevity.
docs/conf.py (1)
29-30: URL parsing assumes specific format with comma-space separator.The dict comprehension
dict(pu.split(", ") for pu in info.get_all("Project-URL"))assumes each Project-URL entry has exactly one ", " separator. If the format differs or a URL contains ", ", this will fail.This is a standard pattern from the cookiecutter template and should work for typical pyproject.toml URLs, but consider defensive parsing if you anticipate non-standard formats:
urls = {k.strip(): v.strip() for pu in info.get_all("Project-URL") for k, v in [pu.split(", ", 1)]}
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (19)
.cruft.json.editorconfig.github/ISSUE_TEMPLATE/bug_report.yml.github/ISSUE_TEMPLATE/feature_request.yml.github/workflows/build.yaml.github/workflows/release.yaml.github/workflows/test.yaml.gitignore.pre-commit-config.yaml.readthedocs.yaml.vscode/extensions.json.vscode/launch.json.vscode/settings.jsonbiome.jsoncdocs/Makefiledocs/conf.pydocs/contributing.mddocs/extensions/typed_returns.pypyproject.toml
💤 Files with no reviewable changes (1)
- docs/Makefile
🧰 Additional context used
🪛 LanguageTool
docs/contributing.md
[grammar] ~39-~39: Use a hyphen to join words.
Context: ... interact with hatch through its command line interface (CLI). Running one of the...
(QB_NEW_EN_HYPHEN)
[grammar] ~90-~90: Ensure spelling is correct
Context: ...y3.14-stable ``` In case you are using VScode, now open the command palette (Ctrl+Shi...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~93-~93: Ensure spelling is correct
Context: ... this may become easier through a hatch vscode extension. :::: ::::{group-tab} uv A...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~106-~106: Ensure spelling is correct
Context: ...phinx plugin pins an older version. To initalize a virtual environment in the .venv di...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~227-~227: Consider using a different verb for a more formal wording.
Context: ...versions early on and gives you time to fix the issue or reach out to the developer...
(FIX_RESOLVE)
[style] ~239-~239: ‘in brief’ might be wordy. Consider a shorter alternative.
Context: ...dhere to [Semantic Versioning][semver], in brief > Given a version number MAJOR.MINOR.P...
(EN_WORDINESS_PREMIUM_IN_BRIEF)
[uncategorized] ~244-~244: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...version when you add functionality in a backwards compatible manner, and > 3. PATCH version when you...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[uncategorized] ~245-~245: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...r, and > 3. PATCH version when you make backwards compatible bug fixes. > > Additional labels for pr...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[uncategorized] ~252-~252: The official name of this software platform is spelled with a capital “H”.
Context: ...atically create a git tag and trigger a Github workflow that creates a release on [PyP...
(GITHUB)
🪛 markdownlint-cli2 (0.18.1)
docs/contributing.md
33-33: Emphasis style
Expected: asterisk; Actual: underscore
(MD049, emphasis-style)
33-33: Emphasis style
Expected: asterisk; Actual: underscore
(MD049, emphasis-style)
34-34: Link fragments should be valid
(MD051, link-fragments)
61-61: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
133-133: Link and image reference definitions should be needed
Unused link or image reference definition: "hatch environments"
(MD053, link-image-reference-definitions)
162-162: Emphasis style
Expected: asterisk; Actual: underscore
(MD049, emphasis-style)
162-162: Emphasis style
Expected: asterisk; Actual: underscore
(MD049, emphasis-style)
🔇 Additional comments (29)
docs/extensions/typed_returns.py (1)
15-15: Quoting adjustment looks good.The use of dictionary-style access (
m['param']) for regex named groups is valid and idiomatic in modern Python. The f-string formatting is correct and produces properly formatted Sphinx reStructuredText markup..gitignore (2)
9-9: ✓ Generalized cache pattern is sound.The pattern
.*cache/correctly replaces explicit cache-directory entries (.mypy_cache/, .ruff_cache/, .pytest_cache/, .cache/) using a single rule. In gitignore glob syntax,*matches zero or more characters, so this covers all dot-prefixed cache directories.
17-17: ✓ Coverage pattern is appropriate.The pattern
/.coverage*properly matches all coverage output files (.coverage, .coverage.xml, .coverage.db, etc.) with a single, concise rule.docs/contributing.md (4)
14-29: Effective tip section introducing Hatch.The new introductory section does a good job of explaining Hatch's benefits and clearly noting that alternative tools (uv, pip) are also supported. This sets appropriate expectations upfront.
36-131: Well-structured tabbed setup for multiple package managers.The reorganization into Hatch, uv, and Pip tabs provides clear guidance for users with different preferences. Each path is concrete and actionable. The decision to document the uv/Pip trade-offs is helpful.
188-214: Clear testing guidance with toolchain-specific commands.The restructuring of test-running instructions into Hatch, uv, and Pip tabs makes it easy for contributors to follow their preferred workflow. The note about local and CI parity (line 231–232) is valuable for consistency.
300-329: Helpful documentation building guidance with tabs.The tabbed commands for building docs locally (Hatch, uv, Pip) align well with the earlier environment setup sections and provide clear next steps for contributors.
.github/ISSUE_TEMPLATE/bug_report.yml (3)
12-12: LGTM!The updated guidance provides clearer instructions for bug reporters about data sharing requirements.
42-93: Placeholder contains a future date.The placeholder shows "Updated 2025-03-18 15:47", which is approximately 3 months after this PR was created (2025-12-24). While this is just example data, using a future date may confuse users. Consider using a past date or a generic placeholder like "YYYY-MM-DD HH:MM".
🔎 Suggested fix
- Updated 2025-03-18 15:47 + Updated 2024-12-01 10:00Likely an incorrect or invalid review comment.
25-40:session-info2package is correctly referenced.The package exists on PyPI (latest v0.2.3) and is the appropriate tool for capturing version information. The API usage in the instructions is accurate:
session_info(dependencies=True)is a valid function call, and_repr_mimebundle_()["text/markdown"]correctly retrieves the markdown representation. No changes needed..vscode/settings.json (1)
1-18: Well-structured VSCode workspace settings.The configuration appropriately enables format-on-save with Ruff for Python and Biome for JSON/JSONC, aligning with the recommended extensions and pre-commit hooks in this PR. The pytest integration with verbose output is a nice developer experience improvement.
.editorconfig (1)
11-12: LGTM.Adding
.cruft.jsonto the 2-space indentation rule is appropriate for consistency with the template tooling..vscode/extensions.json (1)
1-18: Comprehensive extension recommendations.The recommended extensions cover the project's tooling stack well—Ruff and Biome for formatting (matching settings.json), EditorConfig for consistency, and mogami for dependency security scanning.
.vscode/launch.json (1)
1-33: Useful debugging configurations.Both launch configurations are well-structured. The documentation build config correctly invokes Sphinx as a module, and the test debug config properly integrates with VSCode's test explorer via
purpose: ["debug-test"]..pre-commit-config.yaml (3)
9-13: Biome replaces Prettier for formatting.The switch to Biome aligns with the new
biome.jsoncconfiguration. The.cruft.jsonexclusion is appropriately documented.
36-38: Note: Removed.rejfile commit guard.The local
forbid-to-commithook that previously blocked committing.rejfiles (template rejection files from cruft) has been removed. These files can indicate unresolved template conflicts.Ensure this is intentional—if
.rejfiles are accidentally committed, they may clutter the repository. Consider whether thecheck-merge-conflicthook (Line 37) provides sufficient protection, or if the.rejguard should be retained.
18-25: Hook naming and version are correctly configured.The
ruff-checkhook follows current ruff-pre-commit naming conventions (with legacyruffalias support), and v0.14.10 is a recent release version compatible with the configuration..cruft.json (1)
1-43: Template metadata updated to v0.7.0.The cruft configuration correctly tracks the template version and commit. The
_exclude_on_template_updatelist appropriately protects project-specific content (source code, tests, documentation) from being overwritten during future template syncs. Theide_integration: trueflag explains the addition of.vscode/configuration files in this PR..readthedocs.yaml (1)
4-16: Modern RTD configuration with UV-based tooling.The migration to Ubuntu 24.04, Python 3.13, and UV/Hatch-based builds aligns with the broader project modernization. The asdf-based UV installation is RTD's recommended approach for custom build tools. The
docs:buildscript is properly defined inpyproject.toml(line 66) as a Sphinx build command, and the configuration will execute correctly viauvx hatch run docs:build.pyproject.toml (3)
60-88: Hatch environment configuration with UV installer looks well-structured.The matrix-based test environment setup correctly:
- Tests lowest (3.11) and highest (3.14) Python versions with stable deps
- Tests newest Python with pre-release deps
- Uses UV_PRERELEASE environment variable conditionally
17-24: Python 3.14 classifier is appropriate and properly configured.Python 3.14 reached final release on October 7, 2025. Adding the classifier for a released version is standard practice and requires no special handling. The hatch test configuration properly handles pre-release dependencies using the
UV_PRERELEASEenvironment variable for the pre-release test matrix entry.Likely an incorrect or invalid review comment.
137-142: Remove this comment. Thepatchoption is a valid coverage.py configuration option available in version 7.x, and the TOML syntaxpatch = [ "subprocess" ]is correct. No changes are needed.Likely an incorrect or invalid review comment.
docs/conf.py (2)
97-103: TODO comment about Python version in intersphinx mapping.The TODO correctly notes the workaround for ReadTheDocs not yet supporting Python 3.14. This is appropriate for documentation builds.
130-130: KaTeX prerender check is a good optimization.Checking for the Node.js binary availability before enabling prerendering avoids build failures when the binary is missing.
.github/workflows/release.yaml (1)
17-25: Clean migration to UV-based build workflow.The workflow correctly:
- Uses
actions/checkout@v5with shallow clone options- Installs UV via
astral-sh/setup-uv@v7- Builds with
uv buildThis aligns with the broader UV adoption in the PR.
.github/workflows/build.yaml (1)
17-26: Build workflow correctly migrated to UV tooling.The workflow:
- Uses partial clone (
filter: blob:none) for faster checkout- Builds with
uv build- Validates with
uvx twine check --strictUsing
uvxto run twine in an isolated environment is a good practice..github/workflows/test.yaml (3)
21-44: Dynamic environment discovery from hatch is a clean approach.Deriving test environments from
pyproject.tomlensures consistency between local and CI testing. Thejqtransformation correctly:
- Filters environments starting with "hatch-test"
- Adds a label suffix for pre-release environments
- Extracts the Python version for each environment
78-84: Coverage command fallback handles edge cases.The conditional
test -f .coverage || uvx hatch run ... :cov-combinehandles cases where coverage data needs combining before reporting. This is a robust approach.
91-99: Good use of alls-green for unified test status.The
checkjob withif: always()andalls-greenprovides a single status check for branch protection, avoiding the need to update required checks when test environments change.
| name: Bug report | ||
| description: Report something that is broken or incorrect | ||
| labels: bug | ||
| type: Bug |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
GitHub issue template form schema type field documentation
💡 Result:
Short answer — the supported form element types in GitHub issue (form) YAML are:
- markdown
- textarea
- input
- dropdown
- checkboxes
Each type has its own attributes and validations (label, description, options, required, etc.). See GitHub's "Syntax for GitHub's form schema" for full attribute/validation details. [1]
References
- GitHub Docs — Syntax for GitHub's form schema. [1]
🏁 Script executed:
cat .github/ISSUE_TEMPLATE/bug_report.ymlRepository: CSOgroup/torchgmm
Length of output: 2998
Remove the invalid type: Bug field from the root level of the template.
The type field is not valid at the root level of GitHub issue templates. Valid top-level metadata fields include name, description, title, labels, assignees, and projects. To categorize issues, use labels instead. The form element types (markdown, textarea, input, dropdown, checkboxes) are only valid within the body array, not as root-level fields.
🤖 Prompt for AI Agents
In .github/ISSUE_TEMPLATE/bug_report.yml around line 3, remove the invalid
root-level field `type: Bug` and replace its intent by adding an appropriate
`labels:` entry (e.g., labels: ["bug"]) in the root metadata; ensure the root
only contains valid keys like name, description, title, labels, assignees, and
projects, and keep any form element types (markdown, textarea, input, dropdown,
checkboxes) inside the `body:` array only.
| name: Feature request | ||
| description: Propose a new feature for torchgmm | ||
| labels: enhancement | ||
| type: Enhancement |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
GitHub issue form template type field schema documentation
💡 Result:
Short answer — the issue form element "type" is the element kind in GitHub's form schema. Valid values and their meaning:
- markdown — explanatory text (not submitted).
- textarea — multi-line text field.
- input — single-line text field.
- dropdown — single-select list.
- checkboxes — multi-select checkboxes.
Each element may include id, attributes (label, description, placeholder, options, value, etc.) and validations (required, pattern, min/max length, etc.). See GitHub’s form schema and issue-forms syntax docs for full attribute/validation details. [1][2]
Sources:
[1] Syntax for issue forms (GitHub Docs). [2] Syntax for GitHub’s form schema (GitHub Docs).
🏁 Script executed:
cat -n .github/ISSUE_TEMPLATE/feature_request.ymlRepository: CSOgroup/torchgmm
Length of output: 527
Replace type: Enhancement with labels for issue categorization.
type is not a valid top-level field in GitHub issue templates. Valid top-level fields are: name, description, title, labels, assignees, and body. To categorize this as an enhancement issue, use labels: ["enhancement"] instead.
🤖 Prompt for AI Agents
In .github/ISSUE_TEMPLATE/feature_request.yml around line 3, the file uses an
invalid top-level field "type: Enhancement"; remove that line and replace it
with a valid top-level "labels" field such as labels: ["enhancement"] (use
lowercase or desired label names) so the template uses GitHub-supported keys.
| steps: | ||
| - uses: re-actors/alls-green@release/v1 | ||
| with: | ||
| jobs: ${{ toJSON(needs) }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent indentation in check job steps.
Line 101 has extra leading spaces before - uses:. YAML is indentation-sensitive and this could cause parsing issues.
🔎 Proposed fix
runs-on: ubuntu-latest
steps:
- - uses: re-actors/alls-green@release/v1
- with:
- jobs: ${{ toJSON(needs) }}
+ - uses: re-actors/alls-green@release/v1
+ with:
+ jobs: ${{ toJSON(needs) }}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| steps: | |
| - uses: re-actors/alls-green@release/v1 | |
| with: | |
| jobs: ${{ toJSON(needs) }} | |
| steps: | |
| - uses: re-actors/alls-green@release/v1 | |
| with: | |
| jobs: ${{ toJSON(needs) }} |
🤖 Prompt for AI Agents
In .github/workflows/test.yaml around lines 100 to 103 the steps block has
inconsistent indentation (line 101 has extra leading spaces before `- uses:`)
which can break YAML parsing; fix by aligning the `- uses:` line with the other
entries under `steps:` (remove the extra spaces so the dash is at the same
indent level as other step items), ensure nested `with:` is indented one level
under that dash, and validate the workflow YAML after the change.
| { | ||
| "$schema": "https://biomejs.dev/schemas/2.2.0/schema.json", | ||
| "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true }, | ||
| "formatter": { "useEditorconfig": true }, | ||
| "overrides": [ | ||
| { | ||
| "includes": ["./.vscode/*.json", "**/*.jsonc"], | ||
| "json": { | ||
| "formatter": { "trailingCommas": "all" }, | ||
| "parser": { | ||
| "allowComments": true, | ||
| "allowTrailingCommas": true, | ||
| }, | ||
| }, | ||
| }, | ||
| ], | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
latest version of Biome JavaScript formatter
💡 Result:
Latest release: Biome CLI v2.3.8 (released Nov 27, 2025). [1]
Note: the npm package @biomejs/biome currently shows version 2.2.3 on the registry. [2]
Sources:
[1] GitHub releases — biomejs/biome (2.3.8).
[2] npm — @biomejs/biome package page.
Update Biome schema version to 2.2.3 or 2.3.8.
The configuration references schema version 2.2.0, which is outdated. The latest available versions are 2.3.8 (CLI) and 2.2.3 (npm package). Update the schema reference on line 2 to use a current version.
The rest of the configuration correctly enables EditorConfig integration and appropriately overrides JSON settings for VSCode files and JSONC to allow comments and trailing commas, aligning with the pre-commit hook using biome-format.
🤖 Prompt for AI Agents
In biome.jsonc around lines 1 to 17, the $schema currently references
"https://biomejs.dev/schemas/2.2.0/schema.json" which is outdated; update that
URL to a current schema version by replacing "2.2.0" with either "2.2.3" (npm
package) or "2.3.8" (CLI), e.g. "https://biomejs.dev/schemas/2.3.8/schema.json",
and save the file.
| ``` | ||
| +------------+---------+--------------------------+----------+---------------------------------+-------------+ | ||
| | Name | Type | Envs | Features | Dependencies | Scripts | | ||
| +------------+---------+--------------------------+----------+---------------------------------+-------------+ | ||
| | hatch-test | virtual | hatch-test.py3.11-stable | dev | coverage-enable-subprocess==1.0 | cov-combine | | ||
| | | | hatch-test.py3.14-stable | test | coverage[toml]~=7.4 | cov-report | | ||
| | | | hatch-test.py3.14-pre | | pytest-mock~=3.12 | run | | ||
| | | | | | pytest-randomly~=3.15 | run-cov | | ||
| | | | | | pytest-rerunfailures~=14.0 | | | ||
| | | | | | pytest-xdist[psutil]~=3.5 | | | ||
| | | | | | pytest~=8.1 | | | ||
| +------------+---------+--------------------------+----------+---------------------------------+-------------+ | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Specify language for fenced code block containing ASCII table.
The table is rendered as a bare code block without a language identifier. Specify text or another appropriate language to ensure consistent rendering.
🔎 Proposed fix
- ```
+ ```text
+------------+---------+--------------------------+----------+---------------------------------+-------------+
| Name | Type | Envs | Features | Dependencies | Scripts |
...
- ```
+ ```text📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ``` | |
| +------------+---------+--------------------------+----------+---------------------------------+-------------+ | |
| | Name | Type | Envs | Features | Dependencies | Scripts | | |
| +------------+---------+--------------------------+----------+---------------------------------+-------------+ | |
| | hatch-test | virtual | hatch-test.py3.11-stable | dev | coverage-enable-subprocess==1.0 | cov-combine | | |
| | | | hatch-test.py3.14-stable | test | coverage[toml]~=7.4 | cov-report | | |
| | | | hatch-test.py3.14-pre | | pytest-mock~=3.12 | run | | |
| | | | | | pytest-randomly~=3.15 | run-cov | | |
| | | | | | pytest-rerunfailures~=14.0 | | | |
| | | | | | pytest-xdist[psutil]~=3.5 | | | |
| | | | | | pytest~=8.1 | | | |
| +------------+---------+--------------------------+----------+---------------------------------+-------------+ | |
| ``` |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
61-61: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In docs/contributing.md around lines 61 to 73 the ASCII table fenced code block
has no language identifier; change the opening fence from ``` to ```text so the
block is rendered consistently (leave the closing ``` intact), ensuring the
table is treated as plain text in the renderer.
| hatch env find hatch-test.py3.14-stable | ||
| ``` | ||
|
|
||
| In case you are using VScode, now open the command palette (Ctrl+Shift+P) and search for `Python: Select Interpreter`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix capitalization: "VScode" and "vscode" → "VS Code".
The official product name is "VS Code" (Visual Studio Code), not "VScode" or "vscode".
🔎 Proposed fixes
- In case you are using VScode, now open the command palette (Ctrl+Shift+P) and search for `Python: Select Interpreter`.
+ In case you are using VS Code, now open the command palette (Ctrl+Shift+P) and search for `Python: Select Interpreter`.- In this future, this may become easier through a hatch vscode extension.
+ In this future, this may become easier through a hatch VS Code extension.Also applies to: 93-93
🧰 Tools
🪛 LanguageTool
[grammar] ~90-~90: Ensure spelling is correct
Context: ...y3.14-stable ``` In case you are using VScode, now open the command palette (Ctrl+Shi...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
In docs/contributing.md around lines 90 and 93, replace the incorrect product
name variants "VScode" and "vscode" with the official "VS Code"; update the
sentence text to read something like: open the command palette (Ctrl+Shift+P)
and search for `Python: Select Interpreter` in VS Code, and then scan the rest
of the document for any other occurrences of "VScode" or "vscode" and
standardize them to "VS Code".
| such as requiring to install a lower version of a library your project depends on, | ||
| only because an outdated sphinx plugin pins an older version. | ||
|
|
||
| To initalize a virtual environment in the `.venv` directory of your project, simply run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix misspelling: "initalize" → "initialize".
🔎 Proposed fix
- To initalize a virtual environment in the `.venv` directory of your project, simply run
+ To initialize a virtual environment in the `.venv` directory of your project, simply run📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| To initalize a virtual environment in the `.venv` directory of your project, simply run | |
| To initialize a virtual environment in the `.venv` directory of your project, simply run |
🧰 Tools
🪛 LanguageTool
[grammar] ~106-~106: Ensure spelling is correct
Context: ...phinx plugin pins an older version. To initalize a virtual environment in the .venv di...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
In docs/contributing.md around line 106, the word "initalize" is misspelled;
update that token to "initialize" so the sentence reads "To initialize a virtual
environment in the `.venv` directory of your project, simply run".
| ```{note} | ||
| Remember to first install the package with `pip install -e '.[dev,test]'` | ||
| This package uses [pytest][] for automated testing. | ||
| Please write {doc}`scanpy:dev/testing` for every function added to the package. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incomplete Sphinx cross-reference syntax—please clarify the sentence.
Line 175 reads: "Please write {doc}scanpy:dev/testing for every function added to the package." This appears to be missing context. Did you intend to say something like "Please write tests as described in {doc}scanpy:dev/testing for every function added to the package"?
🤖 Prompt for AI Agents
In docs/contributing.md around line 175, the sentence "Please write
{doc}`scanpy:dev/testing` for every function added to the package." uses
incomplete Sphinx cross-reference syntax and lacks context; change it to a clear
instruction that points readers to the testing documentation and asks them to
write tests for new functions, for example rephrase to "Please write tests as
described in {doc}`scanpy:dev/testing` for every function added to the package."
ensuring the {doc}`...` role is retained and the sentence is grammatically
complete.
| Specify `vX.X.X` as a tag name and create a release. For more information, see [managing GitHub releases][]. This will automatically create a git tag and trigger a Github workflow that creates a release on PyPI. | ||
| Specify `vX.X.X` as a tag name and create a release. | ||
| For more information, see [managing GitHub releases][]. | ||
| This will automatically create a git tag and trigger a Github workflow that creates a release on [PyPI][]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix capitalization: "Github" → "GitHub".
The official spelling is "GitHub" (with capital H).
🔎 Proposed fix
- This will automatically create a git tag and trigger a Github workflow that creates a release on [PyPI][].
+ This will automatically create a git tag and trigger a GitHub workflow that creates a release on [PyPI][].📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| This will automatically create a git tag and trigger a Github workflow that creates a release on [PyPI][]. | |
| This will automatically create a git tag and trigger a GitHub workflow that creates a release on [PyPI][]. |
🧰 Tools
🪛 LanguageTool
[uncategorized] ~252-~252: The official name of this software platform is spelled with a capital “H”.
Context: ...atically create a git tag and trigger a Github workflow that creates a release on [PyP...
(GITHUB)
🤖 Prompt for AI Agents
In docs/contributing.md around line 252, the word "Github" is incorrectly
capitalized; change it to the official "GitHub" in the sentence "This will
automatically create a git tag and trigger a GitHub workflow that creates a
release on [PyPI][]."
| [tool.pytest] | ||
| strict = true | ||
| testpaths = [ "tests" ] | ||
| addopts = [ | ||
| "--import-mode=importlib", # allow using test files with same name | ||
| ] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incorrect pytest configuration section name.
The section [tool.pytest] should be [tool.pytest.ini_options]. Pytest does not recognize [tool.pytest] directly and will ignore these settings.
🔎 Proposed fix
-[tool.pytest]
-strict = true
-testpaths = [ "tests" ]
-addopts = [
- "--import-mode=importlib", # allow using test files with same name
-]
+[tool.pytest.ini_options]
+testpaths = [ "tests" ]
+addopts = [
+ "--import-mode=importlib", # allow using test files with same name
+]Note: strict = true is not a valid pytest ini option. If you intended strict marker mode, use --strict-markers in addopts.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| [tool.pytest] | |
| strict = true | |
| testpaths = [ "tests" ] | |
| addopts = [ | |
| "--import-mode=importlib", # allow using test files with same name | |
| ] | |
| [tool.pytest.ini_options] | |
| testpaths = [ "tests" ] | |
| addopts = [ | |
| "--import-mode=importlib", # allow using test files with same name | |
| ] |
🤖 Prompt for AI Agents
In pyproject.toml around lines 130 to 135, the pytest config section is
incorrectly named [tool.pytest]; change it to [tool.pytest.ini_options] so
pytest recognizes the settings, move the existing entries under that section,
and remove the invalid strict = true entry (if you meant strict marker checking
add --strict-markers to addopts instead).
cookiecutter-scversereleased v0.7.0.Changes
Changes
@flying-sheepin Switch to dependency groups scverse/cookiecutter-scverse#449@Zethsonin Use type instead of label for issue templates scverse/cookiecutter-scverse#444@flying-sheepin chore: use KaTeX Sphinx plugin scverse/cookiecutter-scverse#446Fixes
@ilia-katsin sphinx conf.py: use project instead of project_name scverse/cookiecutter-scverse#440@flying-sheepin Fix workflow badge and link in readme scverse/cookiecutter-scverse#441@grstin Enable OIDC in Codecov action scverse/cookiecutter-scverse#457Additional remarks
add
skip: truetotemplate-repos.ymlusing a PR or,if you never want to sync from the template again, delete the
.cruft.jsonfile in the root of your repository.Make sure to activate those apps if you haven't already.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.