Skip to content

chore: adapt package for standalone repository - #1

Merged
Bre77 merged 1 commit into
mainfrom
fm/iob-repo-split
Aug 14, 2026
Merged

chore: adapt package for standalone repository#1
Bre77 merged 1 commit into
mainfrom
fm/iob-repo-split

Conversation

@Bre77

@Bre77 Bre77 commented Aug 14, 2026

Copy link
Copy Markdown
Member

Intent

  • Split the ioBroker adapter out of the typescript-teslemetry monorepo (packages/iobroker.teslemetry) into this dedicated repo
    • The official ioBroker adapter repository's submission tooling (repochecker, ioBroker.repositories) requires a dedicated ioBroker.<adapter> repo, which the monorepo layout can't satisfy
    • History preserved via git subtree split -P packages/iobroker.teslemetry (34 commits) rather than a clean import, so git blame/history stays intact
    • The monorepo itself is untouched by this PR; removing the package there is a separate follow-up
  • Made the extracted package standalone
    • @teslemetry/api is now a normal npm dependency pinned to the currently-published ^0.11.3 instead of a workspace:* reference
    • tsconfig.json/.oxlintrc.json are self-contained (previously extended the monorepo root configs)
    • Switched package management from pnpm to npm (single-package repo now, no workspace to manage) and added package-lock.json
    • Package name (iobroker.teslemetry) and version (0.2.5) preserved; this repo becomes the only publish home going forward
    • admin/, test/, io-package.json, README, CHANGELOG(+CHANGELOG_OLD) all came over as-is; repo/homepage/bugs/extIcon/readme URLs updated to point at this repo
  • Replaced CI with an ioBroker-standard test-and-release.yml
    • Built on the ioBroker/testing-action-check/-adapter/-deploy composite actions (the current official adapter-template shape) instead of the monorepo's shared reusable-ci.yml + changesets pipeline
    • check-and-lint (typecheck + lint) → adapter-tests (Node 22/24 × ubuntu/windows/macos) → tag-gated deploy
    • Added test:unit/test:package/test:integration script aliases so the actions' default commands resolve without per-step overrides (no dedicated @iobroker/testing integration harness exists yet — test:integration is a documented no-op for now)
    • The version-parity test (io-package.json common.version vs package.json version) still runs as part of the suite
    • deploy publishes via npm trusted publishing (OIDC, no NPM_TOKEN), matching how the monorepo publishes its other packages
  • Fixed a stale io-package.json common.news entry for 0.2.4 — that version was bumped in git but never actually reached npm (confirmed via npm view iobroker.teslemetry versions), which the repochecker flags as an error
  • Added repo topics (iobroker, iobroker-adapter, tesla, teslemetry, smart-home, typescript)

Blocked

  • npm-side step needed: this package's npm trusted-publisher configuration currently points at Teslemetry/typescript-teslemetry's publish workflow. For the deploy job here to actually publish, an npm org owner needs to add Teslemetry/ioBroker.teslemetry's test-and-release.yml as a trusted publisher for iobroker.teslemetry on npmjs.com (https://docs.npmjs.com/trusted-publishers). Everything else in deploy is ready and gated behind this.

@iobroker/repochecker output

Ran npx @iobroker/repochecker --local against this repo (5.20.9). All of the monorepo-shape findings the split was expected to clear (repo/package naming, build-dir-tracked false positive, etc.) are gone. Remaining findings:

Errors

  • E1024/E1063 — repochecker expects main (build/src/main.cjs) to be a checked-in JS/TS file it can fetch from the repo; this adapter's build output isn't committed (only shipped in the npm tarball via files), which is out of scope to redesign in this pass
  • E2001 — Bluefox (ioBroker core maintainer) isn't an npm collaborator on iobroker.teslemetry yet; needs an npm owner to run npm owner add bluefox iobroker.teslemetry ahead of an eventual ioBroker.repositories submission (not required for this PR)
  • E5010 (×9) — admin/i18n only has en/de; the other 9 languages are a known, intentionally-deferred gap carried over from the monorepo
  • E8002 — was open at check time; repo topics have since been added

Warnings/SuggestionsW6017/W6018 (changelog-in-README vs CHANGELOG.md/CHANGELOG_OLD.md) are intentionally not addressed; the split brief calls for carrying both files over as-is. The remaining suggestions (@iobroker/eslint-config, @tsconfig/nodeXX, .vscode/settings.json, dependabot, i18n short-format) are pre-existing/optional and left for a follow-up.

Full narrative / original brief

Captain-ordered split so the adapter can be submitted to the official ioBroker repository, whose tooling requires a dedicated ioBroker.<adapter> repo. Source lived in the typescript-teslemetry monorepo at packages/iobroker.teslemetry, freshly repochecker-hardened there (synced io-package.json metadata, version-parity test, admin i18n, jsonConfig fixes) — all of that carried over. Deliverable is entirely in this new repo; the monorepo is not changed by this PR.

Extracted from the Teslemetry TypeScript monorepo (packages/iobroker.teslemetry)
via `git subtree split` to give this adapter its own `ioBroker.<adapter>` repo,
as required by the official ioBroker adapter repository's submission tooling.

- @teslemetry/api is now a normal npm dependency pinned to the published
  version instead of a pnpm workspace reference; tsconfig/oxlint configs are
  now self-contained instead of extending the monorepo root configs
- switched package management from pnpm to npm (single-package repo, no
  workspace to manage) and added the standalone package-lock.json
- added an ioBroker-standard test-and-release.yml (ioBroker/testing-action-*
  composite actions) with lint + adapter tests on Node 22/24 across
  ubuntu/windows/macos, and a tag-gated deploy job publishing via npm trusted
  publishing, replacing the monorepo's shared reusable-ci.yml/changesets flow
- added test:unit/test:package/test:integration script aliases so the
  standard actions' default commands resolve without per-step overrides
- updated repo/homepage/bugs/extIcon/readme URLs to point at this repo
- dropped a stale io-package.json common.news entry for 0.2.4, a version
  that was bumped in git but never actually published to npm
@Bre77 Bre77 added the fm Opened by a Firstmate crewmate label Aug 14, 2026
@Bre77
Bre77 merged commit 41c88ab into main Aug 14, 2026
8 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