chore: update keywords#13423
Merged
Merged
Conversation
Remove the leading `stdlib`, `datasets`, `dataset`, and `data` keywords from `lib/node_modules/@stdlib/datasets/cmudict/datapackage.json`. The four package-manager-oriented keywords appear in `package.json` (the npm-facing manifest) but not in `datapackage.json` for the other 56 sibling datasets (98% conformance); only `cmudict` carried them here. The change is confined to the `keywords` array; the LICENSE-derived `BSD-2-Clause` identifier and the eight `resources` entries are unchanged. Content-descriptive keywords (`words`, `speech`, `nlp`, `dictionary`, `english`, `en`, ...) are preserved.
Rewrite `lib/node_modules/@stdlib/datasets/stopwords-en/datapackage.json` `license` from `CC0 AND PDDL-1.0` to `PDDL-1.0 AND CC0-1.0`. The LICENSE file names the underlying licenses as "Open Data Commons Public Domain Dedication & License 1.0 (PDDL 1.0)" (database) and "Creative Commons Zero v1.0 Universal (CC0 1.0)" (contents), and the 40 sibling datapackage.json files combining these two licenses (98% conformance among that subset) spell the identifier as `PDDL-1.0 AND CC0-1.0`. The prior value used the non-canonical bare `CC0` (missing the `-1.0` version qualifier) and reversed term order. SPDX `AND` is commutative, so the change is semantically equivalent; only the identifier's canonical form changes.
Contributor
Coverage Report
The above coverage report was generated for the changes in this PR. |
kgryte
approved these changes
Jul 11, 2026
datasets/cmudict and datasets/stopwords-en datapackage metadata
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.
Description
This pull request:
datapackage.jsonoutliers in@stdlib/datasetsso their metadata matches the convention used by the other 55 sibling datasets. Two files change; no code, tests, examples, or benchmarks are touched.Namespace summary
@stdlib/datasetspackage.jsontop-level /scripts/stdlibkey sets;datapackage.jsontop-level shape,resourcesentry shape,keywordsarray,licenseidentifier,sourcesshape;README.md##/###heading list;manifest.jsonpresence;test/,benchmark/,examples/file naming;bin/clishebang and structure;etc/cli_opts.jsonshape;docs/repl.txtplaceholder set;docs/usage.txtlayout;docs/types/index.d.tsshape;lib/index.jsre-export pattern;lib/main.jspublic signature, return kind, validation prologue, error construction, JSDoc shape, andrequiredependency set.package.jsontop-level key set (100%),directoriesvalue set (100% modulo thescriptssub-key which tracks whether a builder script exists),os/engines/contributors/author/homepage/bugs/repository/main/types(100%), file-tree entriesLICENSE,README.md,benchmark/benchmark.js,bin/cli,datapackage.json,docs/repl.txt,docs/types/index.d.ts,docs/types/test.ts,docs/usage.txt,etc/cli_opts.json,examples/index.js,lib/index.js,lib/main.js,package.json,test/test.cli.js,test/test.js(100%),bin/clishebang#!/usr/bin/env node(100%), README## Usage/## Examples/## CLI/## Licensesections (100%),lib/index.jsrequire('./main.js')+module.exports = mainpattern (100%),datapackage.jsontop-level key set{name, version, title, description, resources, sources, keywords, license}(100%),datapackage.jsonresource entry shape (100%), 40/41 = 98% of PDDL+CC0-licensed datapackages spell the SPDX identifier asPDDL-1.0 AND CC0-1.0, and 56/57 = 98% of datapackages omit the four package-manager-oriented keywords (stdlib,datasets,dataset,data) that belong inpackage.jsonrather thandatapackage.json.## Notes(32% at h2, 44% at h3),## References(49%),## See Also(47%) — all content-dependent (whether the dataset has bibliographic references or documented siblings).etc/cli_opts.jsonstringkey presence (30%) — depends on whether the CLI accepts a--formator similar option.directories.scriptssub-key (25%) — depends on whether the package carries a builder script underscripts/. Copyright year inlib/main.jsheader (82%2018, 16%2019, 2%2020) — reflects when the package first landed, not drift.datapackage.jsonlicensefield overall (four distinct values across the namespace) — depends on the underlying data license.Per outlier package
@stdlib/datasets/cmudictcmudict/datapackage.jsonwas the sole outlier carrying the four package-manager-oriented keywordsstdlib,datasets,dataset,dataat the head of itskeywordsarray — a set already present verbatim incmudict/package.jsonand correctly omitted by the other 56 sibling datapackages (98% conformance). The remaining nine content-descriptive keywords (words,speech,language,nlp,spelling,pronounciation,dictionary,english,en) are preserved, and the LICENSE-derived"license": "BSD-2-Clause"identifier is untouched.@stdlib/datasets/stopwords-enstopwords-en/datapackage.jsonwas the solePDDL + CC0-licensed sibling using the non-canonical identifierCC0 AND PDDL-1.0— 40 of the 41 packages sharing this license combination (98% conformance among that subset) use the SPDX-canonicalPDDL-1.0 AND CC0-1.0. The prior value dropped the-1.0version qualifier fromCC0and reversed term order. The LICENSE file explicitly names "Open Data Commons Public Domain Dedication & License 1.0 (PDDL 1.0)" for the database and "Creative Commons Zero v1.0 Universal (CC0 1.0)" for its contents, so the replacement is the SPDX-canonical form of the license the file already documents;ANDis commutative in SPDX, so the change is semantically equivalent.Validation
Checked:
package.jsonshape,datapackage.jsontop-level shape and resource entries, README section list, test/benchmark/example filenames,bin/clishebang,etc/cli_opts.jsonshape,docs/repl.txtplaceholder set,docs/types/index.d.tsshape).lib/main.jsfiles (public signature, return kind, validation prologue, error construction, JSDoc shape,requiredependencies). 54/57 datasets are no-argument functions that synchronously read data from disk and rethrow read errors; the 3 options-taking outliers (cmudict,minard-napoleons-march,sotu) havelib/validate.js, useformatfor error construction, and were ruled intentional (they filter multi-record datasets by user-supplied criteria).datapackage.jsondeviations are drift (not content-legitimate); confirmed no test, example, benchmark, sibling package, or repository-wide tool reads or asserts ondatapackage.jsonkeyword or license values; confirmed the pre-commit hook'spackage.jsonvalidator explicitly excludesdatapackage.json; confirmed the only cross-references todatapackage.jsonare per-packagescripts/*.jsbuilders that populate their ownresourcesfield.@stdlib/datasetswith the same fixes (searched open PRs and PRs merged in the last 14 days).Deliberately excluded:
sotumissinglib/browser.js,benchmark/benchmark.browser.js,test/test.browser.js,test/test.main.js— legitimate architectural difference (multi-file speech corpus; browser support is instead provided via file-specificbrowserfield mapping in itspackage.json).cmudictlicense: "Apache-2.0 and BSD"inpackage.json— content-legitimate (data is BSD-2-Clause per the LICENSE file; code is Apache-2.0).anscombes-quartetandherndon-venus-semidiameterscarrying"string": []inetc/cli_opts.jsonwhile all 40 sibling CLIs without string options omit the key — below the 75% majority threshold when framed at the whole-field granularity; not batched here because it's a cosmetic no-op rather than a metadata correctness fix.cmudictkeyword typopronounciation(correct spellingpronunciation) — a spelling fix, not majority-vote drift, and out of scope for a drift-detection run.lib/main.jsheaders — reflects package creation date, not drift.Related Issues
No.
Questions
No.
Other
Random namespace pick, seed
2026-07-11-drift-run. Eligibility criteria: ≥8 non-autogenerated direct child packages underlib/node_modules/@stdlib/and its sub-namespaces (49 candidate namespaces qualified). The chosen namespace had 57 members, none autogenerated. Full per-feature drift report saved locally alongside the run.Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
This PR was authored by Claude Code running a cross-package drift-detection routine: the namespace (
@stdlib/datasets) was picked at random (seed2026-07-11-drift-run), structural and semantic features were extracted for every member, majority patterns were computed at a 75% conformance threshold, and independent structural-review and cross-reference verification agents confirmed each correction before it was applied. Only twodatapackage.jsonfiles were changed — four keyword removals incmudictand a one-line SPDX identifier normalization instopwords-en.@stdlib-js/reviewers
Generated by Claude Code