chore: Update pyproject & ci tasks to current SnakeDeploy template#28
chore: Update pyproject & ci tasks to current SnakeDeploy template#28jonasfreimuth wants to merge 5 commits intosnakemake:mainfrom
Conversation
📝 WalkthroughWalkthroughAdds Pixi-based CI/CD configuration: introduces Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
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.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.github/workflows/ci.yml (1)
46-58: Minor inconsistency: checkout step missingnamelabel.The checkout step on line 49 omits the
name: Check out the codelabel that other jobs use. Consider adding it for consistency.🔧 Proposed fix
test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - name: Check out the code + uses: actions/checkout@v6🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/ci.yml around lines 46 - 58, The checkout step in the "test" job is missing a human-readable name label for consistency; add a `name` key (e.g., "Check out the code") to the step that uses actions/checkout@v6 so the step matches naming style used in other jobs and improves readability in CI logs; update the step that currently reads `- uses: actions/checkout@v6` to include the name alongside the uses entry.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/release-please.yml:
- Around line 8-9: The PYTHON_VERSION environment variable in the workflow env
block is unquoted (PYTHON_VERSION: 3.11) which YAML may parse as a float; update
the env key so the value is a string by quoting it (e.g., set PYTHON_VERSION to
"3.11") to ensure it is not truncated or misparsed; locate the env block and the
PYTHON_VERSION entry in the release-please.yml and change the value to a quoted
string.
- Around line 32-36: Remove the unsupported python-version input from the "Setup
pixi" step using the prefix-dev/setup-pixi action: locate the job step that uses
prefix-dev/setup-pixi (named "Setup pixi") and delete the python-version: ${{
env.PYTHON_VERSION }} line (and its key if present) so only supported inputs
like cache remain; manage Python versions via pixi.toml or pyproject.toml
instead.
---
Nitpick comments:
In @.github/workflows/ci.yml:
- Around line 46-58: The checkout step in the "test" job is missing a
human-readable name label for consistency; add a `name` key (e.g., "Check out
the code") to the step that uses actions/checkout@v6 so the step matches naming
style used in other jobs and improves readability in CI logs; update the step
that currently reads `- uses: actions/checkout@v6` to include the name alongside
the uses entry.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e3ba206f-d060-41ef-8468-6d9665c42826
⛔ Files ignored due to path filters (2)
pixi.lockis excluded by!**/*.lockpyproject.tomlis excluded by!pyproject.toml
📒 Files selected for processing (5)
.gitattributes.github/workflows/ci.yml.github/workflows/release-please.yml.gitignoretests/test_plugin.py
| - name: Setup pixi | ||
| uses: prefix-dev/setup-pixi@v0 | ||
| with: | ||
| python-version: "3.11" | ||
|
|
||
| - name: Install poetry | ||
| run: pip install poetry | ||
| cache: true | ||
| python-version: ${{ env.PYTHON_VERSION }} |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Does prefix-dev/setup-pixi action support python-version parameter?
💡 Result:
No. prefix-dev/setup-pixi does not have a python-version input—its supported inputs are defined in action.yml, and python-version is not one of them. [1]
If you want a specific Python version, set it in your Pixi environment (e.g., python = ">=3.11" in pixi.toml/pyproject.toml) and let pixi install resolve it. [2]
Sources: [1], [2]
Remove the unsupported python-version parameter from setup-pixi.
The prefix-dev/setup-pixi action does not support a python-version input parameter. Python version should be managed through your pixi.toml or pyproject.toml configuration instead (e.g., python = ">=3.11"). The parameter at lines 35–36 will be silently ignored and should be removed.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.github/workflows/release-please.yml around lines 32 - 36, Remove the
unsupported python-version input from the "Setup pixi" step using the
prefix-dev/setup-pixi action: locate the job step that uses
prefix-dev/setup-pixi (named "Setup pixi") and delete the python-version: ${{
env.PYTHON_VERSION }} line (and its key if present) so only supported inputs
like cache remain; manage Python versions via pixi.toml or pyproject.toml
instead.
There was a problem hiding this comment.
Pull request overview
This PR migrates the project from a Poetry-based setup to a Pixi-based development/CI workflow (SnakeDeploy template), and introduces a basic test suite for the executor plugin.
Changes:
- Switch packaging metadata to PEP 621 (
[project]) and move builds tohatchling. - Add Pixi workspace config (including
pixi.lock) and update CI/release workflows to run viapixi. - Add plugin workflow tests under
tests/.
Reviewed changes
Copilot reviewed 4 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
tests/test_plugin.py |
Adds workflow-based tests for the executor plugin. |
pyproject.toml |
Migrates project metadata/build backend and adds Pixi environments/tasks. |
pixi.lock |
Adds the Pixi lockfile for reproducible environments. |
.gitignore |
Ignores Pixi environment directory contents. |
.github/workflows/ci.yml |
Reworks CI jobs to run formatting/lint/typecheck/tests via Pixi. |
.github/workflows/release-please.yml |
Updates release/publish workflow to build/check via Pixi and publish via PyPI action. |
.gitattributes |
Marks pixi.lock as generated/binary-ish for merges and linguist. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
For consistency with current plugin template.
7e513d8 to
528e8cc
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/ci.yml:
- Line 20: CI workflow is invoking Pixi tasks that live only under the dev
feature, so update each pixi run invocation (the commands calling format, lint,
typecheck, test, coverage-report) to select the dev environment by adding "-e
dev" before the task name (e.g., change the "pixi run format --check" invocation
used in the workflow and the analogous invocations for lint, typecheck, test,
and coverage-report to use "pixi run -e dev ...") so Pixi will find the tasks
defined under [tool.pixi.feature.dev.tasks].
In @.github/workflows/release-please.yml:
- Around line 17-22: Add explicit workflow permissions for the release-please
step: in the workflow YAML ensure the job (or workflow) defines permissions
including at least "contents: write" and "pull-requests: write" so the step
using GoogleCloudPlatform/release-please-action@v3 (id: release) can create
releases and PRs; update the permissions block to grant those two write
permissions rather than relying on defaults.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 06732015-85f7-485d-9189-4989ff151647
⛔ Files ignored due to path filters (2)
pixi.lockis excluded by!**/*.lockpyproject.tomlis excluded by!pyproject.toml
📒 Files selected for processing (6)
.gitattributes.github/workflows/ci.yml.github/workflows/release-please.yml.gitignoresrc/snakemake_executor_plugin_cluster_generic/__init__.pytests/test_plugin.py
🚧 Files skipped from review as they are similar to previous changes (1)
- .gitignore
fb21c36 to
b716716
Compare
For ease of development. Done by copying current Snakedeploy scaffolding. This also means using different pacakges for dev tasks. Due to the latter, test coverage seems to have gone down to just above 68.9.
Using names from current SnakeDeploy template.
Just for consistency.
b716716 to
40c24c2
Compare
There was a problem hiding this comment.
♻️ Duplicate comments (1)
.github/workflows/release-please.yml (1)
33-36:⚠️ Potential issue | 🟡 MinorRemove unsupported
python-versioninput fromsetup-pixi.At Line 36,
python-versionis not a supported input forprefix-dev/setup-pixi@v0, so it is ignored.🔧 Proposed fix
- name: Setup pixi uses: prefix-dev/setup-pixi@v0 with: cache: true - python-version: ${{ env.PYTHON_VERSION }}#!/bin/bash set -euo pipefail # Verify supported inputs for setup-pixi v0 curl -fsSL https://raw.githubusercontent.com/prefix-dev/setup-pixi/v0/action.yml \ | awk '/^inputs:/,/^runs:/'🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/release-please.yml around lines 33 - 36, Remove the unsupported input by deleting the python-version line under the uses: prefix-dev/setup-pixi@v0 step (leave cache: true), i.e., remove the input named python-version so the workflow only passes supported inputs to setup-pixi; verify by checking action.yml for prefix-dev/setup-pixi@v0 if you need to confirm allowed inputs.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In @.github/workflows/release-please.yml:
- Around line 33-36: Remove the unsupported input by deleting the python-version
line under the uses: prefix-dev/setup-pixi@v0 step (leave cache: true), i.e.,
remove the input named python-version so the workflow only passes supported
inputs to setup-pixi; verify by checking action.yml for prefix-dev/setup-pixi@v0
if you need to confirm allowed inputs.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 277fe278-b3cc-4ec2-bbd4-607f48a35e55
⛔ Files ignored due to path filters (2)
pixi.lockis excluded by!**/*.lockpyproject.tomlis excluded by!pyproject.toml
📒 Files selected for processing (6)
.gitattributes.github/workflows/ci.yml.github/workflows/release-please.yml.gitignoresrc/snakemake_executor_plugin_cluster_generic/__init__.pytests/test_plugin.py
✅ Files skipped from review due to trivial changes (2)
- src/snakemake_executor_plugin_cluster_generic/init.py
- .gitattributes
🚧 Files skipped from review as they are similar to previous changes (1)
- .gitignore
To have Pixi available for easier development.
Summary by CodeRabbit
Chores
Bug Fixes