fix(iobroker): sync io-package.json metadata and guard against future drift - #125
Merged
Conversation
… drift common.version and common.news had lagged the published npm version since 0.1.10, since changesets only bumps package.json/CHANGELOG.md and never touches io-package.json. Syncs the metadata, adds a test that fails CI if they diverge again, and fixes most of what the official ioBroker repository checker flags: deprecated io-package.json fields, dependency minimums, admin JSON-config schema issues, a plain setInterval() that should use the adapter's own timer helpers, and README/changelog/license formatting.
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.
Intent
io-package.json'scommon.version/common.newshad lagged the published npm version since0.1.10- changesets bumpspackage.json/CHANGELOG.mdon release but never touchesio-package.json, so every release drifted it further, misrepresenting installed adapter metadata and blocking a clean repository submission.common.versionnow matches the current release (0.2.5);common.newshas entries for every release since0.1.10(truncated to the newest 7, as the ioBroker repo builder requires).test/packageVersionParity.test.tsfails CI ifio-package.jsoncommon.versionandpackage.jsonversionever disagree again, so changesets can't silently drift it in the future.@iobroker/repocheckerlocally (--localmode) against the package and fixed what it reasonably flagged:io-package.json: removed deprecatedcommon.main/common.title/common.license(superseded bytitleLang/licenseInformation), bumpedjs-controller/admindependency minimums, addedprotectedNative/encryptedNativeforaccessToken, dropped the redundantsmart homekeyword, addedes/fr/it/nl/pl/pt/ru/uk/zh-cntranslations fortitleLang/desc/common.news.package.json: bumpedengines.nodeto>=22,@iobroker/adapter-core/@iobroker/testingto current minimums, removed the unusedchai/mochadevDependencies (already bundled by@iobroker/testing), fixed theioBrokerkeyword casing.admin/jsonConfig.json: fixed schema errors (unsupportedpassword/required/button/placeholderproperties, missing responsive size attributes) and addedadmin/i18n/en/admin/i18n/detranslation files.src/main.ts: the polling timer now goes throughthis.setInterval()/this.clearInterval()instead of the plain global functions.README.md: removed the direct-npm installinstructions (adapters must be installed via the ioBroker admin UI), moved the license section last with a proper copyright line, and replaced the stale hand-written changelog with real entries (older ones moved toCHANGELOG_OLD.md)..npmignorein favor of the existingpackage.jsonfilesallowlist.Readiness assessment
The checker's remaining findings are either monorepo-specific false positives or out of scope for a code-only pass:
E0002/E0004/E0007/E0020/E1003/E2000/W4001/E9007: the checker resolves adapter identity from the GitHub repo URL and expects a dedicatedioBroker.<adapter>repo; this package lives in a monorepo, which isn't fixable in this PR and is itself the actual submission blocker.admin/i18nfores/fr/it/nl/pl/pt/ru/uk/zh-cn(E5010) andE1063(mainisbuild/src/main.cjs, and the checker wants a.js/.tsextension - a byproduct of the tsdown CJS build output) are real but lower-value gaps left for a follow-up rather than machine-translating UI copy or reworking the build output extension in this pass.E3002(no dedicatedtest-and-release.yml) reflects this repo's sharedreusable-ci.ymlworkflow instead of the single-adapter-repo template; not something to duplicate here.Splitting this adapter into its own
ioBroker.teslemetryrepository is a separate decision - not made in this PR.