Repository navigation
chore: add missing field - #15490
Merged
Merged
chore: add missing field#15490
Conversation
…kage meta data Added the missing top-level `os` field (present in 121 of 125 sibling packages in `_tools/eslint/rules`, 96.8%, and in 6127 of 6225 package meta data files across the project, 98.4%). The inserted value is the complete `operating-system` enum declared in `_tools/package-json/schema`, and the key is placed between `engines` and `keywords` per the canonical ordering in `_tools/package-json/standardize`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DEXwr8MryTfYu483qyCqr4
… package meta data Added the missing top-level `os` field (present in 121 of 125 sibling packages in `_tools/eslint/rules`, 96.8%, and in 6127 of 6225 package meta data files across the project, 98.4%). The inserted value is the complete `operating-system` enum declared in `_tools/package-json/schema`, and the key is placed between `engines` and `keywords` per the canonical ordering in `_tools/package-json/standardize`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DEXwr8MryTfYu483qyCqr4
…eta data Added the missing top-level `os` field (present in 121 of 125 sibling packages in `_tools/eslint/rules`, 96.8%, and in 6127 of 6225 package meta data files across the project, 98.4%). The inserted value is the complete `operating-system` enum declared in `_tools/package-json/schema`, and the key is placed between `engines` and `keywords` per the canonical ordering in `_tools/package-json/standardize`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DEXwr8MryTfYu483qyCqr4
…est` package meta data Added the missing top-level `os` field (present in 121 of 125 sibling packages in `_tools/eslint/rules`, 96.8%, and in 6127 of 6225 package meta data files across the project, 98.4%). The inserted value is the complete `operating-system` enum declared in `_tools/package-json/schema`, and the key is placed between `engines` and `keywords` per the canonical ordering in `_tools/package-json/standardize`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DEXwr8MryTfYu483qyCqr4
kgryte
approved these changes
Sep 24, 2026
os field to four _tools/eslint/rules package meta data files
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:
osfield to thepackage.jsonof_tools/eslint/rules/no-builtin-big-int,_tools/eslint/rules/no-error-string-concat,_tools/eslint/rules/no-new-array, and_tools/eslint/rules/tsdoc-declarations-doctest, the only four members of the namespace lacking it.The inserted value is the complete
operating-systemenum declared in_tools/package-json/schema/lib/schema.json, and the key is positioned betweenenginesandkeywordsper the canonical ordering in_tools/package-json/standardize/lib/keys.json. The change is purely additive (44 insertions, 0 deletions) and touches no other keys.Namespace summary
lib/node_modules/@stdlib/_tools/eslint/rules/containing apackage.json).package.jsontop-level key set,scriptskey set,stdlibkey set, README section list and order, test/benchmark/example file naming,require()dependency set, exported-value kind, argument-validation prologue, error-message construction, and the JSDoc shape of each rule'screatefunction.lib/index.js,lib/main.js,examples/index.js,test/test.js,test/fixtures/valid.js,test/fixtures/invalid.js, the 16 always-presentpackage.jsonkeys, emptydependencies/devDependencies, and the## Usage/## ExamplesREADME sections. Theoskey was the only clear-majority feature whose outliers yielded a mechanical, behavior-preserving correction.## Usage/## Examples(## Notesappears in 7/125, 5.6%);scriptsandstdlibkey sets (scriptsis{}in all 125, so there are no keys to vote on); and the JSDoc@paramlist of internal helper functions, which tracks each rule's own complexity and carries no namespace-wide convention._tools/eslint/rules/no-builtin-big-int_tools/eslint/rules/no-builtin-big-intimplements a pure AST-based ESLint rule: it walksLiteralandCallExpressionnodes to flag the built-inBigIntliteral syntax and constructor in favor of@stdlib/bigint/ctor. No native bindings, no platform branching, nothing that ties it to a specific OS. We add the missingosfield betweenenginesandkeywords, matching the canonical ordering in_tools/package-json/standardize/lib/keys.jsonand bringing it in line with 121/125 (96.8%) sibling_tools/eslint/rulespackages and 6127/6225 (98.4%)package.jsonfiles project-wide._tools/eslint/rules/no-error-string-concat_tools/eslint/rules/no-error-string-concatimplements a pure AST check flagging+concatenation in error constructor arguments; it has no native bindings, no OS branching, nothing platform-specific. Addingosbrings it in line with 121 of 125 sibling rule packages (96.8%) and 6127 of 6225package.jsonfiles project-wide (98.4%), inserted betweenenginesandkeywordsper the canonical ordering in_tools/package-json/standardize/lib/keys.json._tools/eslint/rules/no-new-array_tools/eslint/rules/no-new-arraywas missing the top-levelosfield; added it betweenenginesandkeywordsper the canonical key ordering in_tools/package-json/standardize/lib/keys.json, with the fulloperating-systemenum from_tools/package-json/schema. The rule's implementation is a pure AST check flaggingnew Array()expressions in favor of array literals — no native bindings, no platform-conditional logic — so it runs identically on every supported OS and has no basis for omitting the field. 121 of 125 sibling packages under_tools/eslint/rules(96.8%) already carryos; this bringsno-new-arrayinto conformance._tools/eslint/rules/tsdoc-declarations-doctestAdded the missing top-level
osfield to_tools/eslint/rules/tsdoc-declarations-doctest'spackage.json, populated with the fulloperating-systemenum from_tools/package-json/schemaand positioned betweenenginesandkeywordsper the canonical key ordering in_tools/package-json/standardize/lib/keys.json. 121 of 125 sibling packages under_tools/eslint/rules(96.8%) already carry this field; this closes the gap. The package's__stdlib__.envs.nodemarker documents that the rule depends on Node'svmandprocessbuiltins — it does not narrow platform support, and other packages carrying the same marker still declare the fullosarray.Related Issues
No.
Questions
No.
Other
Validation
Checked:
package.json/manifest.jsonkey sets, README heading sequences, and test/benchmark/example filenames.require()dependency set, and JSDoc shape.@stdlibpackage.jsonfiles rather than within the namespace alone.operating-systemenum; resulting key order validated as a subsequence of_tools/package-json/standardize/lib/keys.json; diff confirmed additive with no reformatting of surrounding lines.Deliberately excluded:
test/fixtures/unvalidated.js, absent from 6 of 125 packages (95.2% conformance). The 119 conforming packages pair the fixture with atest/test.jsblock that feeds it to theRuleTesteras extravalidcases, and the fixture contents are rule-specific. Adding the file alone would leave a dead, never-loaded artifact, and authoring the fixture plus its test block is new test coverage rather than a drift correction."bin": {}, absent from 3 of 125 packages (97.6% in-namespace conformance). Only 576 of 6225package.jsonfiles project-wide (9.3%) carry abinkey at all, and it is never populated anywhere in this namespace. The in-namespace prevalence reflects scaffold history, not a convention worth propagating.__stdlib__removal fromtsdoc-declarations-doctest, the sole member carrying the key. The declaration is accurate and the field is schema-documented and read by tooling under_tools/pkgs/.engines.node, which is">=0.11.15"inrequire-file-extensionsagainst">=0.10.0"in the other 124. Normalizing it would relax a declared compatibility constraint rather than supply absent metadata, so it is left for a maintainer.@privateannotations and one non-conforming internal function name (createrather thanmaininrequire-spaces). Both are cosmetic source-level deviations outside the scope of a metadata change.Notes
README.mdsection in 116 of 125 packages carries theDo not manually edit this section, as it is automatically populatedmarker for## See Also. No generator-owned section,repl.txt, or.d.tsfile is touched by this pull request.Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
This pull request was written primarily by Claude Code. The namespace was surveyed programmatically, candidate corrections were reviewed by separate model instances, and the
package.jsonedits and this description were generated and then verified against the repository's ownpackage.jsonschema and key-ordering data.@stdlib-js/reviewers
🤖 Generated with Claude Code
https://claude.ai/code/session_01DEXwr8MryTfYu483qyCqr4
Generated by Claude Code