From 5acb49758e883ffbaf86b9a682f8188bfa2023cb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:14:22 +0000 Subject: [PATCH 1/3] Initial plan From 87f6d9ab7f245414f0a2f0cc1b141013fa9b6364 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:25:47 +0000 Subject: [PATCH 2/3] Add comprehensive PR meta-review document Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com> --- PR_REVIEW.md | 621 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 621 insertions(+) create mode 100644 PR_REVIEW.md diff --git a/PR_REVIEW.md b/PR_REVIEW.md new file mode 100644 index 00000000000..4e9c7d705d9 --- /dev/null +++ b/PR_REVIEW.md @@ -0,0 +1,621 @@ +# Open PRs Meta-Review for igraph/rigraph + +**Generated:** 2026-01-22 +**Total Open PRs:** 55 (excluding PR #2524 and #2522 which are WIP for this task) + +## Table of Contents + +1. [Executive Summary](#executive-summary) +2. [High Priority - Ready or Near Ready](#high-priority---ready-or-near-ready) +3. [Active Development - Recent PRs (Oct 2025+)](#active-development---recent-prs-oct-2025) +4. [Documentation and Infrastructure](#documentation-and-infrastructure) +5. [Blocked or Awaiting Decisions](#blocked-or-awaiting-decisions) +6. [Stale PRs - Needs Attention or Closure](#stale-prs---needs-attention-or-closure) +7. [Dependency Map](#dependency-map) + +--- + +## Executive Summary + +### PR Status Overview + +- **Ready to merge (mergeable_state: clean)**: 2 PRs +- **Needs CI fixes (mergeable_state: unstable/blocked)**: ~45 PRs +- **Has merge conflicts (mergeable_state: dirty)**: 8 PRs +- **WIP/Draft PRs**: 50 PRs +- **Non-draft PRs**: 5 PRs + +### Key Observations + +1. **Mass October 2025 Activity**: ~30 PRs created by Copilot bot in late October 2025, focusing on API standardization, parameter naming, and exposing igraph 0.10 functions +2. **API Breaking Changes**: Many PRs involve breaking changes (parameter renames, default changes, return type changes) +3. **Code Generation Focus**: Multiple PRs around autogeneration and Stimulus framework improvements +4. **Very Old PRs**: Several PRs from 2023-2024 that may need rebasing or closing +5. **Common Themes**: + - Exposing new C library functions to R + - API consistency and standardization + - Parameter naming conventions + - Error handling improvements + - Test coverage expansion + +### Critical Decision Points + +- Many PRs depend on a "next" branch strategy for breaking changes +- Need to decide which API changes to bundle together +- Some PRs may be superseded by others (e.g., multiple parameter naming PRs) + +--- + +## High Priority - Ready or Near Ready + +### Ready to Merge + +#### PR #2515: `feat: improve formatting of error messages from C` +- **Status**: ✅ Non-draft, mergeable_state: clean +- **Created**: 2026-01-06 by @maelle +- **Comments**: 7, Review comments: 3 +- **Description**: Improves error message formatting from C library (fixes #2202) +- **Recommendation**: **MERGE NOW** - Clean state, has reviews, addresses a specific issue +- **Changes**: 175 additions, 81 deletions, 5 files + +#### PR #2513: `vendor: Update vendored sources` +- **Status**: Non-draft, mergeable_state: unstable (CI issues) +- **Created**: 2025-12-28 by github-actions[bot] +- **Description**: Automated vendoring update +- **Recommendation**: **MERGE AFTER CI FIXES** - Small change (4 additions, 2 deletions) +- **Changes**: 4 additions, 2 deletions, 2 files + +### Near Ready - Minor Issues + +#### PR #2485: `feat: autogenerate 108 non-callback functions` +- **Status**: Non-draft but mergeable_state: blocked +- **Created**: 2025-11-04 by @Copilot +- **Comments**: 13, Review comments: 4 +- **Description**: Major PR autogenerating 108 functions, reducing IGNORE specs from 128 to 19 +- **Recommendation**: **NEEDS REVIEW** - Large change, very comprehensive, has detailed progress tracking +- **Changes**: 13,484 additions, 3,875 deletions, 7 files +- **Notes**: All tests passing according to PR description, comprehensive test coverage added + +#### PR #2417: `Add make_hypercube()` +- **Status**: Non-draft (unusual - most similar PRs are drafts) +- **Created**: 2025-10-26 by @Copilot +- **Description**: Exposes hypercube graph generator +- **Recommendation**: Review as part of "expose igraph 0.10 functions" batch +- **Potential Group**: Part of graph constructors batch (see #2410, #2418, #2419) + +--- + +## Active Development - Recent PRs (Oct 2025+) + +This section contains ~30 PRs created in October 2025, primarily by the Copilot bot, focusing on API improvements and igraph 0.10 feature exposure. + +### API Standardization & Parameter Naming + +These PRs aim to create consistent naming conventions across the API. **Likely interdependent** and should be reviewed together. + +#### PR #2458: Standardize vertex selector parameter name to `vids` +- **Created**: 2025-10-28, Draft +- **Recommendation**: Bundle with other parameter naming PRs +- **May conflict with**: #2450 (contradictory naming - one says `vids`, other says `vertices`) + +#### PR #2456: Standardize algorithm parameter names from `algo`/`method` to `algorithm` +- **Created**: 2025-10-28, Draft +- **Recommendation**: Part of naming standardization batch + +#### PR #2450: Standardize API parameter naming: `nodes` → `n`, `vids` → `vertices` +- **Created**: 2025-10-27, Draft +- **⚠️ CONFLICT**: Contradicts #2458 which standardizes TO `vids` +- **Recommendation**: **RESOLVE CONFLICT** - Decide on `vids` vs `vertices` first + +### Breaking Changes & Deprecations + +#### PR #2457: `fix: Add deprecation warnings for inconsistent mode parameter defaults` +- **Created**: 2025-10-28, Draft +- **Recommendation**: Should go in breaking change release (likely "next" branch) + +#### PR #2455: `fix: Return parent as numeric vector in bfs() and dfs() instead of igraph.vs` +- **Created**: 2025-10-28, Draft +- **Type**: Breaking change +- **Recommendation**: Bundle with other breaking changes for next major release + +#### PR #2453: `feat: make graph constructors default to undirected for consistency` +- **Created**: 2025-10-28, Draft +- **Type**: Breaking change +- **Recommendation**: Major breaking change, needs careful consideration + +#### PR #2452: `feat: error when adding named vertices to non-empty unnamed graphs` +- **Created**: 2025-10-28, Draft +- **Type**: Breaking change (new error conditions) +- **Recommendation**: Part of consistency improvements + +### New Feature Exposure (igraph 0.10 functions) + +These PRs expose new functionality from the underlying igraph C library. + +#### PR #2410: `feat: expose igraph 0.10 functions` +- **Created**: 2025-10-26, Draft +- **Functions**: `any_mutual()`, `invalidate_cache()`, and 8 generator functions +- **Recommendation**: **COORDINATE** with related feature PRs (#2417-2420, #2426) + +#### PR #2420: `Expose igraph_degree_correlation_vector() as knnk()` +- **Created**: 2025-10-26, Draft +- **Recommendation**: Part of igraph 0.10 feature batch + +#### PR #2419: `Add make_tri_lattice()` (triangular lattice generator) +- **Created**: 2025-10-26, Draft +- **Group**: Graph constructors + +#### PR #2418: `feat: add make_hex_lattice() and hex_lattice() functions` +- **Created**: 2025-10-26, Draft +- **Group**: Graph constructors + +#### PR #2417: `Add make_hypercube()` +- **Created**: 2025-10-26, Non-draft +- **Group**: Graph constructors + +#### PR #2411: `feat: Add graph_join() function to R interface` +- **Created**: 2025-10-26, Draft +- **Recommendation**: Part of igraph 0.10 feature batch + +#### PR #2408: `feat: Expose widest paths functions` +- **Created**: 2025-10-26, Draft +- **Functions**: `widest_paths()` and `widest_path_widths()` +- **Recommendation**: Part of igraph 0.10 feature batch + +#### PR #2404: `feat: expose mycielskian() and make_mycielski_graph()` +- **Created**: 2025-10-26, Draft +- **Recommendation**: Part of graph constructors batch + +#### PR #2445: `feat: expose igraph_motifs_randesu_callback() to R` +- **Created**: 2025-10-27, Draft +- **Purpose**: Efficient motif sampling +- **Recommendation**: Review separately - involves callbacks + +#### PR #2426: `feat: add as_veincidence_matrix()` +- **Created**: 2025-10-26, Draft +- **Description**: Vertex-edge incidence matrices +- **Recommendation**: Part of utility functions batch + +### Bug Fixes & Improvements + +#### PR #2432: `fix: Support character labels in assortativity_nominal()` +- **Created**: 2025-10-26, Draft +- **Recommendation**: Small fix, should be easy to merge + +#### PR #2427: `fix: biconnected_components() returns invalid result fields` +- **Created**: 2025-10-26, Draft +- **Type**: Bug fix +- **Recommendation**: Should be merged relatively soon + +#### PR #2441: `fix: remove problematic defaults from sample_last_cit() parameters` +- **Created**: 2025-10-26, Draft +- **Type**: API fix +- **Recommendation**: Part of API cleanup batch + +#### PR #2440: `feat: add as.vector parameter to as_edgelist()` +- **Created**: 2025-10-26, Draft +- **Recommendation**: Small enhancement, low risk + +#### PR #2436: `feat: standardize optional vertex parameters to use NULL default` +- **Created**: 2025-10-26, Draft +- **Recommendation**: Part of API standardization + +### Infrastructure & Dependencies + +#### PR #2431: `Use vctrs for vector recycling` +- **Created**: 2025-10-26, Draft +- **Type**: Infrastructure change (new dependency) +- **Recommendation**: **NEEDS CAREFUL REVIEW** - Adds new dependency + +### Comparison & Review PRs + +#### PR #2421: `Changes between main and next for review` +- **Created**: 2025-10-26 by @krlmlr, Draft +- **Purpose**: Comparing branches for release planning +- **Recommendation**: **REVIEW ONLY** - Not meant to be merged as-is + +### Work In Progress + +#### PR #2439: `[WIP] Fix functions ignoring return.vs.es option` +- **Created**: 2025-10-26, Draft +- **Status**: Explicitly WIP +- **Recommendation**: Wait for author to complete + +#### PR #2437: `test: Snapshot updates for rcc-smoke (null)` +- **Created**: 2025-10-26, Draft by github-actions[bot] +- **Recommendation**: Automated test updates, review and merge if valid + +--- + +## Documentation and Infrastructure + +### Documentation + +#### PR #2518: `Automatic linking to C docs` +- **Status**: Draft, mergeable_state: dirty (merge conflicts) +- **Created**: 2026-01-13 by @maelle +- **Comments**: 0, Review comments: 1 +- **Description**: POC for automatic linking to C documentation +- **Changes**: 1,931 additions, 387 deletions, 520 files +- **Recommendation**: **NEEDS REBASE** - Large documentation improvement, has conflicts +- **Notes**: Based on treesitter for finding function calls + +#### PR #2500: `docs(revdep): Analyze and document reverse dependency problems` +- **Created**: 2025-11-16 by @Copilot, Draft +- **Recommendation**: Important for CRAN releases, should be prioritized + +#### PR #1453: `docs: add example for consensus_tree()` +- **Created**: 2024-08-20, Draft +- **Age**: 17 months old +- **Recommendation**: Small doc addition, should be easy to merge or close + +### Build & Infrastructure + +#### PR #2469: `fix: update wrapper functions for C API parameter changes` +- **Created**: 2025-11-01 by @Copilot, Draft +- **Recommendation**: Likely needed for C library update + +#### PR #1577: `chore: Add checks to generated code` +- **Created**: 2024-11-07, Non-draft +- **Labels**: blocked +- **Age**: 14 months old +- **Recommendation**: **BLOCKED** - Resolve blocker or close + +#### PR #1559: `chore: update arpack to arpack-ng 3.9.1` +- **Created**: 2024-10-21, Draft +- **Labels**: hackathon-topic +- **Age**: 15 months old +- **Recommendation**: **NEEDS DECISION** - Dependency update, may need rebasing + +#### PR #1871: `chore: fix with {flir}` +- **Created**: 2025-06-10, Draft +- **Labels**: hackathon-topic, release-followup +- **Age**: 7 months old +- **Recommendation**: Review or close + +### Deprecation & Cleanup + +#### PR #2187: `chore: remove console() and tkplot()` +- **Created**: 2025-10-03, Non-draft +- **Labels**: release-followup +- **Age**: 3 months old +- **Recommendation**: Breaking change, needs to go in next major release + +#### PR #2002: `chore: rm some tk stuff` +- **Created**: 2025-07-22, Draft +- **Labels**: hackathon-topic, release-followup +- **Recommendation**: Related to #2187, bundle together + +#### PR #1502: `chore: stricter deprecation for layout.spring() and layout.svd()` +- **Created**: 2024-09-10, Draft +- **Labels**: lifecycle +- **Age**: 16 months old +- **Recommendation**: Part of deprecation cycle, review or close + +--- + +## Blocked or Awaiting Decisions + +### Explicitly Blocked + +#### PR #1577: `chore: Add checks to generated code` +- **Created**: 2024-11-07, Non-draft +- **Labels**: ⛔ blocked +- **Age**: 14 months old +- **Recommendation**: **RESOLVE BLOCKER OR CLOSE** + +#### PR #1401: `test: Test adding vertex names` +- **Created**: 2024-06-11, Draft +- **Labels**: ⛔ blocked +- **Age**: 19 months old +- **Recommendation**: **RESOLVE BLOCKER OR CLOSE** + +### Needs Design Decisions + +#### PR #1971: `[WIP] Adding vertex names when a named and unnamed graph are combined?` +- **Created**: 2025-07-10, Draft +- **Status**: Explicitly WIP, design question +- **Age**: 6 months old +- **Recommendation**: **NEEDS DESIGN DECISION** - How should graph combination handle names? + +#### PR #2375: `[WIP] Remove .Call() usage from user code` +- **Created**: 2025-10-25, Draft +- **Age**: 3 months old +- **Recommendation**: **NEEDS REVIEW** - Infrastructure improvement + +### Stimulus/Code Generation + +#### PR #2127: `chore: start work on community_leading_eigenvector()` +- **Created**: 2025-09-08, Draft +- **Labels**: stimulus +- **Age**: 4 months old +- **Recommendation**: May be superseded by #2485 + +#### PR #2100: `chore: autogenerate igraph_incident()` +- **Created**: 2025-09-01, Non-draft +- **Labels**: stimulus, hackathon-topic +- **Age**: 4 months old +- **Recommendation**: May be superseded by #2485 + +--- + +## Stale PRs - Needs Attention or Closure + +### Very Old (2023-2024) + +#### PR #758: `feat!: Accept numeric edge IDs` +- **Created**: 2023-04-02, Draft +- **Age**: **33 months old** 🔴 +- **Type**: Breaking change +- **Recommendation**: **REVIEW OR CLOSE** - Very old breaking change, may be outdated + +#### PR #942: `fix: limit the rate of interruption checks` +- **Created**: 2023-11-04, Draft +- **Age**: **26 months old** 🔴 +- **Recommendation**: **REVIEW OR CLOSE** - Performance fix, may need rebasing + +#### PR #1401: `test: Test adding vertex names` +- **Created**: 2024-06-11, Draft, Blocked +- **Age**: 19 months old +- **Recommendation**: **RESOLVE OR CLOSE** + +#### PR #1502: `chore: stricter deprecation for layout.spring() and layout.svd()` +- **Created**: 2024-09-10, Draft +- **Age**: 16 months old +- **Recommendation**: **REVIEW OR CLOSE** + +#### PR #1577: `chore: Add checks to generated code` +- **Created**: 2024-11-07, Blocked +- **Age**: 14 months old +- **Recommendation**: **RESOLVE OR CLOSE** + +### Old (6-12 months) + +#### PR #1871: `chore: fix with {flir}` +- **Created**: 2025-06-10, Draft +- **Age**: 7 months old + +#### PR #1894: `fix: Allow matrix attributes by checking their vector size` +- **Created**: 2025-06-26, Draft +- **Age**: 7 months old + +#### PR #1932: `feat: add error if adding vertices results in duplicated names` +- **Created**: 2025-07-03, Non-draft +- **Age**: 6 months old + +#### PR #1968: `feat: implement read/write graphs from/to string` +- **Created**: 2025-07-09, Draft +- **Age**: 6 months old + +#### PR #1971: `[WIP] Adding vertex names when a named and unnamed graph are combined?` +- **Created**: 2025-07-10, Draft +- **Age**: 6 months old + +#### PR #1981: `feat: added simple check to graph_from_literal()` +- **Created**: 2025-07-15, Draft +- **Age**: 6 months old +- **Labels**: release-followup + +#### PR #2003: `chore: create check_vertex()` +- **Created**: 2025-07-22, Draft +- **Labels**: release-followup +- **Age**: 6 months old + +#### PR #2006: `chore: improve errors in iterators.R` +- **Created**: 2025-07-22, Non-draft +- **Age**: 6 months old + +#### PR #2010: `test: Snapshot updates for rcc-smoke (null)` +- **Created**: 2025-07-22, Non-draft +- **Age**: 6 months old +- **Type**: Automated test update + +### Medium Age (3-6 months) + +#### PR #2058: `fix: Fix tests on next branch` +- **Created**: 2025-08-17, Draft +- **Age**: 5 months old + +#### PR #2100: `chore: autogenerate igraph_incident()` +- **Created**: 2025-09-01, Non-draft +- **Age**: 4 months old + +#### PR #2127: `chore: start work on community_leading_eigenvector()` +- **Created**: 2025-09-08, Draft +- **Age**: 4 months old + +#### PR #2187: `chore: remove console() and tkplot()` +- **Created**: 2025-10-03, Non-draft +- **Age**: 3 months old + +#### PR #2219: `fix NA check for lower upper tri` +- **Created**: 2025-10-23, Non-draft +- **Labels**: hackathon-topic +- **Age**: 3 months old + +--- + +## Dependency Map + +### Semantic Dependencies & Groupings + +#### Group 1: Parameter Naming Standardization (⚠️ CONFLICTS) +**Decision needed: Resolve naming conflicts first** + +- #2458: Standardize to `vids` ⚠️ +- #2450: Standardize to `vertices` ⚠️ (CONFLICTS with #2458) +- #2456: Standardize algorithm params to `algorithm` +- #2436: Standardize optional vertex parameters to `NULL` default + +**Recommendation**: Decide on unified naming convention, then merge PRs in order + +#### Group 2: igraph 0.10 Function Exposure - Graph Constructors +**Can be merged independently but should be reviewed together for consistency** + +- #2410: Core igraph 0.10 functions (includes 8 generators) +- #2417: `make_hypercube()` (non-draft) +- #2418: `make_hex_lattice()` and `hex_lattice()` +- #2419: `make_tri_lattice()` +- #2404: `mycielskian()` and `make_mycielski_graph()` + +**Recommendation**: Review all together for API consistency, can merge incrementally + +#### Group 3: igraph 0.10 Function Exposure - Other Functions +**Can be merged independently** + +- #2420: `knnk()` (degree correlation) +- #2408: Widest paths functions +- #2411: `graph_join()` +- #2426: `as_veincidence_matrix()` +- #2445: Motif sampling (involves callbacks, separate review) + +#### Group 4: Breaking Changes for Next Major Release +**Should be bundled together or coordinated** + +- #2453: Graph constructors default to undirected +- #2455: `bfs()`/`dfs()` return numeric instead of igraph.vs +- #2457: Deprecation warnings for `mode` parameter +- #2452: Error on adding named vertices to unnamed graphs +- #2187: Remove `console()` and `tkplot()` +- #2002: Remove tk stuff (related to #2187) +- Possibly: #758 (numeric edge IDs) if still relevant + +#### Group 5: Bug Fixes - Can Merge Independently +**Low risk, should be prioritized** + +- #2432: Character labels in `assortativity_nominal()` +- #2427: Fix `biconnected_components()` result fields +- #2441: Remove problematic defaults from `sample_last_cit()` +- #2219: NA check for lower/upper tri + +#### Group 6: Infrastructure & Code Generation +**May have dependencies** + +- #2485: Autogenerate 108 functions (MAJOR - review first) +- #2469: Update wrappers for C API changes +- #2375: Remove `.Call()` usage from user code +- #2127: Work on `community_leading_eigenvector()` (may be superseded by #2485) +- #2100: Autogenerate `igraph_incident()` (may be superseded by #2485) + +#### Group 7: Documentation +**Can be merged independently** + +- #2518: Automatic C docs linking (needs rebase) +- #2500: Reverse dependency analysis +- #1453: Add example for `consensus_tree()` + +### Technical Dependencies + +1. **#2485 may supersede**: #2127, #2100 (check if functions already generated) +2. **#2458 and #2450 conflict**: Need to resolve `vids` vs `vertices` naming +3. **Breaking changes** (#2453, #2455, #2457, #2452, #2187, #2002): Should go through "next" branch together +4. **#2421 is special**: Review-only PR comparing main and next branches + +--- + +## Recommendations + +### Immediate Actions (Next 2 Weeks) + +1. **MERGE NOW**: + - #2515: Error message formatting (clean, reviewed) + - #2513: Vendor update (after CI fixes) + +2. **REVIEW URGENTLY**: + - #2485: Autogenerate 108 functions - **MASSIVE PR**, needs thorough review + - Determine if #2485 supersedes #2100, #2127 + +3. **RESOLVE CONFLICTS**: + - #2458 vs #2450: Decide on `vids` or `vertices` + - Check #2421 to understand main vs next strategy + +4. **UNBLOCK**: + - #1577: Add checks to generated code - resolve blocker or close + - #1401: Test vertex names - resolve blocker or close + +### Short Term (Next Month) + +1. **Group Review - igraph 0.10 Functions**: + - Review #2410, #2417-2420, #2404, #2408, #2411, #2426 together + - Ensure consistent API design + - Can merge incrementally after review + +2. **Bug Fixes**: + - Merge #2432, #2427, #2441, #2219 (low risk) + +3. **Documentation**: + - Rebase and merge #2518 (C docs linking) + - Merge #2500 (revdep analysis) + +### Medium Term (Next Quarter) + +1. **Plan Breaking Changes Release**: + - Bundle #2453, #2455, #2457, #2452, #2187, #2002 + - Review #758 (numeric edge IDs) - include or close + - Coordinate with "next" branch strategy (#2421) + +2. **Parameter Naming Standardization**: + - After resolving #2458 vs #2450 conflict + - Merge #2456, #2436 + +3. **Infrastructure**: + - Review #2375 (.Call() removal) + - Review #2431 (vctrs dependency) + +### Cleanup Actions + +**Close or Complete**: +- #942: 26 months old - rebase or close +- #758: 33 months old - review and decide +- #1502: 16 months old - complete deprecation or close +- #1559: 15 months old - rebase ARPACK update or close +- #1871: 7 months old - review or close +- #2439: WIP - wait for completion or close +- #2437: Automated test updates - review and merge/close + +--- + +## Statistics + +### By Type (from title prefix) +- `feat:` - 20 PRs (new features) +- `fix:` - 8 PRs (bug fixes) +- `chore:` - 11 PRs (maintenance) +- `docs:` - 2 PRs (documentation) +- `test:` - 3 PRs (tests) +- Other/WIP - 11 PRs + +### By Age +- Very new (< 1 month): 3 PRs +- Recent (1-3 months): 33 PRs +- Medium (3-6 months): 8 PRs +- Old (6-12 months): 6 PRs +- Very old (12+ months): 5 PRs + +### By Author +- Copilot bot: ~35 PRs +- @maelle: 2 PRs +- @krlmlr: 1 PR +- github-actions[bot]: 2 PRs +- Others: ~15 PRs + +### By Status +- Draft: 50 PRs +- Non-draft: 5 PRs +- Explicitly WIP: 3 PRs +- Blocked: 2 PRs + +--- + +## Conclusion + +The repository has a large backlog of PRs, with a significant burst of activity in October 2025 focused on API standardization and exposing igraph 0.10 functions. Key priorities should be: + +1. **Resolve the naming conflict** between #2458 and #2450 +2. **Review and merge** #2485 (major autogeneration work) +3. **Quick wins**: Merge bug fixes (#2432, #2427, #2441, #2219) and #2515 +4. **Plan breaking changes** for next major release using the "next" branch +5. **Close stale PRs** older than 12 months that aren't being actively worked on +6. **Group review** the igraph 0.10 function exposure PRs for consistency + +The October 2025 PRs show good systematic work on API consistency, but need coordination to avoid conflicts and ensure a coherent design. From 7e1e80490f418f05b099a7b4051533656ad296e6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 10:21:36 +0000 Subject: [PATCH 3/3] Convert PR references to clickable links Co-authored-by: krlmlr <1741643+krlmlr@users.noreply.github.com> --- PR_REVIEW.md | 280 +++++++++++++++++++++++++-------------------------- 1 file changed, 140 insertions(+), 140 deletions(-) diff --git a/PR_REVIEW.md b/PR_REVIEW.md index 4e9c7d705d9..4cc55c03313 100644 --- a/PR_REVIEW.md +++ b/PR_REVIEW.md @@ -1,7 +1,7 @@ # Open PRs Meta-Review for igraph/rigraph **Generated:** 2026-01-22 -**Total Open PRs:** 55 (excluding PR #2524 and #2522 which are WIP for this task) +**Total Open PRs:** 55 (excluding PR [#2524](https://github.com/igraph/rigraph/pull/2524) and [#2522](https://github.com/igraph/rigraph/pull/2522) which are WIP for this task) ## Table of Contents @@ -50,15 +50,15 @@ ### Ready to Merge -#### PR #2515: `feat: improve formatting of error messages from C` +#### PR [#2515](https://github.com/igraph/rigraph/pull/2515): `feat: improve formatting of error messages from C` - **Status**: ✅ Non-draft, mergeable_state: clean - **Created**: 2026-01-06 by @maelle - **Comments**: 7, Review comments: 3 -- **Description**: Improves error message formatting from C library (fixes #2202) +- **Description**: Improves error message formatting from C library (fixes [#2202](https://github.com/igraph/rigraph/pull/2202)) - **Recommendation**: **MERGE NOW** - Clean state, has reviews, addresses a specific issue - **Changes**: 175 additions, 81 deletions, 5 files -#### PR #2513: `vendor: Update vendored sources` +#### PR [#2513](https://github.com/igraph/rigraph/pull/2513): `vendor: Update vendored sources` - **Status**: Non-draft, mergeable_state: unstable (CI issues) - **Created**: 2025-12-28 by github-actions[bot] - **Description**: Automated vendoring update @@ -67,7 +67,7 @@ ### Near Ready - Minor Issues -#### PR #2485: `feat: autogenerate 108 non-callback functions` +#### PR [#2485](https://github.com/igraph/rigraph/pull/2485): `feat: autogenerate 108 non-callback functions` - **Status**: Non-draft but mergeable_state: blocked - **Created**: 2025-11-04 by @Copilot - **Comments**: 13, Review comments: 4 @@ -76,12 +76,12 @@ - **Changes**: 13,484 additions, 3,875 deletions, 7 files - **Notes**: All tests passing according to PR description, comprehensive test coverage added -#### PR #2417: `Add make_hypercube()` +#### PR [#2417](https://github.com/igraph/rigraph/pull/2417): `Add make_hypercube()` - **Status**: Non-draft (unusual - most similar PRs are drafts) - **Created**: 2025-10-26 by @Copilot - **Description**: Exposes hypercube graph generator - **Recommendation**: Review as part of "expose igraph 0.10 functions" batch -- **Potential Group**: Part of graph constructors batch (see #2410, #2418, #2419) +- **Potential Group**: Part of graph constructors batch (see [#2410](https://github.com/igraph/rigraph/pull/2410), [#2418](https://github.com/igraph/rigraph/pull/2418), [#2419](https://github.com/igraph/rigraph/pull/2419)) --- @@ -93,37 +93,37 @@ This section contains ~30 PRs created in October 2025, primarily by the Copilot These PRs aim to create consistent naming conventions across the API. **Likely interdependent** and should be reviewed together. -#### PR #2458: Standardize vertex selector parameter name to `vids` +#### PR [#2458](https://github.com/igraph/rigraph/pull/2458): Standardize vertex selector parameter name to `vids` - **Created**: 2025-10-28, Draft - **Recommendation**: Bundle with other parameter naming PRs -- **May conflict with**: #2450 (contradictory naming - one says `vids`, other says `vertices`) +- **May conflict with**: [#2450](https://github.com/igraph/rigraph/pull/2450) (contradictory naming - one says `vids`, other says `vertices`) -#### PR #2456: Standardize algorithm parameter names from `algo`/`method` to `algorithm` +#### PR [#2456](https://github.com/igraph/rigraph/pull/2456): Standardize algorithm parameter names from `algo`/`method` to `algorithm` - **Created**: 2025-10-28, Draft - **Recommendation**: Part of naming standardization batch -#### PR #2450: Standardize API parameter naming: `nodes` → `n`, `vids` → `vertices` +#### PR [#2450](https://github.com/igraph/rigraph/pull/2450): Standardize API parameter naming: `nodes` → `n`, `vids` → `vertices` - **Created**: 2025-10-27, Draft -- **⚠️ CONFLICT**: Contradicts #2458 which standardizes TO `vids` +- **⚠️ CONFLICT**: Contradicts [#2458](https://github.com/igraph/rigraph/pull/2458) which standardizes TO `vids` - **Recommendation**: **RESOLVE CONFLICT** - Decide on `vids` vs `vertices` first ### Breaking Changes & Deprecations -#### PR #2457: `fix: Add deprecation warnings for inconsistent mode parameter defaults` +#### PR [#2457](https://github.com/igraph/rigraph/pull/2457): `fix: Add deprecation warnings for inconsistent mode parameter defaults` - **Created**: 2025-10-28, Draft - **Recommendation**: Should go in breaking change release (likely "next" branch) -#### PR #2455: `fix: Return parent as numeric vector in bfs() and dfs() instead of igraph.vs` +#### PR [#2455](https://github.com/igraph/rigraph/pull/2455): `fix: Return parent as numeric vector in bfs() and dfs() instead of igraph.vs` - **Created**: 2025-10-28, Draft - **Type**: Breaking change - **Recommendation**: Bundle with other breaking changes for next major release -#### PR #2453: `feat: make graph constructors default to undirected for consistency` +#### PR [#2453](https://github.com/igraph/rigraph/pull/2453): `feat: make graph constructors default to undirected for consistency` - **Created**: 2025-10-28, Draft - **Type**: Breaking change - **Recommendation**: Major breaking change, needs careful consideration -#### PR #2452: `feat: error when adding named vertices to non-empty unnamed graphs` +#### PR [#2452](https://github.com/igraph/rigraph/pull/2452): `feat: error when adding named vertices to non-empty unnamed graphs` - **Created**: 2025-10-28, Draft - **Type**: Breaking change (new error conditions) - **Recommendation**: Part of consistency improvements @@ -132,96 +132,96 @@ These PRs aim to create consistent naming conventions across the API. **Likely i These PRs expose new functionality from the underlying igraph C library. -#### PR #2410: `feat: expose igraph 0.10 functions` +#### PR [#2410](https://github.com/igraph/rigraph/pull/2410): `feat: expose igraph 0.10 functions` - **Created**: 2025-10-26, Draft - **Functions**: `any_mutual()`, `invalidate_cache()`, and 8 generator functions -- **Recommendation**: **COORDINATE** with related feature PRs (#2417-2420, #2426) +- **Recommendation**: **COORDINATE** with related feature PRs ([#2417](https://github.com/igraph/rigraph/pull/2417)-2420, [#2426](https://github.com/igraph/rigraph/pull/2426)) -#### PR #2420: `Expose igraph_degree_correlation_vector() as knnk()` +#### PR [#2420](https://github.com/igraph/rigraph/pull/2420): `Expose igraph_degree_correlation_vector() as knnk()` - **Created**: 2025-10-26, Draft - **Recommendation**: Part of igraph 0.10 feature batch -#### PR #2419: `Add make_tri_lattice()` (triangular lattice generator) +#### PR [#2419](https://github.com/igraph/rigraph/pull/2419): `Add make_tri_lattice()` (triangular lattice generator) - **Created**: 2025-10-26, Draft - **Group**: Graph constructors -#### PR #2418: `feat: add make_hex_lattice() and hex_lattice() functions` +#### PR [#2418](https://github.com/igraph/rigraph/pull/2418): `feat: add make_hex_lattice() and hex_lattice() functions` - **Created**: 2025-10-26, Draft - **Group**: Graph constructors -#### PR #2417: `Add make_hypercube()` +#### PR [#2417](https://github.com/igraph/rigraph/pull/2417): `Add make_hypercube()` - **Created**: 2025-10-26, Non-draft - **Group**: Graph constructors -#### PR #2411: `feat: Add graph_join() function to R interface` +#### PR [#2411](https://github.com/igraph/rigraph/pull/2411): `feat: Add graph_join() function to R interface` - **Created**: 2025-10-26, Draft - **Recommendation**: Part of igraph 0.10 feature batch -#### PR #2408: `feat: Expose widest paths functions` +#### PR [#2408](https://github.com/igraph/rigraph/pull/2408): `feat: Expose widest paths functions` - **Created**: 2025-10-26, Draft - **Functions**: `widest_paths()` and `widest_path_widths()` - **Recommendation**: Part of igraph 0.10 feature batch -#### PR #2404: `feat: expose mycielskian() and make_mycielski_graph()` +#### PR [#2404](https://github.com/igraph/rigraph/pull/2404): `feat: expose mycielskian() and make_mycielski_graph()` - **Created**: 2025-10-26, Draft - **Recommendation**: Part of graph constructors batch -#### PR #2445: `feat: expose igraph_motifs_randesu_callback() to R` +#### PR [#2445](https://github.com/igraph/rigraph/pull/2445): `feat: expose igraph_motifs_randesu_callback() to R` - **Created**: 2025-10-27, Draft - **Purpose**: Efficient motif sampling - **Recommendation**: Review separately - involves callbacks -#### PR #2426: `feat: add as_veincidence_matrix()` +#### PR [#2426](https://github.com/igraph/rigraph/pull/2426): `feat: add as_veincidence_matrix()` - **Created**: 2025-10-26, Draft - **Description**: Vertex-edge incidence matrices - **Recommendation**: Part of utility functions batch ### Bug Fixes & Improvements -#### PR #2432: `fix: Support character labels in assortativity_nominal()` +#### PR [#2432](https://github.com/igraph/rigraph/pull/2432): `fix: Support character labels in assortativity_nominal()` - **Created**: 2025-10-26, Draft - **Recommendation**: Small fix, should be easy to merge -#### PR #2427: `fix: biconnected_components() returns invalid result fields` +#### PR [#2427](https://github.com/igraph/rigraph/pull/2427): `fix: biconnected_components() returns invalid result fields` - **Created**: 2025-10-26, Draft - **Type**: Bug fix - **Recommendation**: Should be merged relatively soon -#### PR #2441: `fix: remove problematic defaults from sample_last_cit() parameters` +#### PR [#2441](https://github.com/igraph/rigraph/pull/2441): `fix: remove problematic defaults from sample_last_cit() parameters` - **Created**: 2025-10-26, Draft - **Type**: API fix - **Recommendation**: Part of API cleanup batch -#### PR #2440: `feat: add as.vector parameter to as_edgelist()` +#### PR [#2440](https://github.com/igraph/rigraph/pull/2440): `feat: add as.vector parameter to as_edgelist()` - **Created**: 2025-10-26, Draft - **Recommendation**: Small enhancement, low risk -#### PR #2436: `feat: standardize optional vertex parameters to use NULL default` +#### PR [#2436](https://github.com/igraph/rigraph/pull/2436): `feat: standardize optional vertex parameters to use NULL default` - **Created**: 2025-10-26, Draft - **Recommendation**: Part of API standardization ### Infrastructure & Dependencies -#### PR #2431: `Use vctrs for vector recycling` +#### PR [#2431](https://github.com/igraph/rigraph/pull/2431): `Use vctrs for vector recycling` - **Created**: 2025-10-26, Draft - **Type**: Infrastructure change (new dependency) - **Recommendation**: **NEEDS CAREFUL REVIEW** - Adds new dependency ### Comparison & Review PRs -#### PR #2421: `Changes between main and next for review` +#### PR [#2421](https://github.com/igraph/rigraph/pull/2421): `Changes between main and next for review` - **Created**: 2025-10-26 by @krlmlr, Draft - **Purpose**: Comparing branches for release planning - **Recommendation**: **REVIEW ONLY** - Not meant to be merged as-is ### Work In Progress -#### PR #2439: `[WIP] Fix functions ignoring return.vs.es option` +#### PR [#2439](https://github.com/igraph/rigraph/pull/2439): `[WIP] Fix functions ignoring return.vs.es option` - **Created**: 2025-10-26, Draft - **Status**: Explicitly WIP - **Recommendation**: Wait for author to complete -#### PR #2437: `test: Snapshot updates for rcc-smoke (null)` +#### PR [#2437](https://github.com/igraph/rigraph/pull/2437): `test: Snapshot updates for rcc-smoke (null)` - **Created**: 2025-10-26, Draft by github-actions[bot] - **Recommendation**: Automated test updates, review and merge if valid @@ -231,7 +231,7 @@ These PRs expose new functionality from the underlying igraph C library. ### Documentation -#### PR #2518: `Automatic linking to C docs` +#### PR [#2518](https://github.com/igraph/rigraph/pull/2518): `Automatic linking to C docs` - **Status**: Draft, mergeable_state: dirty (merge conflicts) - **Created**: 2026-01-13 by @maelle - **Comments**: 0, Review comments: 1 @@ -240,34 +240,34 @@ These PRs expose new functionality from the underlying igraph C library. - **Recommendation**: **NEEDS REBASE** - Large documentation improvement, has conflicts - **Notes**: Based on treesitter for finding function calls -#### PR #2500: `docs(revdep): Analyze and document reverse dependency problems` +#### PR [#2500](https://github.com/igraph/rigraph/pull/2500): `docs(revdep): Analyze and document reverse dependency problems` - **Created**: 2025-11-16 by @Copilot, Draft - **Recommendation**: Important for CRAN releases, should be prioritized -#### PR #1453: `docs: add example for consensus_tree()` +#### PR [#1453](https://github.com/igraph/rigraph/pull/1453): `docs: add example for consensus_tree()` - **Created**: 2024-08-20, Draft - **Age**: 17 months old - **Recommendation**: Small doc addition, should be easy to merge or close ### Build & Infrastructure -#### PR #2469: `fix: update wrapper functions for C API parameter changes` +#### PR [#2469](https://github.com/igraph/rigraph/pull/2469): `fix: update wrapper functions for C API parameter changes` - **Created**: 2025-11-01 by @Copilot, Draft - **Recommendation**: Likely needed for C library update -#### PR #1577: `chore: Add checks to generated code` +#### PR [#1577](https://github.com/igraph/rigraph/pull/1577): `chore: Add checks to generated code` - **Created**: 2024-11-07, Non-draft - **Labels**: blocked - **Age**: 14 months old - **Recommendation**: **BLOCKED** - Resolve blocker or close -#### PR #1559: `chore: update arpack to arpack-ng 3.9.1` +#### PR [#1559](https://github.com/igraph/rigraph/pull/1559): `chore: update arpack to arpack-ng 3.9.1` - **Created**: 2024-10-21, Draft - **Labels**: hackathon-topic - **Age**: 15 months old - **Recommendation**: **NEEDS DECISION** - Dependency update, may need rebasing -#### PR #1871: `chore: fix with {flir}` +#### PR [#1871](https://github.com/igraph/rigraph/pull/1871): `chore: fix with {flir}` - **Created**: 2025-06-10, Draft - **Labels**: hackathon-topic, release-followup - **Age**: 7 months old @@ -275,18 +275,18 @@ These PRs expose new functionality from the underlying igraph C library. ### Deprecation & Cleanup -#### PR #2187: `chore: remove console() and tkplot()` +#### PR [#2187](https://github.com/igraph/rigraph/pull/2187): `chore: remove console() and tkplot()` - **Created**: 2025-10-03, Non-draft - **Labels**: release-followup - **Age**: 3 months old - **Recommendation**: Breaking change, needs to go in next major release -#### PR #2002: `chore: rm some tk stuff` +#### PR [#2002](https://github.com/igraph/rigraph/pull/2002): `chore: rm some tk stuff` - **Created**: 2025-07-22, Draft - **Labels**: hackathon-topic, release-followup -- **Recommendation**: Related to #2187, bundle together +- **Recommendation**: Related to [#2187](https://github.com/igraph/rigraph/pull/2187), bundle together -#### PR #1502: `chore: stricter deprecation for layout.spring() and layout.svd()` +#### PR [#1502](https://github.com/igraph/rigraph/pull/1502): `chore: stricter deprecation for layout.spring() and layout.svd()` - **Created**: 2024-09-10, Draft - **Labels**: lifecycle - **Age**: 16 months old @@ -298,13 +298,13 @@ These PRs expose new functionality from the underlying igraph C library. ### Explicitly Blocked -#### PR #1577: `chore: Add checks to generated code` +#### PR [#1577](https://github.com/igraph/rigraph/pull/1577): `chore: Add checks to generated code` - **Created**: 2024-11-07, Non-draft - **Labels**: ⛔ blocked - **Age**: 14 months old - **Recommendation**: **RESOLVE BLOCKER OR CLOSE** -#### PR #1401: `test: Test adding vertex names` +#### PR [#1401](https://github.com/igraph/rigraph/pull/1401): `test: Test adding vertex names` - **Created**: 2024-06-11, Draft - **Labels**: ⛔ blocked - **Age**: 19 months old @@ -312,30 +312,30 @@ These PRs expose new functionality from the underlying igraph C library. ### Needs Design Decisions -#### PR #1971: `[WIP] Adding vertex names when a named and unnamed graph are combined?` +#### PR [#1971](https://github.com/igraph/rigraph/pull/1971): `[WIP] Adding vertex names when a named and unnamed graph are combined?` - **Created**: 2025-07-10, Draft - **Status**: Explicitly WIP, design question - **Age**: 6 months old - **Recommendation**: **NEEDS DESIGN DECISION** - How should graph combination handle names? -#### PR #2375: `[WIP] Remove .Call() usage from user code` +#### PR [#2375](https://github.com/igraph/rigraph/pull/2375): `[WIP] Remove .Call() usage from user code` - **Created**: 2025-10-25, Draft - **Age**: 3 months old - **Recommendation**: **NEEDS REVIEW** - Infrastructure improvement ### Stimulus/Code Generation -#### PR #2127: `chore: start work on community_leading_eigenvector()` +#### PR [#2127](https://github.com/igraph/rigraph/pull/2127): `chore: start work on community_leading_eigenvector()` - **Created**: 2025-09-08, Draft - **Labels**: stimulus - **Age**: 4 months old -- **Recommendation**: May be superseded by #2485 +- **Recommendation**: May be superseded by [#2485](https://github.com/igraph/rigraph/pull/2485) -#### PR #2100: `chore: autogenerate igraph_incident()` +#### PR [#2100](https://github.com/igraph/rigraph/pull/2100): `chore: autogenerate igraph_incident()` - **Created**: 2025-09-01, Non-draft - **Labels**: stimulus, hackathon-topic - **Age**: 4 months old -- **Recommendation**: May be superseded by #2485 +- **Recommendation**: May be superseded by [#2485](https://github.com/igraph/rigraph/pull/2485) --- @@ -343,92 +343,92 @@ These PRs expose new functionality from the underlying igraph C library. ### Very Old (2023-2024) -#### PR #758: `feat!: Accept numeric edge IDs` +#### PR [#758](https://github.com/igraph/rigraph/pull/758): `feat!: Accept numeric edge IDs` - **Created**: 2023-04-02, Draft - **Age**: **33 months old** 🔴 - **Type**: Breaking change - **Recommendation**: **REVIEW OR CLOSE** - Very old breaking change, may be outdated -#### PR #942: `fix: limit the rate of interruption checks` +#### PR [#942](https://github.com/igraph/rigraph/pull/942): `fix: limit the rate of interruption checks` - **Created**: 2023-11-04, Draft - **Age**: **26 months old** 🔴 - **Recommendation**: **REVIEW OR CLOSE** - Performance fix, may need rebasing -#### PR #1401: `test: Test adding vertex names` +#### PR [#1401](https://github.com/igraph/rigraph/pull/1401): `test: Test adding vertex names` - **Created**: 2024-06-11, Draft, Blocked - **Age**: 19 months old - **Recommendation**: **RESOLVE OR CLOSE** -#### PR #1502: `chore: stricter deprecation for layout.spring() and layout.svd()` +#### PR [#1502](https://github.com/igraph/rigraph/pull/1502): `chore: stricter deprecation for layout.spring() and layout.svd()` - **Created**: 2024-09-10, Draft - **Age**: 16 months old - **Recommendation**: **REVIEW OR CLOSE** -#### PR #1577: `chore: Add checks to generated code` +#### PR [#1577](https://github.com/igraph/rigraph/pull/1577): `chore: Add checks to generated code` - **Created**: 2024-11-07, Blocked - **Age**: 14 months old - **Recommendation**: **RESOLVE OR CLOSE** ### Old (6-12 months) -#### PR #1871: `chore: fix with {flir}` +#### PR [#1871](https://github.com/igraph/rigraph/pull/1871): `chore: fix with {flir}` - **Created**: 2025-06-10, Draft - **Age**: 7 months old -#### PR #1894: `fix: Allow matrix attributes by checking their vector size` +#### PR [#1894](https://github.com/igraph/rigraph/pull/1894): `fix: Allow matrix attributes by checking their vector size` - **Created**: 2025-06-26, Draft - **Age**: 7 months old -#### PR #1932: `feat: add error if adding vertices results in duplicated names` +#### PR [#1932](https://github.com/igraph/rigraph/pull/1932): `feat: add error if adding vertices results in duplicated names` - **Created**: 2025-07-03, Non-draft - **Age**: 6 months old -#### PR #1968: `feat: implement read/write graphs from/to string` +#### PR [#1968](https://github.com/igraph/rigraph/pull/1968): `feat: implement read/write graphs from/to string` - **Created**: 2025-07-09, Draft - **Age**: 6 months old -#### PR #1971: `[WIP] Adding vertex names when a named and unnamed graph are combined?` +#### PR [#1971](https://github.com/igraph/rigraph/pull/1971): `[WIP] Adding vertex names when a named and unnamed graph are combined?` - **Created**: 2025-07-10, Draft - **Age**: 6 months old -#### PR #1981: `feat: added simple check to graph_from_literal()` +#### PR [#1981](https://github.com/igraph/rigraph/pull/1981): `feat: added simple check to graph_from_literal()` - **Created**: 2025-07-15, Draft - **Age**: 6 months old - **Labels**: release-followup -#### PR #2003: `chore: create check_vertex()` +#### PR [#2003](https://github.com/igraph/rigraph/pull/2003): `chore: create check_vertex()` - **Created**: 2025-07-22, Draft - **Labels**: release-followup - **Age**: 6 months old -#### PR #2006: `chore: improve errors in iterators.R` +#### PR [#2006](https://github.com/igraph/rigraph/pull/2006): `chore: improve errors in iterators.R` - **Created**: 2025-07-22, Non-draft - **Age**: 6 months old -#### PR #2010: `test: Snapshot updates for rcc-smoke (null)` +#### PR [#2010](https://github.com/igraph/rigraph/pull/2010): `test: Snapshot updates for rcc-smoke (null)` - **Created**: 2025-07-22, Non-draft - **Age**: 6 months old - **Type**: Automated test update ### Medium Age (3-6 months) -#### PR #2058: `fix: Fix tests on next branch` +#### PR [#2058](https://github.com/igraph/rigraph/pull/2058): `fix: Fix tests on next branch` - **Created**: 2025-08-17, Draft - **Age**: 5 months old -#### PR #2100: `chore: autogenerate igraph_incident()` +#### PR [#2100](https://github.com/igraph/rigraph/pull/2100): `chore: autogenerate igraph_incident()` - **Created**: 2025-09-01, Non-draft - **Age**: 4 months old -#### PR #2127: `chore: start work on community_leading_eigenvector()` +#### PR [#2127](https://github.com/igraph/rigraph/pull/2127): `chore: start work on community_leading_eigenvector()` - **Created**: 2025-09-08, Draft - **Age**: 4 months old -#### PR #2187: `chore: remove console() and tkplot()` +#### PR [#2187](https://github.com/igraph/rigraph/pull/2187): `chore: remove console() and tkplot()` - **Created**: 2025-10-03, Non-draft - **Age**: 3 months old -#### PR #2219: `fix NA check for lower upper tri` +#### PR [#2219](https://github.com/igraph/rigraph/pull/2219): `fix NA check for lower upper tri` - **Created**: 2025-10-23, Non-draft - **Labels**: hackathon-topic - **Age**: 3 months old @@ -442,74 +442,74 @@ These PRs expose new functionality from the underlying igraph C library. #### Group 1: Parameter Naming Standardization (⚠️ CONFLICTS) **Decision needed: Resolve naming conflicts first** -- #2458: Standardize to `vids` ⚠️ -- #2450: Standardize to `vertices` ⚠️ (CONFLICTS with #2458) -- #2456: Standardize algorithm params to `algorithm` -- #2436: Standardize optional vertex parameters to `NULL` default +- [#2458](https://github.com/igraph/rigraph/pull/2458): Standardize to `vids` ⚠️ +- [#2450](https://github.com/igraph/rigraph/pull/2450): Standardize to `vertices` ⚠️ (CONFLICTS with [#2458](https://github.com/igraph/rigraph/pull/2458)) +- [#2456](https://github.com/igraph/rigraph/pull/2456): Standardize algorithm params to `algorithm` +- [#2436](https://github.com/igraph/rigraph/pull/2436): Standardize optional vertex parameters to `NULL` default **Recommendation**: Decide on unified naming convention, then merge PRs in order #### Group 2: igraph 0.10 Function Exposure - Graph Constructors **Can be merged independently but should be reviewed together for consistency** -- #2410: Core igraph 0.10 functions (includes 8 generators) -- #2417: `make_hypercube()` (non-draft) -- #2418: `make_hex_lattice()` and `hex_lattice()` -- #2419: `make_tri_lattice()` -- #2404: `mycielskian()` and `make_mycielski_graph()` +- [#2410](https://github.com/igraph/rigraph/pull/2410): Core igraph 0.10 functions (includes 8 generators) +- [#2417](https://github.com/igraph/rigraph/pull/2417): `make_hypercube()` (non-draft) +- [#2418](https://github.com/igraph/rigraph/pull/2418): `make_hex_lattice()` and `hex_lattice()` +- [#2419](https://github.com/igraph/rigraph/pull/2419): `make_tri_lattice()` +- [#2404](https://github.com/igraph/rigraph/pull/2404): `mycielskian()` and `make_mycielski_graph()` **Recommendation**: Review all together for API consistency, can merge incrementally #### Group 3: igraph 0.10 Function Exposure - Other Functions **Can be merged independently** -- #2420: `knnk()` (degree correlation) -- #2408: Widest paths functions -- #2411: `graph_join()` -- #2426: `as_veincidence_matrix()` -- #2445: Motif sampling (involves callbacks, separate review) +- [#2420](https://github.com/igraph/rigraph/pull/2420): `knnk()` (degree correlation) +- [#2408](https://github.com/igraph/rigraph/pull/2408): Widest paths functions +- [#2411](https://github.com/igraph/rigraph/pull/2411): `graph_join()` +- [#2426](https://github.com/igraph/rigraph/pull/2426): `as_veincidence_matrix()` +- [#2445](https://github.com/igraph/rigraph/pull/2445): Motif sampling (involves callbacks, separate review) #### Group 4: Breaking Changes for Next Major Release **Should be bundled together or coordinated** -- #2453: Graph constructors default to undirected -- #2455: `bfs()`/`dfs()` return numeric instead of igraph.vs -- #2457: Deprecation warnings for `mode` parameter -- #2452: Error on adding named vertices to unnamed graphs -- #2187: Remove `console()` and `tkplot()` -- #2002: Remove tk stuff (related to #2187) -- Possibly: #758 (numeric edge IDs) if still relevant +- [#2453](https://github.com/igraph/rigraph/pull/2453): Graph constructors default to undirected +- [#2455](https://github.com/igraph/rigraph/pull/2455): `bfs()`/`dfs()` return numeric instead of igraph.vs +- [#2457](https://github.com/igraph/rigraph/pull/2457): Deprecation warnings for `mode` parameter +- [#2452](https://github.com/igraph/rigraph/pull/2452): Error on adding named vertices to unnamed graphs +- [#2187](https://github.com/igraph/rigraph/pull/2187): Remove `console()` and `tkplot()` +- [#2002](https://github.com/igraph/rigraph/pull/2002): Remove tk stuff (related to [#2187](https://github.com/igraph/rigraph/pull/2187)) +- Possibly: [#758](https://github.com/igraph/rigraph/pull/758) (numeric edge IDs) if still relevant #### Group 5: Bug Fixes - Can Merge Independently **Low risk, should be prioritized** -- #2432: Character labels in `assortativity_nominal()` -- #2427: Fix `biconnected_components()` result fields -- #2441: Remove problematic defaults from `sample_last_cit()` -- #2219: NA check for lower/upper tri +- [#2432](https://github.com/igraph/rigraph/pull/2432): Character labels in `assortativity_nominal()` +- [#2427](https://github.com/igraph/rigraph/pull/2427): Fix `biconnected_components()` result fields +- [#2441](https://github.com/igraph/rigraph/pull/2441): Remove problematic defaults from `sample_last_cit()` +- [#2219](https://github.com/igraph/rigraph/pull/2219): NA check for lower/upper tri #### Group 6: Infrastructure & Code Generation **May have dependencies** -- #2485: Autogenerate 108 functions (MAJOR - review first) -- #2469: Update wrappers for C API changes -- #2375: Remove `.Call()` usage from user code -- #2127: Work on `community_leading_eigenvector()` (may be superseded by #2485) -- #2100: Autogenerate `igraph_incident()` (may be superseded by #2485) +- [#2485](https://github.com/igraph/rigraph/pull/2485): Autogenerate 108 functions (MAJOR - review first) +- [#2469](https://github.com/igraph/rigraph/pull/2469): Update wrappers for C API changes +- [#2375](https://github.com/igraph/rigraph/pull/2375): Remove `.Call()` usage from user code +- [#2127](https://github.com/igraph/rigraph/pull/2127): Work on `community_leading_eigenvector()` (may be superseded by [#2485](https://github.com/igraph/rigraph/pull/2485)) +- [#2100](https://github.com/igraph/rigraph/pull/2100): Autogenerate `igraph_incident()` (may be superseded by [#2485](https://github.com/igraph/rigraph/pull/2485)) #### Group 7: Documentation **Can be merged independently** -- #2518: Automatic C docs linking (needs rebase) -- #2500: Reverse dependency analysis -- #1453: Add example for `consensus_tree()` +- [#2518](https://github.com/igraph/rigraph/pull/2518): Automatic C docs linking (needs rebase) +- [#2500](https://github.com/igraph/rigraph/pull/2500): Reverse dependency analysis +- [#1453](https://github.com/igraph/rigraph/pull/1453): Add example for `consensus_tree()` ### Technical Dependencies -1. **#2485 may supersede**: #2127, #2100 (check if functions already generated) -2. **#2458 and #2450 conflict**: Need to resolve `vids` vs `vertices` naming -3. **Breaking changes** (#2453, #2455, #2457, #2452, #2187, #2002): Should go through "next" branch together -4. **#2421 is special**: Review-only PR comparing main and next branches +1. **[#2485](https://github.com/igraph/rigraph/pull/2485) may supersede**: [#2127](https://github.com/igraph/rigraph/pull/2127), [#2100](https://github.com/igraph/rigraph/pull/2100) (check if functions already generated) +2. **[#2458](https://github.com/igraph/rigraph/pull/2458) and [#2450](https://github.com/igraph/rigraph/pull/2450) conflict**: Need to resolve `vids` vs `vertices` naming +3. **Breaking changes** ([#2453](https://github.com/igraph/rigraph/pull/2453), [#2455](https://github.com/igraph/rigraph/pull/2455), [#2457](https://github.com/igraph/rigraph/pull/2457), [#2452](https://github.com/igraph/rigraph/pull/2452), [#2187](https://github.com/igraph/rigraph/pull/2187), [#2002](https://github.com/igraph/rigraph/pull/2002)): Should go through "next" branch together +4. **[#2421](https://github.com/igraph/rigraph/pull/2421) is special**: Review-only PR comparing main and next branches --- @@ -518,60 +518,60 @@ These PRs expose new functionality from the underlying igraph C library. ### Immediate Actions (Next 2 Weeks) 1. **MERGE NOW**: - - #2515: Error message formatting (clean, reviewed) - - #2513: Vendor update (after CI fixes) + - [#2515](https://github.com/igraph/rigraph/pull/2515): Error message formatting (clean, reviewed) + - [#2513](https://github.com/igraph/rigraph/pull/2513): Vendor update (after CI fixes) 2. **REVIEW URGENTLY**: - - #2485: Autogenerate 108 functions - **MASSIVE PR**, needs thorough review - - Determine if #2485 supersedes #2100, #2127 + - [#2485](https://github.com/igraph/rigraph/pull/2485): Autogenerate 108 functions - **MASSIVE PR**, needs thorough review + - Determine if [#2485](https://github.com/igraph/rigraph/pull/2485) supersedes [#2100](https://github.com/igraph/rigraph/pull/2100), [#2127](https://github.com/igraph/rigraph/pull/2127) 3. **RESOLVE CONFLICTS**: - - #2458 vs #2450: Decide on `vids` or `vertices` - - Check #2421 to understand main vs next strategy + - [#2458](https://github.com/igraph/rigraph/pull/2458) vs [#2450](https://github.com/igraph/rigraph/pull/2450): Decide on `vids` or `vertices` + - Check [#2421](https://github.com/igraph/rigraph/pull/2421) to understand main vs next strategy 4. **UNBLOCK**: - - #1577: Add checks to generated code - resolve blocker or close - - #1401: Test vertex names - resolve blocker or close + - [#1577](https://github.com/igraph/rigraph/pull/1577): Add checks to generated code - resolve blocker or close + - [#1401](https://github.com/igraph/rigraph/pull/1401): Test vertex names - resolve blocker or close ### Short Term (Next Month) 1. **Group Review - igraph 0.10 Functions**: - - Review #2410, #2417-2420, #2404, #2408, #2411, #2426 together + - Review [#2410](https://github.com/igraph/rigraph/pull/2410), [#2417](https://github.com/igraph/rigraph/pull/2417)-2420, [#2404](https://github.com/igraph/rigraph/pull/2404), [#2408](https://github.com/igraph/rigraph/pull/2408), [#2411](https://github.com/igraph/rigraph/pull/2411), [#2426](https://github.com/igraph/rigraph/pull/2426) together - Ensure consistent API design - Can merge incrementally after review 2. **Bug Fixes**: - - Merge #2432, #2427, #2441, #2219 (low risk) + - Merge [#2432](https://github.com/igraph/rigraph/pull/2432), [#2427](https://github.com/igraph/rigraph/pull/2427), [#2441](https://github.com/igraph/rigraph/pull/2441), [#2219](https://github.com/igraph/rigraph/pull/2219) (low risk) 3. **Documentation**: - - Rebase and merge #2518 (C docs linking) - - Merge #2500 (revdep analysis) + - Rebase and merge [#2518](https://github.com/igraph/rigraph/pull/2518) (C docs linking) + - Merge [#2500](https://github.com/igraph/rigraph/pull/2500) (revdep analysis) ### Medium Term (Next Quarter) 1. **Plan Breaking Changes Release**: - - Bundle #2453, #2455, #2457, #2452, #2187, #2002 - - Review #758 (numeric edge IDs) - include or close - - Coordinate with "next" branch strategy (#2421) + - Bundle [#2453](https://github.com/igraph/rigraph/pull/2453), [#2455](https://github.com/igraph/rigraph/pull/2455), [#2457](https://github.com/igraph/rigraph/pull/2457), [#2452](https://github.com/igraph/rigraph/pull/2452), [#2187](https://github.com/igraph/rigraph/pull/2187), [#2002](https://github.com/igraph/rigraph/pull/2002) + - Review [#758](https://github.com/igraph/rigraph/pull/758) (numeric edge IDs) - include or close + - Coordinate with "next" branch strategy ([#2421](https://github.com/igraph/rigraph/pull/2421)) 2. **Parameter Naming Standardization**: - - After resolving #2458 vs #2450 conflict - - Merge #2456, #2436 + - After resolving [#2458](https://github.com/igraph/rigraph/pull/2458) vs [#2450](https://github.com/igraph/rigraph/pull/2450) conflict + - Merge [#2456](https://github.com/igraph/rigraph/pull/2456), [#2436](https://github.com/igraph/rigraph/pull/2436) 3. **Infrastructure**: - - Review #2375 (.Call() removal) - - Review #2431 (vctrs dependency) + - Review [#2375](https://github.com/igraph/rigraph/pull/2375) (.Call() removal) + - Review [#2431](https://github.com/igraph/rigraph/pull/2431) (vctrs dependency) ### Cleanup Actions **Close or Complete**: -- #942: 26 months old - rebase or close -- #758: 33 months old - review and decide -- #1502: 16 months old - complete deprecation or close -- #1559: 15 months old - rebase ARPACK update or close -- #1871: 7 months old - review or close -- #2439: WIP - wait for completion or close -- #2437: Automated test updates - review and merge/close +- [#942](https://github.com/igraph/rigraph/pull/942): 26 months old - rebase or close +- [#758](https://github.com/igraph/rigraph/pull/758): 33 months old - review and decide +- [#1502](https://github.com/igraph/rigraph/pull/1502): 16 months old - complete deprecation or close +- [#1559](https://github.com/igraph/rigraph/pull/1559): 15 months old - rebase ARPACK update or close +- [#1871](https://github.com/igraph/rigraph/pull/1871): 7 months old - review or close +- [#2439](https://github.com/igraph/rigraph/pull/2439): WIP - wait for completion or close +- [#2437](https://github.com/igraph/rigraph/pull/2437): Automated test updates - review and merge/close --- @@ -611,9 +611,9 @@ These PRs expose new functionality from the underlying igraph C library. The repository has a large backlog of PRs, with a significant burst of activity in October 2025 focused on API standardization and exposing igraph 0.10 functions. Key priorities should be: -1. **Resolve the naming conflict** between #2458 and #2450 -2. **Review and merge** #2485 (major autogeneration work) -3. **Quick wins**: Merge bug fixes (#2432, #2427, #2441, #2219) and #2515 +1. **Resolve the naming conflict** between [#2458](https://github.com/igraph/rigraph/pull/2458) and [#2450](https://github.com/igraph/rigraph/pull/2450) +2. **Review and merge** [#2485](https://github.com/igraph/rigraph/pull/2485) (major autogeneration work) +3. **Quick wins**: Merge bug fixes ([#2432](https://github.com/igraph/rigraph/pull/2432), [#2427](https://github.com/igraph/rigraph/pull/2427), [#2441](https://github.com/igraph/rigraph/pull/2441), [#2219](https://github.com/igraph/rigraph/pull/2219)) and [#2515](https://github.com/igraph/rigraph/pull/2515) 4. **Plan breaking changes** for next major release using the "next" branch 5. **Close stale PRs** older than 12 months that aren't being actively worked on 6. **Group review** the igraph 0.10 function exposure PRs for consistency