Skip to content

ci: add weekly latest-deps test workflow#57

Merged
FBumann merged 2 commits intomainfrom
ci/latest-deps-workflow
Mar 20, 2026
Merged

ci: add weekly latest-deps test workflow#57
FBumann merged 2 commits intomainfrom
ci/latest-deps-workflow

Conversation

@FBumann
Copy link
Owner

@FBumann FBumann commented Mar 20, 2026

Summary

  • Adds a scheduled GitHub Actions workflow that runs every Monday at 07:00 UTC
  • Tests against the latest versions of all dependencies (uv sync --upgrade) on Python 3.10 and 3.13
  • Prints dependency versions on success or failure for quick diagnosis

Test plan

  • Trigger manually via workflow_dispatch to verify it runs
  • Confirm dependency versions are printed in the logs

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Added a scheduled CI workflow that runs weekly (and can be triggered manually) to test the project against the latest dependency releases across multiple Python versions, runs the test suite with coverage, and reports installed versions of key packages regardless of test outcome.

Runs every Monday with `uv sync --upgrade` to catch upstream breakage
early, testing on Python 3.10 and 3.13.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link

coderabbitai bot commented Mar 20, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bedc59c7-05a1-43cb-ac34-1c6bb2480f69

📥 Commits

Reviewing files that changed from the base of the PR and between f6833d9 and a53969e.

📒 Files selected for processing (1)
  • .github/workflows/latest-deps.yml

📝 Walkthrough

Walkthrough

A new GitHub Actions workflow, .github/workflows/latest-deps.yml, was added to run weekly (cron) and on-demand; it installs Python (3.10, 3.13) via uv, syncs dependencies with uv --upgrade --extra dev, runs tests with coverage, and always reports installed xarray, plotly, and pandas versions.

Changes

Cohort / File(s) Summary
CI Workflow Configuration
​.github/workflows/latest-deps.yml
Added scheduled and manual workflow to test against latest dependencies on Python 3.10 and 3.13: checkout, astral-sh/setup-uv, uv python install, uv sync --extra dev --upgrade, uv run pytest --cov=xarray_plotly, and a final dependency-version report (`uv pip list

Sequence Diagram(s)

sequenceDiagram
    participant GitHub as GitHub Actions
    participant Runner as ubuntu-latest
    participant UV as astral-sh/setup-uv (uv)
    participant Py as Python runtime
    participant PyPI as Package index
    participant Tests as pytest

    GitHub->>Runner: schedule / workflow_dispatch
    Runner->>UV: setup-uv action
    UV->>Py: uv python install (3.10/3.13)
    Runner->>PyPI: uv sync --extra dev --upgrade (update deps)
    Runner->>Tests: uv run pytest --cov=xarray_plotly
    Tests-->>Runner: test results
    Runner->>Py: uv pip list | grep xarray/plotly/pandas || true
    Runner-->>GitHub: workflow complete (status + logs)
Loading

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

Poem

🐰 Hop, hop — CI springs to test,

Weekly checks to keep deps blessed.
Python paired and uv in tune,
Tests run bright beneath the moon.
A rabbit cheers — latest deps, get set! 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'ci: add weekly latest-deps test workflow' accurately and concisely describes the main change: adding a new GitHub Actions workflow for testing latest dependencies on a weekly schedule.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/latest-deps-workflow

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
.github/workflows/latest-deps.yml (2)

10-11: Consider adding a timeout to prevent the job from running indefinitely.

Adding timeout-minutes is a good practice for CI workflows to prevent jobs from hanging indefinitely and consuming runner resources.

⏱️ Optional enhancement
   test-latest:
     runs-on: ubuntu-latest
+    timeout-minutes: 30
     strategy:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/latest-deps.yml around lines 10 - 11, The CI job
"test-latest" currently has only "runs-on: ubuntu-latest" and may run
indefinitely; add a "timeout-minutes" key under the "test-latest" job (e.g.,
timeout-minutes: 30 or another appropriate value) so the workflow will
automatically cancel the job after the configured time; ensure the new key is
placed at the same indentation level as "runs-on" in the "test-latest" job
block.

9-14: Consider adding fail-fast: false to the matrix strategy.

Since this workflow diagnoses dependency compatibility issues, it would be helpful to see results for all Python versions even if one fails. This provides a more complete picture of which versions have issues with the latest dependencies.

📋 Optional enhancement
     strategy:
+      fail-fast: false
       matrix:
         python-version: ["3.10", "3.13"]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/latest-deps.yml around lines 9 - 14, Add "fail-fast:
false" to the matrix strategy for the "test-latest" job so all Python-version
matrix runs complete even if one fails; locate the "test-latest" job's
"strategy" -> "matrix" block in the workflow and insert fail-fast: false at the
same level as "matrix".
🤖 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/latest-deps.yml:
- Around line 31-33: The "Print dependency versions" workflow step uses `uv pip
list | grep -iE "xarray|plotly|pandas"` which will cause the step to fail if
grep finds no matches; update the step's run command to append `|| true` so the
pipeline treats the command as informational and always succeeds (i.e., modify
the run for the "Print dependency versions" step to end with `|| true`).

---

Nitpick comments:
In @.github/workflows/latest-deps.yml:
- Around line 10-11: The CI job "test-latest" currently has only "runs-on:
ubuntu-latest" and may run indefinitely; add a "timeout-minutes" key under the
"test-latest" job (e.g., timeout-minutes: 30 or another appropriate value) so
the workflow will automatically cancel the job after the configured time; ensure
the new key is placed at the same indentation level as "runs-on" in the
"test-latest" job block.
- Around line 9-14: Add "fail-fast: false" to the matrix strategy for the
"test-latest" job so all Python-version matrix runs complete even if one fails;
locate the "test-latest" job's "strategy" -> "matrix" block in the workflow and
insert fail-fast: false at the same level as "matrix".

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7e125dc1-c494-4ba3-a7e9-46222f239513

📥 Commits

Reviewing files that changed from the base of the PR and between 3292f3e and f6833d9.

📒 Files selected for processing (1)
  • .github/workflows/latest-deps.yml

…kflow

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@FBumann FBumann merged commit dac0a04 into main Mar 20, 2026
8 of 9 checks passed
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.

1 participant