Skip to content

build: propagate recent develop fixes to sibling packages - #15165

Draft
Planeshifter wants to merge 4 commits into
developfrom
claude/ecstatic-heisenberg-9d8g80
Draft

build: propagate recent develop fixes to sibling packages#15165
Planeshifter wants to merge 4 commits into
developfrom
claude/ecstatic-heisenberg-9d8g80

Conversation

@Planeshifter

Copy link
Copy Markdown
Member

Description

What is the purpose of this pull request?

Propagating fixes merged to develop between 2026-09-10T13:46-07:00 and 2026-09-11T00:28-07:00 (f47e2f7...2f17548) to sibling packages.

This pull request:

  • applies the batch-size cap from 04cd72b to .github/workflows/scripts/run_affected_benchmarks/run, which contains the same uncapped xargs idiom at two call sites. Both the JavaScript and C benchmark file lists now pass through xargs -s 40000, keeping each make invocation's argument list well under the 128KiB Linux limit; the C site is the more exposed of the two, as it is built from absolute paths.
  • applies the same spacing normalization from 42d3459 ("style: add missing spaces") to the remaining ULP-migrated test suites that retain unspaced bracket indexing: blas/base/drotg, stats/base/dists/bradford/pdf, stats/base/dists/exponential/cdf, and stats/ttest (54 lines across 10 files). Single-level indexing (x[i]) becomes x[ i ]; chained accesses (values[i][0]) are left as-is, matching the source commit's scope.
  • applies the identical EditorConfig fix from d30d365 to _tools/eslint/rules/no-immediate-require/examples/index.js: the space-indented /* => ... */ example-output comment block (lines 39-51) is converted to tab indentation, matching the project's .editorconfig rule for JavaScript. No content or behavioral change — whitespace only.
  • applies the identical stdlib/no-new-array fix from b15594b to _tools/github/rank-users/lib/shuffle.js, the sole remaining new Array( call in the package. The constructor call is replaced with an empty array literal (out = []) populated via out.push( data[ sorted[i][0] ] ) inside the existing loop. The loop fills every index densely, so behavior is unchanged.

One commit per source fix pattern preserves the per-pattern audit trail.

Related Issues

Does this pull request have any related issues?

No.

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

Validation performed before inclusion:

  • Pattern search scoped to sibling packages/files of each source commit (_tools/github/rank-users, _tools/eslint/rules/*/examples, test files of packages migrated to ULP-based assertions in the window, .github/workflows/scripts).
  • Two independent validation passes confirmed the defect is present at every included site and that each fix is a direct analog of its source commit.
  • An adaptation pass produced exact per-site patches; a style-consistency pass confirmed each patch matches surrounding package style.
  • Deliberately excluded: chained/nested bracket accesses (values[i][0] in blas/base/drotg tests), mirroring the source commit leaving data[i][key1] untouched; a fix: update require path pattern (20f2bbe) for which no other sites exist repo-wide; and any site requiring cross-package changes.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

If you answered "yes" to using AI assistance, please provide a short disclosure indicating how you used AI assistance. This helps reviewers determine how much scrutiny to apply when reviewing your contribution. Example disclosures: "This PR was written primarily by Claude Code." or "I consulted ChatGPT to understand the codebase, but the proposed changes were fully authored manually by myself.".

This PR was written by Claude Code as part of an automated fix-propagation routine: recent fixes on develop were pattern-matched against sibling packages, and each candidate site was validated by multiple independent review passes before inclusion.


🤖 Generated with Claude Code

https://claude.ai/code/session_01Kb1Gpvp3E3LKqB4iF49u1C


Generated by Claude Code

Propagates fix from 42d3459 ("style: add missing spaces") to sibling
test files migrated to ULP-based assertions which retain unspaced
single-level bracket indexing.

Affected packages:

-   blas/base/drotg
-   stats/base/dists/bradford/pdf
-   stats/base/dists/exponential/cdf
-   stats/ttest

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kb1Gpvp3E3LKqB4iF49u1C
Propagates fix from 04cd72b ("build: cap xargs batch size in
`run_affected_tests`") to the sibling workflow script, which invokes
make via xargs with the same unbounded file-list idiom and is thus
susceptible to the same "Argument list too long" failure.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kb1Gpvp3E3LKqB4iF49u1C
Propagates fix from d30d365 ("chore: fix EditorConfig lint errors") to
the sibling ESLint rule package whose examples file has the same
space-indented example-output comment block, in violation of the
project EditorConfig mandating tab indentation for JavaScript files.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kb1Gpvp3E3LKqB4iF49u1C
Propagates fix from b15594b ("chore: fix JavaScript lint errors") to
the sibling file in the same package, which uses the `new Array()`
constructor in violation of the `stdlib/no-new-array` ESLint rule.

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

Copy link
Copy Markdown
Member Author

The Run affected tests failure is pre-existing and not introduced by this PR.

What is failing. _tools/github/rank-followers/test/test.cli.js at lines 299 and 379: the format and delimiter CLI tests expect 'csv' and ';' but receive undefined.

Why it is not this PR's. The test fixtures (cli_format.js.txt, cli_delimiter.js.txt) mock the entire ./../lib via proxyquire and assert on the options object the CLI passes to the lib. The CLI never forwards format or delimiter to the lib — both are consumed inside bin/cli (fmt = flags.format || 'csv'; delimiter = flags.delimiter || ',') and applied by the CLI's own csv/json writers — so the mocked lib always receives an empty options object and the assertions cannot pass against the current CLI design. Reproduced locally with identical results using the develop versions of these files; this PR's only change in this dependency chain is rank-users/lib/shuffle.js, which never loads in these tests (verified by instrumenting module loading). The failure only surfaces now because Run affected tests runs these _tools packages solely when they or their dependencies change, which is rare. Note that _tools/github/rank-users/test/test.cli.js carries the identical assertions at the same line numbers and fails the same way.

Fix. None exists yet. Proposed patch, kept out of this PR to avoid widening it: in both rank-users and rank-followers, rewrite the two CLI tests (and their fixtures) to assert the CLI's actual output path — mock the lib to return a { 'data': [...], 'results': [...] } payload and assert that stdout is CSV using the provided delimiter and JSON when --format=json — or, if forwarding was the intended design, add opts.format/opts.delimiter forwarding in both bin/cli files and update the docs accordingly.

All other checks on this head are green, including Calculate test coverage for PR packages, which runs the changed packages' own test suites.


Generated by Claude Code

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