|
| 1 | +--- |
| 2 | +name: graalpython-rota |
| 3 | +description: Run GraalPy ROTA maintenance workflows for (1) import update pull requests and (2) triage of recent periodic job failures in Jira. Use when asked to perform or guide recurring ROTA tasks from `docs/contributor/ROTA.md`, including branch setup, `mx` update commands, PR creation with reviewers/gates via `ol-cli bitbucket`, and date-bounded periodic-failure issue triage via `ol-cli jira`. |
| 4 | +--- |
| 5 | + |
| 6 | +# GraalPy ROTA |
| 7 | + |
| 8 | +## Overview |
| 9 | +Execute recurring GraalPy ROTA tasks with exact commands and strict output structure. Prefer the procedures in this skill, and use `docs/contributor/ROTA.md` as the detailed source text. |
| 10 | + |
| 11 | +## Source Of Truth |
| 12 | +- Primary: `docs/contributor/ROTA.md` |
| 13 | +- If this skill workflow differs from the primary source, follow `docs/contributor/ROTA.md`. |
| 14 | + |
| 15 | +## Choose Workflow |
| 16 | +- Use `Import update` when asked to refresh imports and open the standard PR. |
| 17 | +- Use `Recent periodic issues` when asked to triage periodic job failures in Jira. |
| 18 | + |
| 19 | +## Import Update Workflow |
| 20 | +1. Create a branch from latest `master`: |
| 21 | +```bash |
| 22 | +git checkout master |
| 23 | +git pull --ff-only |
| 24 | +git checkout -b "update/GR-21590/$(date +%d%m%y)" |
| 25 | +``` |
| 26 | +2. Update graal import: |
| 27 | +```bash |
| 28 | +mx python-update-import |
| 29 | +``` |
| 30 | +3. Update CPython unittest whitelist and inspect diff for plausibility. Expect mostly additions, not removals: |
| 31 | +```bash |
| 32 | +mx --dy /graalpython-enterprise python-update-unittest-tags |
| 33 | +``` |
| 34 | +4. Create PR with description `[GR-21590] Import update`. |
| 35 | +5. Use `ol-cli bitbucket` to create PR, start gates, and set reviewers: |
| 36 | +- `tim.felgentreff@oracle.com` |
| 37 | +- `michael.simacek@oracle.com` |
| 38 | +- `stepan.sindelar@oracle.com` |
| 39 | +6. Fix gate failures and push updates until gates pass. |
| 40 | + |
| 41 | +## Recent Periodic Issues Workflow |
| 42 | +1. Verify creator identity mapping: |
| 43 | +- Treat `ol-automation_ww` as Jira username `olauto`. |
| 44 | +- If query returns zero results, test both identities, then keep `creator = olauto` once verified. |
| 45 | + |
| 46 | +2. Filter to recent periodic job failures, excluding in progress or closed. |
| 47 | +- Default to the last 14 days unless user specifies otherwise. |
| 48 | +- Always state concrete start/end calendar dates in the response. |
| 49 | +```bash |
| 50 | +ol-cli jira search --json --max 100 \ |
| 51 | + -f key,summary,creator,created,status,labels,components,assignee \ |
| 52 | + -jql "project = GR AND component = Python AND creator = olauto AND labels = periodic-job-failures AND created >= -14d AND status != Closed AND status != 'In Progress' ORDER BY created DESC" |
| 53 | +``` |
| 54 | + |
| 55 | +3. Fetch shortlisted issue details with `get-issue`: |
| 56 | +```bash |
| 57 | +ol-cli jira get-issue --json -id GR-XXXX \ |
| 58 | + | jq '{key, summary:.fields.summary, status:.fields.status.name, created:.fields.created, labels:.fields.labels, assignee:(.fields.assignee.name // null), description:.fields.description, comments:(.fields.comment.comments | map({author:.author.name, created, body}))}' |
| 59 | +``` |
| 60 | + |
| 61 | +7. Convert findings into an implementation-ready plan per issue: |
| 62 | +- Extract failing job name, error signature, and log clue. |
| 63 | +- Map probable source area in repo. |
| 64 | +- Propose first verification command. |
| 65 | +- Define exit criteria to close ticket. |
| 66 | +- Prepare temporary git worktree per issue with branch naming based on Jira key plus very short hyphenated description. |
| 67 | + |
| 68 | +## Output Contract For Periodic Triage |
| 69 | +Return exactly: |
| 70 | +1. Query scope used (component, creator, time window, status filter). |
| 71 | +2. Count summary (total recent automation issues vs periodic failures). |
| 72 | +3. Issue list with key, created date, summary, status. |
| 73 | +4. Per-issue plan with: |
| 74 | +- Hypothesis |
| 75 | +- First code locations to inspect |
| 76 | +- First reproducibility command |
| 77 | +- Exit criteria for closing ticket |
| 78 | +5. Recommended implementation order. |
| 79 | + |
| 80 | +## Guardrails |
| 81 | +- State concrete dates for recency windows. |
| 82 | +- Prefer `--json` and explicit `-f` fields in searches. |
| 83 | +- Use `get-issue` only for shortlisted issues to keep output small. |
0 commit comments