Skip to content

refactor: Purge legacy alias formals via the migration registry - #2863

Open
krlmlr wants to merge 1 commit into
claude/issue-2788-subagents-faw1t1-4from
claude/issue-2788-subagents-faw1t1-5
Open

refactor: Purge legacy alias formals via the migration registry#2863
krlmlr wants to merge 1 commit into
claude/issue-2788-subagents-faw1t1-4from
claude/issue-2788-subagents-faw1t1-5

Conversation

@krlmlr

@krlmlr krlmlr commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Part of #2788 (PR 5 of the stack, on top of #2862); answers the survey's "migrate the existing hand-rolled alias formals into the registry" question for the aliases that are ready, so the signatures shrink to canonical names.

What this does

  • layout_with_fr(): the trailing maxiter = deprecated() formal disappears; the registry now recovers maxiter = as a rename to niter. This alias was bridged silently before (no deprecation signal at all) — it now gets the standard 3.0.0 soft-deprecation.
  • layout_with_kk(): start (alias of coords) cannot ride the registry because coords is a head formal, so the sentinel formal stays — but the bridge now emits the previously missing deprecate_soft() (it was a silent alias too), and the @param gains its deprecated badge.
  • cluster_leiden(): gains its missing registry entry (it was the only cluster_*() without one, still on strict check_dots_empty()). The resolution_parameter = deprecated() formal and hand bridge are removed; the registry recovers it as a rename to resolution. The old entry reproduces the true v2.0.0 positional signature (verified against the v2.0.0 tag, commit 8102f30, where resolution_parameter was canonical slot 4), so both 2.0-era positional calls and 2.1-era keyword calls recover correctly.
  • bfs() / dfs(): the neimode/father trailing formals — hard deprecate_stop() errors since 1.3.0/2.2.0 — are removed, together with the res$neimode <- res$mode and res$father <- res$parent return-value aliases (marked "Remove in 1.4.0" in the source). Calls using the dead names now fail check_dots_empty() (`...` must be empty) instead of the bespoke stop message. The graph.bfs()/graph.dfs() wrappers needed their unconditional neimode forwards dropped to keep working; their still-functional fatherparent mapping is untouched.

Deliberately left for a follow-up

  • make_lattice()/lattice() circularperiodic: these functions have no ellipsis migration yet; the alias should ride that migration when it happens (note the known dim/dimvector prefix hazard documented in the generator fixture).
  • eigen_centrality()/centr_eigen()/centr_eigen_tmax() scale = deprecated(): dropped functionality (normalization is always on), not aliases — nothing to recover; removal is a later deprecation-advancement step (write code to advance lifecycle deprecations #1121).
  • layout_with_fr()/layout_with_kk() zombie formals (coolexp, maxdelta, area, repulserad, sigma, initemp, niter-on-kk) — hard-stopped since 0.8.0; same advancement track. The niter/maxiter role swap between fr and kk remains a naming wart for the iterations-family decision in Comprehensive plan: argument renames for 3.0.0 #2788.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RTPj4qNv2FWui6etixZeuR


Generated by Claude Code

`layout_with_fr(maxiter = )` folds into the registry
as a rename to `niter`
(the alias was silent before, now it soft-deprecates),
`layout_with_kk(start = )` gains its missing soft-deprecation,
`cluster_leiden()` joins the registry
with `resolution_parameter` recovered as `resolution`,
and the long-dead `neimode`/`father` formals and result aliases
of `bfs()`/`dfs()` are removed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RTPj4qNv2FWui6etixZeuR
@github-actions

Copy link
Copy Markdown
Contributor

This is how benchmark results would change (along with a 95% confidence interval in relative change) if e79a7b8 is merged into claude/issue-2788-subagents-faw1t1-4:

  • ✔️as_adjacency_matrix: 842ms -> 843ms [-1.58%, +1.73%]
  • ✔️as_biadjacency_matrix: 861ms -> 860ms [-1.19%, +0.87%]
  • ✔️as_data_frame_both: 1.91ms -> 1.87ms [-6.52%, +2.03%]
  • ✔️as_long_data_frame: 4.72ms -> 4.62ms [-4.11%, +0.2%]
  • ✔️es_attr_filter: 2.95ms -> 2.95ms [-3.96%, +3.54%]
  • ✔️graph_from_adjacency_matrix: 134ms -> 134ms [-1.71%, +1.77%]
  • ✔️graph_from_data_frame: 4.17ms -> 4.15ms [-2.27%, +0.95%]
  • ✔️vs_attr_filter: 1.8ms -> 1.8ms [-2.86%, +2.66%]
  • ✔️vs_by_name: 1.12ms -> 1.13ms [-3.06%, +4.04%]
    Further explanation regarding interpretation and methodology can be found in the documentation.

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.

2 participants