chore: adapt package for standalone repository - #1
Merged
Conversation
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
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
typescript-teslemetrymonorepo (packages/iobroker.teslemetry) into this dedicated repoioBroker.repositories) requires a dedicatedioBroker.<adapter>repo, which the monorepo layout can't satisfygit subtree split -P packages/iobroker.teslemetry(34 commits) rather than a clean import, sogit blame/history stays intact@teslemetry/apiis now a normal npm dependency pinned to the currently-published^0.11.3instead of aworkspace:*referencetsconfig.json/.oxlintrc.jsonare self-contained (previously extended the monorepo root configs)package-lock.jsoniobroker.teslemetry) and version (0.2.5) preserved; this repo becomes the only publish home going forwardadmin/,test/,io-package.json, README, CHANGELOG(+CHANGELOG_OLD) all came over as-is; repo/homepage/bugs/extIcon/readmeURLs updated to point at this repotest-and-release.ymlioBroker/testing-action-check/-adapter/-deploycomposite actions (the current official adapter-template shape) instead of the monorepo's sharedreusable-ci.yml+ changesets pipelinecheck-and-lint(typecheck + lint) →adapter-tests(Node 22/24 × ubuntu/windows/macos) → tag-gateddeploytest:unit/test:package/test:integrationscript aliases so the actions' default commands resolve without per-step overrides (no dedicated@iobroker/testingintegration harness exists yet —test:integrationis a documented no-op for now)io-package.jsoncommon.versionvspackage.jsonversion) still runs as part of the suitedeploypublishes via npm trusted publishing (OIDC, noNPM_TOKEN), matching how the monorepo publishes its other packagesio-package.jsoncommon.newsentry for0.2.4— that version was bumped in git but never actually reached npm (confirmed vianpm view iobroker.teslemetry versions), which the repochecker flags as an erroriobroker,iobroker-adapter,tesla,teslemetry,smart-home,typescript)Blocked
Teslemetry/typescript-teslemetry's publish workflow. For thedeployjob here to actually publish, an npm org owner needs to addTeslemetry/ioBroker.teslemetry'stest-and-release.ymlas a trusted publisher foriobroker.teslemetryon npmjs.com (https://docs.npmjs.com/trusted-publishers). Everything else indeployis ready and gated behind this.@iobroker/repocheckeroutputRan
npx @iobroker/repochecker --localagainst 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 expectsmain(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 viafiles), which is out of scope to redesign in this passE2001— Bluefox (ioBroker core maintainer) isn't an npm collaborator oniobroker.teslemetryyet; needs an npm owner to runnpm owner add bluefox iobroker.teslemetryahead of an eventualioBroker.repositoriessubmission (not required for this PR)E5010(×9) —admin/i18nonly hasen/de; the other 9 languages are a known, intentionally-deferred gap carried over from the monorepoE8002— was open at check time; repo topics have since been addedWarnings/Suggestions —
W6017/W6018(changelog-in-README vsCHANGELOG.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 thetypescript-teslemetrymonorepo atpackages/iobroker.teslemetry, freshly repochecker-hardened there (syncedio-package.jsonmetadata, 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.