Skip to content

Auto update lib status#7074

Merged
youknowone merged 3 commits intoRustPython:mainfrom
ShaharNaveh:auto-update-lib-status
Feb 10, 2026
Merged

Auto update lib status#7074
youknowone merged 3 commits intoRustPython:mainfrom
ShaharNaveh:auto-update-lib-status

Conversation

@ShaharNaveh
Copy link
Contributor

@ShaharNaveh ShaharNaveh commented Feb 10, 2026

Fixes #7061

Summary by CodeRabbit

  • Chores
    • Added an automated workflow that runs on updates or manual triggers to gather library status, generate a formatted status report with current date, and post it to the project issue so compatibility and update information remain current and accessible.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 10, 2026

📝 Walkthrough

Walkthrough

Adds a new GitHub Actions workflow that runs on pushes to Lib/** or manual dispatch, clones RustPython and CPython with sparse-checkout, runs a Python-based scripts/update_lib todo update, and edits a specified GitHub issue with the generated body.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow
.github/workflows/update-libs-status.yaml
Adds a workflow triggered on pushes to Lib/** (on main) and workflow_dispatch. Checks out repos (sparse-checkout), sets Python version and ISSUE_ID env vars, writes a preformatted body.txt, runs scripts/update_lib todo, and updates the specified GitHub issue with the produced body.

Sequence Diagram(s)

sequenceDiagram
  participant Trigger as GitHub Event
  participant Actions as GitHub Actions
  participant RP as RustPython Repo
  participant CP as CPython Repo
  participant Script as update_lib (Python)
  participant API as GitHub Issues API

  Trigger->>Actions: push to main (Lib/**) / workflow_dispatch
  Actions->>RP: sparse checkout RustPython (clone subset)
  Actions->>CP: sparse checkout CPython (clone subset)
  Actions->>Script: run `scripts/update_lib todo` (env: PY_VER, ISSUE_ID)
  Script->>Actions: output body.txt
  Actions->>API: edit issue (ISSUE_ID) with body.txt
  API-->>Actions: confirm issue updated
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 I hopped through repos, clipped and neat,
Wrote a body, ran the script on repeat,
An issue updated with a cheerful thump—
Libraries tracked with a joyful jump! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: introducing a workflow to automatically update the library status tracking issue.
Linked Issues check ✅ Passed The workflow implements the core requirements from #7061: configurable issue ID, target CPython version support, and updates on Lib changes or schedule.
Out of Scope Changes check ✅ Passed The pull request only adds the GitHub Actions workflow file directly addressing the automation requirements from issue #7061; no unrelated changes detected.
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
  • Post copyable unit tests in a comment

No actionable comments were generated in the recent review. 🎉

🧹 Recent nitpick comments
.github/workflows/update-libs-status.yaml (3)

9-9: Consider adding workflow_dispatch inputs for flexibility.

The linked issue (#7061) mentions supporting configurable target issue ID and CPython version as workflow inputs. Adding optional inputs with defaults matching the current env vars would let maintainers trigger ad-hoc runs against a different issue or version without a code change.

Suggested change
   workflow_dispatch:
+    inputs:
+      python_version:
+        description: "CPython tag to compare against"
+        required: false
+        default: "v3.14.3"
+      issue_id:
+        description: "GitHub issue number to update"
+        required: false
+        default: "6839"

Then reference them as:

env:
  PYTHON_VERSION: ${{ inputs.python_version || 'v3.14.3' }}
  ISSUE_ID: ${{ inputs.issue_id || '6839' }}

43-47: Timezone is implicit — fine for display, just noting it's UTC.

GitHub Actions runners default to UTC. If the displayed timestamp should be explicit, you could use date -u or append UTC, but this is a nit.


81-82: No setup-python action — relies on system Python.

The ubuntu-latest runner ships Python 3.x, but its version can change when GitHub updates the image. If scripts/update_lib requires a specific minimum Python version or you want reproducibility, consider adding actions/setup-python. Otherwise this is fine for simplicity. Based on learnings, the maintainer prefers keeping workflows simple.


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
Contributor

@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

🤖 Fix all issues with AI agents
In @.github/workflows/update-libs-status.yaml:
- Line 17: The ISSUE_ID value in the workflow YAML is wrong (digit
transposition: "6389"); update the ISSUE_ID key to the correct issue number
"6839" so the workflow targets the same issue referenced by the PR and linked
issue `#7061`—locate the ISSUE_ID entry in the workflow file and replace the
existing string "6389" with "6839".
🧹 Nitpick comments (2)
.github/workflows/update-libs-status.yaml (2)

43-47: Nit: date output lacks a timezone indicator.

The timestamp will appear in the issue body without indicating it's UTC. Consider date -u +"%Y-%m-%d %H:%M:%S UTC" to make it unambiguous for readers.


66-66: Hardcoded "never" list in Copilot guideline will become stale.

When PYTHON_VERSION bumps to v3.14.4, this line will need manual updating to also exclude 3.14.3. Consider dynamically generating this or simplifying the hint to just reference the env var.

@youknowone youknowone merged commit 2edab98 into RustPython:main Feb 10, 2026
13 checks passed
youknowone pushed a commit to youknowone/RustPython that referenced this pull request Mar 22, 2026
@coderabbitai coderabbitai bot mentioned this pull request Mar 22, 2026
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.

Automate updating ticket of Upgrade python libraries

2 participants