docs(revdep): Analyze and document reverse dependency problems for igraph 2.3.0#2500
docs(revdep): Analyze and document reverse dependency problems for igraph 2.3.0#2500
Conversation
Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
|
@copilot: Check if passing |
Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
Yes! The mechanism: Updated analysis and examples to document this workaround. Commit: 3351e96 |
|
@copilot: Create a script that uses |
Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
Created
Usage: Outputs to
See |
|
@copilot: Determine now if the package is on GitHub or not, the script should either create an issue or draft an e-mail, not both. |
Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
Updated script to determine upfront if package is on GitHub:
Previously created 6 files (3 issue templates + 3 emails), now creates only what's needed. Commit: 1ad205a |
|
@copilot: Updated results. Reassess. Simplify the reproducible scripts: avoid |
- Simplified example scripts: removed cat() in favor of comments, removed tryCatch() - Created markdown output files (.md) for reprex-style documentation - Added examples for 3 new issues: DiagrammeR, manynet, sfnetworks - Updated problems-analysis.md with all 6 issues - All examples now follow clean, runnable format suitable for reprex Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
Updated analysis for new revdep results. Simplified examples per feedback: Changes:
New issues added:
All 6 issues now documented with simplified R scripts and markdown outputs. Commit: eead493 |
|
For the rSpectral workaround, do we want to implement an actual non hacky solution in igraph? Or to document and test this workaround? Just so we don't recommend a risky solution to a revdep. |
| The script will: | ||
|
|
||
| 1. Check if `gh` CLI is available | ||
| 2. For each package (Cascade, jewel, rSpectral): |
There was a problem hiding this comment.
what do these three names mean?
There was a problem hiding this comment.
not suitable for long-term docs
There was a problem hiding this comment.
Replaced the hardcoded package list with a generic description. The script now has a notify_package() helper and each section is documented individually; the README explains that the list needs updating per revdep cycle. Commit: 5fe6b68
|
|
||
| 1. Check if `gh` CLI is available | ||
| 2. For each package (Cascade, jewel, rSpectral): | ||
| - Check if the GitHub repository is accessible |
There was a problem hiding this comment.
from what data? DESCRIPTION only?
There was a problem hiding this comment.
Clarified in README that package information (GitHub URL, maintainer email) is sourced from the CRAN package metadata (DESCRIPTION fields). The script now has the emails hardcoded alongside the GitHub URLs in each notify_package() call, with a comment noting they come from CRAN. Commit: 5fe6b68
| - If accessible: Create a GitHub issue directly using `gh issue create` | ||
| - If not accessible: Create an email draft in `notifications/` | ||
|
|
||
| The script determines upfront which action to take and only creates the appropriate output (either GitHub issue OR email draft, not both). |
There was a problem hiding this comment.
I'm wondering whether we should still send an email when there's an issue, but the email would link to the issue.
There was a problem hiding this comment.
The current design files either a GitHub issue or an email draft (not both) since the email draft is primarily a fallback for repos without GitHub access. If you'd like an additional email that links to the GitHub issue when one is filed, that's a reasonable extension — the create_github_issue() function already captures the issue URL via $issue_url, so a follow-up email could be generated from there. Happy to add that if wanted. Commit: 5fe6b68
|
|
||
| - `{Package}-email.txt` - Complete email draft with subject and body | ||
|
|
||
| For packages with accessible GitHub repositories, issues are created directly and no local files are saved. |
There was a problem hiding this comment.
are links to issues stored somewhere? they could be useful for follow-up.
Also, are the issues opened on behalf of the person running the script? This should be specified in the docs, as it is important to know who will get notifications.
There was a problem hiding this comment.
Issue URLs are now logged to notifications/issue-log.txt after each successful gh issue create. The README now also documents that issues are opened on behalf of the currently authenticated gh user (important for knowing who receives reply notifications). Commit: 5fe6b68
| 1. Review the email content in `notifications/{Package}-email.txt` | ||
| 2. Copy the content | ||
| 3. Create a new email in your email client | ||
| 4. Update the "To:" field with the actual maintainer email (check CRAN package page) |
There was a problem hiding this comment.
then this email address should be in notifications/{Package}-email.txt, not hard to automate, and a time gain for users.
There was a problem hiding this comment.
Done. The create_email_draft() function now writes a To: <email> line using the maintainer email passed from each notify_package() call. The email is sourced from CRAN and hardcoded per-package in the script. Commit: 5fe6b68
| 2. Copy the content | ||
| 3. Create a new email in your email client | ||
| 4. Update the "To:" field with the actual maintainer email (check CRAN package page) | ||
| 5. Paste the subject and body |
There was a problem hiding this comment.
do we have an email address for igraph development that we could cc? or even use to send the emails? so that it's not a single team member who gets the answers.
There was a problem hiding this comment.
Added Cc: igraph-help@igraph.discourse.group to all email drafts (and defined IGRAPH_CC_EMAIL as a variable at the top of the script for easy editing). Commit: 5fe6b68
| - The repository may have issues disabled | ||
|
|
||
| ### "GitHub repository not accessible" | ||
| - The repository might be private |
There was a problem hiding this comment.
| - The repository might be private | |
| - The repository might be private | |
| - There might be no link to the repository in the package metadata |
|
@copilot: CRAN checks came back. Draft a response, referencing issues that we have already filed and discuss any new problems we haven't seen so far. |
…RAN results - NOTIFY-README.md: fix hardcoded package names, document data source, issue log, gh user auth, pre-filled To/Cc, igraph CC address, privacy-safe troubleshooting text - notify-maintainers.sh: log issue URLs, pre-fill maintainer emails, add CC, refactor to unified notify_package() helper, add DiagrammeR and sfnetworks sections - problems-analysis.md: update rSpectral to flag weights=numeric() as a hack not suitable for revdep advice; add rgph (investigation) and tmap.networks (cascade) - cran-response-draft.md: draft CRAN reply for igraph 2.3.0 pre-release check results Agent-Logs-Url: https://github.com/igraph/rigraph/sessions/97f632e7-d7ca-4bf0-956d-9f3e3a407e7d Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
Updated
... Draft CRAN response is in For the two new packages:
The draft covers all 7 flagged packages, categorizes them by root cause, and notes the actions taken / planned. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot: Also provide a short note without detailed analysis. The important part is that we have reached out to maintainers, when and how. Add links to issues where available. The rgph failure is a Java problem, unrelated to our changes. |
…s Java false positive Agent-Logs-Url: https://github.com/igraph/rigraph/sessions/8bffd8d6-1eae-4b0f-a55d-c145a1a73230 Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
Updated |
|
@copilot: Use a bullet list, not tables. Use the date at which the issue was created, all issues have been created months ago. |
…o Nov 2025 Agent-Logs-Url: https://github.com/igraph/rigraph/sessions/7e84380d-3c7e-45d1-9deb-0341ec1805e8 Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
Done in c37152a. Converted to a bullet list and updated all outreach dates to 2025-11-16 (when the issues were first filed). Placeholder issue URLs are included for each package to be replaced with actual links when sending. |
…draft Agent-Logs-Url: https://github.com/igraph/rigraph/sessions/da648823-0ada-48aa-8921-88046cfb7890 Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
|
@copilot: Draft an issue title and description for the Cascade repo. |
Agent-Logs-Url: https://github.com/igraph/rigraph/sessions/2d0f6ae6-b7d1-4811-a0ad-0ba9981b4d5b Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com>
Draft added in Title: Body: explains the warning, root cause (igraph 2.3.0 added |
Analyzed eight packages with newly broken checks (six from revdepcheck, two from the CRAN win-builder pre-release check for igraph 2.3.0) to determine root causes and assess whether issues stem from igraph bugs or downstream package issues.
Deliverables
revdep/problems-analysis.md: Root cause analysis, assessment, and recommendations for all eight issuesrevdep/examples/*.R: Simplified runnable minimal reproducible examples (nocat(), notryCatch())revdep/examples/*.md: Reprex-style markdown outputs showing expected results for each examplerevdep/examples/cascade-issue-draft.md: Ready-to-file GitHub issue title and description for the Cascade reporevdep/cran-response-draft.md: Concise bullet-list draft reply-all response to the CRAN teams' auto-check email for igraph 2.3.0, with outreach dates and issue links; notes rgph as a Java false positive unrelated to igraph changesrevdep/notify-maintainers.sh: Automation script to notify package maintainers via GitHub issues (usinggh) or email drafts; intelligent routing creates only one output per packagerevdep/NOTIFY-README.md: Documentation for using the notification scriptOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.