Skip to content

chore: maintenance pass – deps, CI modernization, repo-checker fixes - #165

Merged
DutchmanNL merged 2 commits into
mainfrom
chore/maintenance-2026-08
Aug 24, 2026
Merged

chore: maintenance pass – deps, CI modernization, repo-checker fixes#165
DutchmanNL merged 2 commits into
mainfrom
chore/maintenance-2026-08

Conversation

@DutchmanNL

Copy link
Copy Markdown
Contributor

Maintenance pass bringing the adapter up to the current ioBroker standards and resolving the repository checker findings (issue #136).

Repository checker findings fixed

Errors

  • E026 engines.node → >= 22
  • E033 @iobroker/adapter-core^3.4.1
  • E036 @alcalzone/release-script^5.x (+ iobroker/license/manual-review plugins), @iobroker/testing^5.2.2
  • E060 / W050 axios listed as both dependency and devDependency — removed entirely (it was a dead import in main.js; its only real consumer, the gulp translation helper lib/tools.js, is removed with the gulpfile)
  • E157 js-controller dependency floor → >=5.0.19
  • E190 added admin globalDependencies>=7.4.10
  • E254 removed common.news version 0.1.1 (never published to npm)
  • E507 added responsive size attributes (xs/sm/md/lg/xl) to all number/password items in admin/jsonConfig.json
  • E510 responsive check — the flagged missing size attributes (E507) are now supplied; please re-run the checker to confirm
  • E802 repository topics added (iobroker, iobroker-adapter, switchbot, smarthome, home-automation, cloud-api)

Warnings

  • W135 added common.tier (3)
  • W168 removed generic iobroker keyword
  • W173 / W193 added protectedNative for the encrypted openToken
  • W181 deprecated common.licensecommon.licenseInformation (type: free)
  • W184 removed deprecated common.main and common.title (titleLang present)
  • W187 removed deprecated common.materialize (adapter already uses the jsonConfig admin UI)
  • W513 removed gulpfile.js; translation now via @iobroker/adapter-dev (npm run translate)
  • W953 removed .npmignore in favour of a package.json files allowlist

Suggestions

  • S062 adopted @iobroker/adapter-dev

Tooling modernization

  • ESLint migrated to flat config (@iobroker/eslint-config + eslint.config.mjs); legacy .eslintrc.json removed; lint --fix autoformatting committed
  • tsconfig.json extends @tsconfig/node22
  • test-and-release.yml: ioBroker/testing-action-* v2/v1, node 22.x/24.x × ubuntu/windows/macOS matrix, guarded concurrency, npm Trusted Publishing (OIDC id-token, NPM_TOKEN retired); existing Sentry release notification preserved
  • .releaseconfig.json, .github/dependabot.yml (npm + github-actions, cooldown, sensible ignores), automerge-dependabot.yml (replacing the old dependabot-auto-merge.yml)
  • untracked .github/.DS_Store; canonical ### __WORK IN PROGRESS__ changelog entry

Absorbed Dependabot PRs

These dependency bumps are superseded by this pass and can be closed once it merges:
#164, #162, #156, #154, #153, #152, #151, #150, #149, #148, #147, #146, #145, #144, #143, #142, #141, #140, #123, #117, #115, #112, #109

Human PRs (#161, #159, #157) are left untouched.

Leftovers

  • Ukrainian translations (W127, W134, W154, W510) — admin/i18n/uk and the uk entries in common.titleLang/common.desc/common.news are still missing. Left for a dedicated npm run translate pass rather than committing unreviewed machine translations.
  • W401 "Cannot find switchbot-hub in latest repository" — the adapter is not yet listed in the ioBroker latest/stable repository; external to this repo, cannot be fixed by a code change.

Local verification

  • npm run lint — pass (0 errors; 5 pre-existing JSDoc description warnings)
  • npm run test:package — pass (56 passing)
  • npm run test:integration — pass (adapter boots on js-controller 7.2.3 / adapter-core 3.4.1 / node 24; "The adapter started successfully")

🤖 Generated with Claude Code

DutchmanNL and others added 2 commits August 24, 2026 11:53
Raise Node.js floor to 22 and modernise the adapter tooling to the current
ioBroker standards, resolving the repository checker findings (issue #136).

package.json:
- engines.node ">= 22"; @iobroker/adapter-core ^3.4.1 (E026, E033)
- release-script ^5.x + plugins, @iobroker/testing ^5.2.2,
  @iobroker/adapter-dev ^1.5.0, @tsconfig/node22, @types/node ^22 (E036)
- migrate ESLint to flat config (@iobroker/eslint-config + eslint.config.mjs),
  drop legacy .eslintrc.json; commit lint --fix autoformatting
- remove obsolete/duplicate axios dependency (dead import removed from main.js;
  its only real user, the gulp translation helper, is gone) (E060, W050)
- add "files" allowlist and drop .npmignore (W953)
- add "translate" (adapter-dev) and "release-dry" scripts

tsconfig.json: extend @tsconfig/node22.

io-package.json:
- js-controller dependency floor >=5.0.19 (E157)
- add admin globalDependencies >=7.4.10 (E190)
- remove news version 0.1.1 not published on npm (E254)
- deprecated common.license -> common.licenseInformation (free) (W181)
- remove deprecated common.main, common.title, common.materialize (W184, W187)
- add common.tier 3 (W135)
- add protectedNative for encrypted openToken (W173, W193)
- drop generic "iobroker" keyword (W168)

admin/jsonConfig.json: add responsive size attributes to number/password
items (E507).

CI/release tooling to the current standard:
- test-and-release.yml: testing actions v2/v1, node 22.x/24.x matrix,
  guarded concurrency, Trusted Publishing (OIDC id-token), preserved sentry
- .releaseconfig.json, dependabot.yml (npm + github-actions, cooldown),
  automerge-dependabot.yml

Housekeeping: remove gulpfile.js (translation moves to @iobroker/adapter-dev,
W513), untrack .github/.DS_Store, canonical changelog WORK IN PROGRESS entry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add a top-level `permissions: contents: read` default so the check-and-lint
and adapter-tests jobs no longer run with a broadly-scoped GITHUB_TOKEN
(CodeQL "Workflow does not contain permissions"). The deploy job keeps its
own contents:write + id-token:write override.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant