diff --git a/README.md b/README.md index 6c0b8dd..f321eda 100644 --- a/README.md +++ b/README.md @@ -33,24 +33,26 @@ npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --loca --> ## Changelog -### 3.2.2 (2024-11-01) +### **WORK IN PROGRESS** +- (mcm1957) An error is issued if js-controller dependency is missing. +- (mcm1957) Required js-controller has been increased to 5.0.19. +- (mcm1957) Recommended js-controller version is omitted if identical to required one. + +### 3.2.2 (2024-11-01) - (mcm1957) Link to open issues has been corrected. - (mcm1957) Component name added to resonsive check issues. ### 3.2.1 (2024-11-01) - - (mcm1957) Size checking for "divider" and "staticImage" supended. ### 3.2.0 (2024-11-01) - - (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. ### 3.1.4 (2024-10-26) - - (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. @@ -58,15 +60,12 @@ npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --loca - (mcm1957) Abort processing if iobroker.live not reachable. [#321] ### 3.1.3 (2024-10-11) - - (mcm1957) Checker no longer crash id no npm package exists. ### 3.1.2 (2024-10-04) - - (mcm1957) Require node 18 minimum as engines clause. ### 3.1.1 (2024-10-04) - - (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] @@ -74,27 +73,22 @@ npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --loca - (mcm1957) Change "[W113] Adapter should support compact mode" text and honor common.compact set to false. [#300] ### 3.1.0 (2024-09-29) - - (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] ### 3.0.7 (2024-09-19) - - (mcm1957) "[W523] 'package-lock.json"'not found in repo!" reduced to suggestion. [#298] ### 3.0.6 (2024-09-13) - - (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] ### 3.0.5 (2024-09-13) - - (mcm1957) '@iobroker/dev-server' is valid as dev-dependency. [#260] ### 3.0.4 (2024-09-12) - - (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] @@ -104,34 +98,28 @@ npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --loca - (mcm1957) Do no longer require a js-controller dependecy for wwwOnly adapters. [#250] ### 3.0.3 (2024-09-12) - - (mcm1957) Check for iob_npm.done at .npmignore has been removed [#294] ### 3.0.2 (2024-09-11) - - (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. ### 3.0.0 (2024-09-10) - - (mcm1957) Error and warning numbering has been reviewed and duplicates removed. - (mcm1957) index.js has been split into seperated modules. ### 2.10.0 (2024-08-19) - - (mcm1957) Suggestions ([Sxxx] have been added). ### 2.9.1 (2024-08-12) - - (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]. ### 2.9.0 (2024-07-29) - - (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]. @@ -139,12 +127,10 @@ npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --loca - (mcm1957) Text of E114 (missing adminUI) adapted. ### 2.8.1 (2024-07-28) - - (mcm1957) Check of js-controller version has been corrected [#247]. - (mcm1957) Honor '>' at dependency checks too [#246]. ### 2.8.0 (2024-07-28) - - (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]. @@ -154,15 +140,12 @@ npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --loca - (mcm1957) "common.noConfig" must match "common.adminUI" setting [#170]. ### 2.7.2 (2024-07-26) - - (mcm1957) package-lock.json check fixed. ### 2.7.1 (2024-07-26) - - (mcm1957) Reduce setTimeout/setInterval error to warning temporary. ### 2.7.0 (2024-07-26) - - (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]. @@ -176,36 +159,29 @@ npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --loca - (mcm1957) Copyright year now honors commit year and npm publish year too [#237]. ### 2.6.1 (2024-06-24) - - (mcm1957) Check "[W156] Adapter should support admin 5 UI (jsonConfig)" checks for reactUi now. ### 2.6.0 (2024-06-24) - - (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] ### 2.5.1 (2024-06-24) - - (mcm1957) Suggestion to update dependencies to recommended version added. - (mcm1957) Adapter-core recommended set to 3.1.6 [#220] ### 2.5.0 (2024-05-30) - - (mcm1957) Check to ensure that dependency revisions are available at repository added. [#180] ### 2.4.0 (2024-05-30) - - (mcm1957) Add check to protect sensitive data. [#195] - (mcm1957) Add check to verify that dependencies and globalDepencies are of type array. [#90] ### 2.3.1 (2024-05-07) - - (mcm1957) Reduce number of missing translation warnings. - (mcm1957) Seperate between required and recommended translations. - (mcm1957) Log missing translations in detail. ### 2.3.0 (2024-05-07) - - (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]. @@ -214,16 +190,13 @@ npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --loca - (mcm1957) Raise an error if version at package.json is lower than latest release at npmjs [#192] ### 2.2.3 (2024-03-29) - - (mcm1957) Checking of license has been improved ### 2.2.2 (2024-03-29) - - (mcm1957) Checking of adapter-core has been fixed - (mcm1957) Load all potential interesting files, fixes [#149] ### 2.2.1 (2024-03-26) - - (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) @@ -232,51 +205,40 @@ npx @iobroker/repochecker https://github.com/ioBroker/ioBroker.javascript --loca - (mcm1957) Added check for adapter-core version (>= 3.0.6) ### 2.2.0 (2024-03-24) - - (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 ### 2.1.13 (2024-01-02) - - (bluefox) Corrected rule W156: adminUI.config === 'none' is allowed ### 2.1.12 (2023-09-21) - - (bluefox) Added check of using '\_' in adapter name ### 2.1.11 (2023-09-05) - - (bluefox) Added check of iobroker.js-controller in dependencies ### 2.1.7 (2023-08-14) - - (mcm57) Update index.js - fix typo in error message (packet.json) - (mcm57) Update index.js - renumber E504/1 to 519 - fixes #112 ### 2.1.6 (2022-12-08) - - (bluefox) added better error logging ### 2.1.5 (2022-12-07) - - (bluefox) added check of `.releaseconfig.json` file ### 2.1.4 (2022-08-19) - - (bluefox) Added check for adapter name: it may not start with '\_' ### 2.1.2 (2022-07-14) - - (bluefox) Fixed some errors ### 2.1.0 (2022-05-26) - - (bluefox) Added support for jsonConfig.json5 and jsonCustom.json5 ### 2.0.5 (2022-05-22) - - (bluefox) Made it possible to run with npx ## License diff --git a/lib/M100_IOPackageJson.js b/lib/M100_IOPackageJson.js index ed07496..12ab9ea 100644 --- a/lib/M100_IOPackageJson.js +++ b/lib/M100_IOPackageJson.js @@ -28,7 +28,7 @@ async function getIOPackageJson(context) { } const recommendedJsControllerVersion = '5.0.19'; -let requiredJsControllerVersion = '4.0.24'; +let requiredJsControllerVersion = '5.0.19'; const blacklistIOPackageJson = { installedFrom: { @@ -519,15 +519,28 @@ async function checkIOPackageJson(context) { } } else { if (!context.ioPackageJson.common.onlyWWW) { - context.errors.push(`[E162] js-controller dependency missing. js-controller ${requiredJsControllerVersion} is required as minimum, ${recommendedJsControllerVersion} is recommended. Please add to dependencies at io-package.json.`); + if (requiredJsControllerVersion !== recommendedJsControllerVersion) { + context.errors.push(`[E162] js-controller dependency missing. js-controller ${requiredJsControllerVersion} is required as minimum, ${recommendedJsControllerVersion} is recommended. Please add to dependencies at io-package.json.`); + } else { + context.errors.push(`[E162] js-controller dependency missing. js-controller ${requiredJsControllerVersion} is required as minimum. Please add to dependencies at io-package.json.`); + } } } } + } else { + if (!context.ioPackageJson.common.onlyWWW) { + context.errors.push(`[E185] "common.dependencies" must be an array at io-package.json`); + if (requiredJsControllerVersion !== recommendedJsControllerVersion) { + context.errors.push(`[E162] js-controller dependency missing. js-controller ${requiredJsControllerVersion} is required as minimum, ${recommendedJsControllerVersion} is recommended. Please add to dependencies at io-package.json.`); + } else { + context.errors.push(`[E162] js-controller dependency missing. js-controller ${requiredJsControllerVersion} is required as minimum. Please add to dependencies at io-package.json.`); + } + } } /* increase dependency as required by addition features - */ + */ if (context.ioPackageJson && context.ioPackageJson.common && context.ioPackageJson.common.supportedMessges) { requiredJsControllerVersion = common.maxVersion(requiredJsControllerVersion, '5.0.18'); } @@ -537,7 +550,11 @@ async function checkIOPackageJson(context) { if (currentJsControllerVersion && compareVersions.compare(requiredJsControllerVersion, currentJsControllerVersion, '>')) { - context.errors.push(`[E157] js-controller ${currentJsControllerVersion} listed as dependency but ${requiredJsControllerVersion} is required as minimum, ${recommendedJsControllerVersion} is recommended. Please update dependency at io-package.json.`); + if (requiredJsControllerVersion !== recommendedJsControllerVersion) { + context.errors.push(`[E157] js-controller ${currentJsControllerVersion} listed as dependency but ${requiredJsControllerVersion} is required as minimum, ${recommendedJsControllerVersion} is recommended. Please update dependency at io-package.json.`); + } else { + context.errors.push(`[E157] js-controller ${currentJsControllerVersion} listed as dependency but ${requiredJsControllerVersion} is required as minimum. Please update dependency at io-package.json.`); + } } else if (currentJsControllerVersion && compareVersions.compare(recommendedJsControllerVersion, currentJsControllerVersion, '>')) { context.warnings.push(`[W156] js-controller ${currentJsControllerVersion} listed as dependency but ${recommendedJsControllerVersion} is recommended. Please consider updating dependency at io-package.json.`); } @@ -553,7 +570,6 @@ async function checkIOPackageJson(context) { context.errors.push(`[E161] "js-controller" is not allowed in common.globalDependencies`); } } - }