docs(issues): audit the 2024 done batch for mis-ticked issues - #131
Open
elycruz wants to merge 1 commit into
Open
docs(issues): audit the 2024 done batch for mis-ticked issues#131elycruz wants to merge 1 commit into
elycruz wants to merge 1 commit into
Conversation
…-ticked issues Re-verifies all 24 issues closed in functional-jslib/fjl between 2024-02-09 and 2024-06-01 against the tree at 61a9632, plus the unnumbered tsconfig.prod.esm.json item in #57's "Done" list. Result: 14 HOLDS, 6 PARTIAL, 3 NOT DONE, 1 unverifiable. Confirms the two known-bad closures with current evidence (#75 replicate is still eager at src/list/replicate.ts:6, and its test pins that behaviour; #77 test co-location never happened - 124 of 125 fjl test files remain under packages/fjl/tests/ with three naming conventions live at once). Adds a third undetected mis-tick, #43, whose Slice removal never happened and which is a closed duplicate of the open #114. The failures cluster in library-surface work where a removal was asked for and an addition-alongside was delivered; every build and tooling closure in the batch holds. Also records an incidental defect: packages/fjl/src/number/numRange.test.ts is compiled into the published ESM build because the package tsconfig excludes *_test.ts but not *.test.ts. Report only - no source changed and no GitHub issue mutated. Recommended actions are listed with exact gh commands for the maintainer to review. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Work unit:
125-audit-2024-batch.Re-verifies all 24 issues closed in
functional-jslib/fjlbetween2024-02-09and2024-06-01against the tree at61a9632d, plus theunnumbered
tsconfig.prod.esm.jsonitem in #57's "Done" list. Adds one file:md/issues/AUDIT_2024_BATCH.md.Every claim was checked against code, never against issue text. Issue bodies
were used only to establish what was claimed.
Nothing was actioned. No source file changed, and no GitHub issue was
reopened, closed, commented on, or relabeled. Every recommended mutation is
listed with its exact
ghcommand in the report's "Recommended actions"section, for the maintainer to review first.
Result: 14 HOLDS, 6 PARTIAL, 3 NOT DONE, 1 unverifiable.
The pattern #125 suspected is real but narrower than feared. Every build and
tooling closure in the batch holds; the failures cluster entirely in
library-surface work, and share one trait — the issue asked for a removal or
replacement, and what landed was an addition alongside the thing that was
supposed to go away. Closure date is a weaker predictor than that shape.
Baselines in-tree:
pnpm test→ 133 suites / 1066 tests passing;pnpm build→ exit 0, no warnings;pnpm lint→ 0 errors, 62 warnings.Closes #125
Verdict table
curry_from tests and test helpersSlicetype withIterabletypeiterate/repeat/replicate/cycle→ generatorsconcat/appendshould just be nativeconcatfind*/reduce*utils should be the real implscurry_module use in teststake/takeWhileetc. should work with generatorsnumRangeandcharRangeplatform/→_platform/applyissetand replace its usesamd/umd/iifeoutput formatsdist/clean step before builds*.tsor*.mjs.npmignore/.eslintignoredot/ci entriesunknownas generic valuestsconfig.prod.esm.jsonconsolidation (#57 only)Headline findings
A third mis-tick, previously undetected — #43.
Slicewas never replaced:still defined at
packages/fjl/src/types/data.ts:25and referenced by 72 sitesacross 24 files, including two sibling packages. #43 is a closed duplicate of
the still-open #114, and it is not referenced from #57, which is why it was
missed.
#75 confirmed, with a detail not previously recorded.
iterate,repeatand
cycleare genuine generators;replicateis still eager atpackages/fjl/src/list/replicate.ts:6. The "Tests" tick is false for the samemethod —
packages/fjl/tests/list/test-replicate.ts:8-10actively pins theeager behaviour via
toEqual, so the conversion is not a one-line change.#77 confirmed, with exact counts. 124 test files under
packages/fjl/tests/, 1 co-located (src/number/numRange.test.ts). The"125 of 126" figure quoted in #125 and #57 should read 124 of 125 —
packages/fjl/tests/helpers.tsis a fixture module, not a test. Threeconventions live at once:
test-*.ts×118,index_test.ts×6,*.test.ts×1,and
jest.config.mjs:3-6matches all three, which is why nothing ever failed.Note the asymmetry: the
test-*glob matches only undertests/, so thedominant convention cannot be co-located without also being renamed — likely why
the first attempt stalled after one file. A fourth convention exists in
packages/fjl-labs/data/*_test.ts, matched by nothing: three test files inthe repo have never been executed.
#83 — the aliasing went the wrong way.
find = findWhere(
src/list/find.ts:10),foldr = reduceRight(src/list/foldr.ts:10), etc.,while
list/utils/remains the real implementation and is publicly re-exportedvia
src/list/index.ts:104.fjlships both names for every pair — the exactduplication the issue was filed to remove.
#79 — no consolidation occurred. The eight
obj*symbols were never madeprivate; they are exported from the package root and tested as public API at
tests/object/index_test.ts:578-648. The issue's escape hatch was explicitly aprivate internal fork.
#89 —
charRangewas never written. Zero hits acrosspackages/**/*.ts.The "Impl" box was ticked for a method that does not exist.
#90 is unfalsifiable as written. Its acceptance criteria are
instanceOfplus a literal
....instanceOfgenuinely holds; the unenumerated sweep didnot happen (10 sites listed in the report). Recommend folding into #122.
Incidental defect: a test file ships in the published build.
packages/fjl/tsconfig.json:8excludessrc/**/*_test.tsbut notsrc/**/*.test.ts, sopnpm buildemitspackages/fjl/dist/esm/number/numRange.test.d.ts. Only the declaration leakstoday; it becomes a real emission as soon as a second
.test.tsundersrc/isimported.
Recommended actions
Full commands are in the report. None executed.
find*, andreduce*set of util methods should just be their actual implementation counterparts #83 —find*/reduce*consolidation; not tracked.numRange, andcharRangeimplementations #89 —charRangemissing.concatandappendshould just be nativeconcat#81 —list/concatstill takes an array-of-arrays.Slicetype withIterabletype #43 (do not reopen) — superseded by Remove the use of generics defined in 'data/list'. #114; record the closure was premature.iteratorfamily of methods to just be generators, where it makes sense #121 — note thattest-replicate.tspins the eager behaviour.isSuffixOfargument-order inconsistency.fjl-labspackaging gap (nopackage.json, not in jest projects, 3 tests never run).Proposed #57 correction
Of #57's nine numbered "Done" references, seven hold and two do not: #79 and
#90 are both PARTIAL and should come out. The
fjl-labsentry on thesub-packages line also overstates.
The report gives the exact paste-ready replacement block, and distinguishes the
minimal correction (drop #79, #90,
fjl-labs; add a "Ticked hereprematurely" subsection) from the optional completeness pass that also folds in
the batch's other verified-clean closures.
Verification
pnpm test→ 133 suites, 1066 tests, all passingpnpm build→ exit 0, no warningslint-stagedmatched no staged files🤖 Generated with Claude Code