Skip to content

fix(iobroker): sync io-package.json metadata and guard against future drift - #125

Merged
Bre77 merged 1 commit into
mainfrom
fm/iob-package-sync
Aug 13, 2026
Merged

fix(iobroker): sync io-package.json metadata and guard against future drift#125
Bre77 merged 1 commit into
mainfrom
fm/iob-package-sync

Conversation

@Bre77

@Bre77 Bre77 commented Aug 13, 2026

Copy link
Copy Markdown
Member

Intent

  • io-package.json's common.version/common.news had lagged the published npm version since 0.1.10 - changesets bumps package.json/CHANGELOG.md on release but never touches io-package.json, so every release drifted it further, misrepresenting installed adapter metadata and blocking a clean repository submission.
    • common.version now matches the current release (0.2.5); common.news has entries for every release since 0.1.10 (truncated to the newest 7, as the ioBroker repo builder requires).
    • test/packageVersionParity.test.ts fails CI if io-package.json common.version and package.json version ever disagree again, so changesets can't silently drift it in the future.
  • Ran the official @iobroker/repochecker locally (--local mode) against the package and fixed what it reasonably flagged:
    • io-package.json: removed deprecated common.main/common.title/common.license (superseded by titleLang/licenseInformation), bumped js-controller/admin dependency minimums, added protectedNative/encryptedNative for accessToken, dropped the redundant smart home keyword, added es/fr/it/nl/pl/pt/ru/uk/zh-cn translations for titleLang/desc/common.news.
    • package.json: bumped engines.node to >=22, @iobroker/adapter-core/@iobroker/testing to current minimums, removed the unused chai/mocha devDependencies (already bundled by @iobroker/testing), fixed the ioBroker keyword casing.
    • admin/jsonConfig.json: fixed schema errors (unsupported password/required/button/placeholder properties, missing responsive size attributes) and added admin/i18n/en/admin/i18n/de translation files.
    • src/main.ts: the polling timer now goes through this.setInterval()/this.clearInterval() instead of the plain global functions.
    • README.md: removed the direct-npm install instructions (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 to CHANGELOG_OLD.md).
    • Removed .npmignore in favor of the existing package.json files allowlist.

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 dedicated ioBroker.<adapter> repo; this package lives in a monorepo, which isn't fixable in this PR and is itself the actual submission blocker.
  • admin/i18n for es/fr/it/nl/pl/pt/ru/uk/zh-cn (E5010) and E1063 (main is build/src/main.cjs, and the checker wants a .js/.ts extension - 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 dedicated test-and-release.yml) reflects this repo's shared reusable-ci.yml workflow instead of the single-adapter-repo template; not something to duplicate here.

Splitting this adapter into its own ioBroker.teslemetry repository is a separate decision - not made in this PR.

… 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.
@Bre77 Bre77 added the fm Opened by a Firstmate crewmate label Aug 13, 2026
@Bre77
Bre77 merged commit 7e333f9 into main Aug 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fm Opened by a Firstmate crewmate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant