This is a code for frontend and back-end of the service https://adapter-check.iobroker.in/
If you want to add your adapter to the public ioBroker repository, all tests on this page must be OK.
You can pass your repository as a parameter to test
npx @iobroker/repochecker <repo> [branch]
npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript master
Branch (master/main/dev
) is optional.
For extra debugging outputs you can pass the --debug
parameter.
For a local test you can pass the --local
parameter. Most of the files are read localy.
The link to the github repository is still necessary because data from the project settings on github is also checked.
Example:
npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --local
- (mcm1957) Link to open issues has been corrected.
- (mcm1957) Component name added to resonsive check issues.
- (mcm1957) Size checking for "divider" and "staticImage" supended.
- (oweitman) Script has been extended to use optionally local data for checking.
- (mcm1957) Warning if i18n is not used has been fixed [#324].
- (mcm1957) Check for importent issues has been added.
- (mcm1957) Checking of jsonConfig (initially) added.
- (mcm1957) linter has been activated and issues reported have been fixed.
- (mcm1957) Blacklist for package/dependencies has been extended.
- (mcm1957) Recommend adapter-core 3.2.2 now.
- (mcm1957) Clearify test for "[E952] .npmignore not found". [#320]
- (mcm1957) Abort processing if iobroker.live not reachable. [#321]
- (mcm1957) Checker no longer crash id no npm package exists.
- (mcm1957) Require node 18 minimum as engines clause.
- (mcm1957) "[E166] 'common.mode: extension' is unknown" has been fixed [#308]
- (mcm1957) "[E904] file iob_npm.done found in repository, but not found in .gitignore" removed as covered by [E503]. [#309]
- (mcm1957) "[E500] node_modules found" has been retricted to adapetr root. [#297]
- (mcm1957) Do not check main entry if common.mode none or extension.
- (mcm1957) Change "[W113] Adapter should support compact mode" text and honor common.compact set to false. [#300]
- (mcm1957) "@iobroker/plugin-sentry" blacklisted as dependency [#301]
- (mcm1957) Accept .ts files as main file too. [#303]
- (mcm1957) [E405] and [E426] incorrect path has been corrected. [#299]
- (mcm1957) "[W523] 'package-lock.json"'not found in repo!" reduced to suggestion. [#298]
- (mcm1957) "[E124] Main file not found" no longer raised if common.nogit is set
- (mcm1957) 'Text of "common.main" is deprecated' has been adapted. [#266]
- (mcm1957) Ignore errors caused by complex .gitignor/.npmignore. [#288]
- (mcm1957) '@iobroker/dev-server' is valid as dev-dependency. [#260]
- (mcm1957) Abort with incorrect dependency definition fixed [#287]
- (mcm1957) Improve handling of malformed dependency definitions [#284]
- (mcm1957) Improve handling of malformed .releaseconfig.json files [#283]
- (mcm1957) Missing mandatory translations are considered an error now. [#277, #278]
- (mcm1957) '.npmignore found but "files" is used' is a warning now. [#274]
- (mcm1957) '@iobroker/dev-server' has been blacklisted as any dependency. [#260]
- (mcm1957) Do no longer require a js-controller dependecy for wwwOnly adapters. [#250]
- (mcm1957) Check for iob_npm.done at .npmignore has been removed [#294]
- (mcm1957) Handling of missing LICENSE file corrected. [#282]
- (mcm1957) [W126] Missing mandatory translation is error now. [#293]
- (mcm1957) Record repochcker version used for tests.
- (mcm1957) Record github commit-sha of last commit used for tests.
- (mcm1957) Error and warning numbering has been reviewed and duplicates removed.
- (mcm1957) index.js has been split into seperated modules.
- (mcm1957) Suggestions ([Sxxx] have been added).
- (mcm1957) E162 - correct dependency check for js-controller. [#267].
- (mcm1957) E605 - copyright year range including whitespaces is now accepted. [#269].
- (mcm1957) E016 - missing vaiableexpansion has been added. [#263].
- (mcm1957) E114 - typo at error message has been fixed [#261].
- (mcm1957) Adapt text if sources-dist(-stable).json need a correction [#97].
- (mcm1957) Missing "common.mode" error text corrected [#249].
- (mcm1957) Files "iob" and "iobroker" are disallowed now [#248].
- (mcm1957) Checks related to @alcalzone/releasescript modified [#71].
- (mcm1957) Text of E114 (missing adminUI) adapted.
- (mcm1957) Check of js-controller version has been corrected [#247].
- (mcm1957) Honor '>' at dependency checks too [#246].
- (mcm1957) Copyright year check has been fixed for single year entries.
- (mcm1957) js-controller version check added [#233].
- (mcm1957) Check for fixed version dependencies and for github dependencies [#233].
- (mcm1957) Missing language files reduced to warning [#203].
- (mcm1957) Missing .gitignore is considered an error now.
- (mcm1957) "common.noConfig" no longer reported as error if "common.adminUI" is present [#245].
- (mcm1957) "common.noConfig" must match "common.adminUI" setting [#170].
- (mcm1957) package-lock.json check fixed.
- (mcm1957) Reduce setTimeout/setInterval error to warning temporary.
- (mcm1957) Some non trivial keywords related to adapter are enforced now [#234].
- (mcm1957) Severity if [E105] / [W105] has been corrected [#204].
- (mcm1957) Disallow 'globalDependencies' at package.json [#204].
- (mcm1957) Several false positives for wwwOnly widgetadapters have been fixed [#230, #222].
- (mcm1957) Missing .npmignore is now considered an error [#229].
- (mcm1957) Usage of package.json 'files' section is now recommended.
- (mcm1957) If more than 7 common.news entries are present a warning is issued now [#232].
- (mcm1957) Versions listed at common.news are checked to exist at npm now [#226].
- (mcm1957) 'package-lock.json' is checked to exist at GitHub now [#188].
- (mcm1957) travis checks have been removed [#237].
- (mcm1957) Copyright year now honors commit year and npm publish year too [#237].
- (mcm1957) Check "[W156] Adapter should support admin 5 UI (jsonConfig)" checks for reactUi now.
- (mcm1957) Check has been aded to ensure keywords and common.keywords are present. [#200]
- (mcm1957) Detection of react has been added, gulpfile.js is accepted for react based UIs now. [#223]
- (mcm1957) Suggestion to update dependencies to recommended version added.
- (mcm1957) Adapter-core recommended set to 3.1.6 [#220]
- (mcm1957) Check to ensure that dependency revisions are available at repository added. [#180]
- (mcm1957) Add check to protect sensitive data. [#195]
- (mcm1957) Add check to verify that dependencies and globalDepencies are of type array. [#90]
- (mcm1957) Reduce number of missing translation warnings.
- (mcm1957) Seperate between required and recommended translations.
- (mcm1957) Log missing translations in detail.
- (mcm1957) Elements marked as deprectaed added to blacklist.
- (mcm1957) Blacklist added to block elements at package.json and io-package.json.
- (mcm1957) Error [E000] will be raised now if repository cannot be accessed at all [#194].
- (mcm1957) Reading of package.json and io-package.json has been moved to head of tests.
- (mcm1957) Check minimum and recommended node version at package.json (#160)
- (mcm1957) Raise an error if version at package.json is lower than latest release at npmjs [#192]
- (mcm1957) Checking of license has been improved
- (mcm1957) Checking of adapter-core has been fixed
- (mcm1957) Load all potential interesting files, fixes [#149]
- (mcm1957) Added check that own adapter is not listed at common.restartAdapters
- (mcm1957) Added check of version strings at common.news
- (mcm1957) Added check for recommended node version (node 18 for now)
- (mcm1957) Disallow common.mode == subscribe
- (mcm1957) Deprecate common.wakeup
- (mcm1957) Added check for adapter-core version (>= 3.0.6)
- (klein0r) Added check for licenseInformation
- (klein0r) Added check for deprecated license
- (klein0r) Added check for required attribute common.tier
- (klein0r) Added check for disallowed attribute common.automaticUpgrade
- (bluefox) Corrected rule W156: adminUI.config === 'none' is allowed
- (bluefox) Added check of using '_' in adapter name
- (bluefox) Added check of iobroker.js-controller in dependencies
- (mcm57) Update index.js - fix typo in error message (packet.json)
- (mcm57) Update index.js - renumber E504/1 to 519 - fixes #112
- (bluefox) added better error logging
- (bluefox) added check of
.releaseconfig.json
file
- (bluefox) Added check for adapter name: it may not start with '_'
- (bluefox) Fixed some errors
- (bluefox) Added support for jsonConfig.json5 and jsonCustom.json5
- (bluefox) Made it possible to run with npx
The MIT License (MIT)
Copyright (c) 2014-2024 Denis Haev [email protected]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.