Repository navigation
chore: clean-up - #15455
chore: clean-up#15455
Conversation
Propagates fix from 4e396e9 ("chore: clean-up") to sibling packages carrying the same three defects. - 37 TypeScript declaration tests imported their own package by its `@stdlib/...` specifier instead of `./index`. Both specifiers resolve to the same declaration file today, so nothing is mistyped; the imports are self-referential and diverge from the 5797 declaration tests already using `./index`. - `blas/ext/base/ztril` required a sibling module without its file extension, violating `stdlib/require-file-extensions`, which the project configures as an error. - 31 kernel signature headings across three `ndarray/base/kernels/generic/*-strided1d/*` READMEs documented `strideY`/`strideZ` where the implementations, their JSDoc annotations, and the READMEs' own parameter lists all use `stridesY`/`stridesZ`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NLYWTPagxP6PCB8rbZC9Q7
Propagates fix from 93afd5e ("chore: fix JavaScript lint errors") to the one sibling accumulator still allocating its sliding-window buffer with `new Array( W )`, which `stdlib/no-new-array` configures as an error. As in the source commit, the buffer is now allocated via `@stdlib/array/base/zeros`, avoiding a holey array. The change is output-neutral: every read of a buffer slot is gated behind a full window, so the initial fill value is never observable. Differentially exercising the accumulator before and after across 6.48M randomized cases (window sizes 1-6, known and unknown means, sequences drawn from NaN and assorted finite values) produced no differences. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NLYWTPagxP6PCB8rbZC9Q7
Coverage Report
The above coverage report was generated for the changes in this PR. |
|
The affected-directory set was computed against a stale ancestor. ancestor_commit=$(git merge-base ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }})
files=$(git diff --diff-filter=AM --name-only $ancestor_commit ${{ github.event.pull_request.head.sha }})The ancestor it resolved sits at or before
Since the job did benchmark This PR contributes almost nothing to that workload. The script maps files to directories with Worth noting No fix for this exists to port, and the fix does not belong in this PR — it is a workflow change. Deriving the ancestor from the base ref instead of the payload SHA would yield 42 files here: git fetch --no-tags --depth=1000 origin "${{ github.event.pull_request.base.ref }}"
ancestor_commit=$(git merge-base FETCH_HEAD ${{ github.event.pull_request.head.sha }})
files=$(git diff --diff-filter=AM --name-only $ancestor_commit ${{ github.event.pull_request.head.sha }})The job died at 61 minutes against a 60-minute cap, so a re-run is marginal rather than certain to fail again and would be worth one attempt. I tried to re-run it and got Generated by Claude Code |
|
As the CI failure is expected, I'll go ahead and merge. |
blas, ndarray, and stats
Description
This pull request propagates fixes merged to
developbetween 2026-09-22T19:31Z and 2026-09-23T11:54Z to sibling packages carrying the same defects.4e396e96— clean-upSource:
4e396e96("chore: clean-up"). Three defects fixed there recur across siblings and are cleaned up here too:docs/types/test.tsfiles import their own package via@stdlib/...instead of./index, inconsistent with the 5797 declaration tests already using the relative form —assert/is-int64,blas/base/ndarray/*(23 pkgs),blas/ext/base/ndarray/{dnansumkbn2,dnansumpw},blas/ext/base/{ztril,ztriu},math/iter/sequences/tribonacci,stats/base/ndarray/*(6 pkgs),stats/{mediansorted,nanrange-by},stats/strided/drangeabs.blas/ext/base/ztril/lib/main.jsrequires a sibling module missing its.jsextension, violatingstdlib/require-file-extensions.ndarray/base/kernels/generic/{binary-strided1d/unblocked,unary-strided1d/unblocked,unary-strided1d/blocked}READMEs saystrideY/strideZ, mismatching the implementations, their JSDoc, and the READMEs' own param bullets, which all usestridesY/stridesZ.Note that every one of the 37 packages sets
"types": "./docs/types"and declares neitherexportsnortypesVersions, so both specifiers resolve to the same declaration file today. Nothing is currently mistyped; the imports are self-referential.93afd5e9—no-new-arrayPropagates the lint fix from
93afd5e9(stats/incr/mvmr) tostats/incr/mvariance, the last remaining sliding-window accumulator understats/incr/allocating its circular buffer vianew Array( W ). Same two edits:zerosfrom@stdlib/array/base/zerosadded to the require block (afterisnan, beforeformat, preserving descending line-length order) andbuf = new Array( W )replaced withbuf = zeros( W ).Output-neutral: every buffer slot is read only after the window has fully filled, so the initial fill value is never observed. Differential testing across 6.48M randomized cases (window sizes 1-6, known/unknown mean, NaN and finite value sequences) found zero output differences before/after.
Related Issues
No.
Questions
No.
Other
Validation
Candidate sites were enumerated by structural search scoped to each pattern's namespace, then correlated per site (for the declaration-test pattern, the import specifier was compared byte-for-byte against the package's own
package.json"name"). Each site was then reviewed by two independent validation agents reading every target file in full, an adaptation pass producing the per-site patch, and a style-consistency pass checking the result againstdocs/style-guidesand the merged sibling fixes. All 41 sites were confirmed by both validators with no rejections and none flagged as needing human judgment.Deliberately excluded
d8a11675,src/<pkg>.c→src/main.c): ~130 sites repo-wide. Pure naming convention with no behavioural, performance, or user-visible effect; belongs in a dedicated sweep rather than here.intro/notessection wrappers (df5f5ec0): 1524 and 771 files respectively. Template conformance, not a defect, and far too broad for this PR.sqrt/square round-trip and multiply-before-divide reordering (fed47c5a): no remaining sites understats/base/dists/*. The one textual match elsewhere sits inside a Boost-derived special-function kernel where reordering would perturb well-tested numerical output.f0a71106): no remaining sites; siblings are already consistent.id-lengthsuppression comments (ea32e3ad): the rule is configured aswarnand 700+ identifiers already exceed the limit without suppressions, so matches are not actionable.new Array(...)replacement (93afd5e9): 63 textual matches outsidestats/incr/, most either deliberate or already carrying inline rule suppressions. Only the singlestats/incr/sibling was a direct analog.random/array/bernoulli(08e741bd): the one candidate samples a string array rather than a boolean one, so the source patch is not a direct analog.No cross-package changes, no API changes, and no new tests beyond what already exists — every patch is self-contained within its target file.
Note on local verification
This repository's development dependencies are not installed in the environment used to prepare this branch, so ESLint and remark could not be run locally. The
blas/ext/base/ztrilandstats/incr/mvariancechanges were smoke-tested directly under Node. CI is expected to provide full lint coverage.Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
This pull request was prepared by Claude Code as part of an automated routine that reviews fixes merged to
developand propagates them to sibling packages with the same defect. Candidate sites were found by structural search, each site was reviewed by independent validation passes before any edit was applied, and the resulting patches were checked against the merged source fixes. It is opened as a draft for maintainer review.🤖 Generated with Claude Code
https://claude.ai/code/session_01NLYWTPagxP6PCB8rbZC9Q7
Generated by Claude Code