This file contains a checklist for adapter reviews
- and check comments
- check repo commit that sorted in alphabetically
- GitHub Actions are enabled
- package tests are executed
- adapter tests (integration) are executed and "green" (also really ok, scroll over test results)
- Adapter is described roughly in english
- Changelog included
- License included
- If Sentry is used, a note is included on top of Readme
- notice
adapter-coredependency and checkjs.controllerdependency inio-package.json - check that minimum engine version is specified in
README.mdcontains any info on minimumnode.jsversion - rough check/fly over
- check
js-controllerdependency - check that news and names and such are included and translated
- check if
materializeTab,supportsCustoms, ... is defined but not used - native fields are defined - and match to
index_m.html? - password fields? encrypted?
protectedNative/encryptedNativeused? - rough check/fly over rest
- check that
portattribute called really asportin code. The same is for all web settings:
bind- IPv4 or IPv6 bind address.bindcannot be used for description of other devices. Only for own server.v6bind- explicit IPv6 bind address,secure- if HTTPS used,certPrivate- name of private certificate,certPublic- name of public certificate,certChained- name of chained certificate,leEnabled- (deprecated) - if usage of letsencrypt enabled,leUpdate- (deprecated) - if letsencrypt certificate should be updated,leCheckPort- (deprecated) - port for letsencrypt check,leCollection- collection name of letsencrypt certificates from acme adapter. Could betrueto use all collections,false- to disable letsencrypt certificates, or specific collection name.
- check that
- widget exists - is real widget in?
io-package.jsoncorrect for it? - if
wwwexists - content make sense? - if
docsexists - content make sense and linked inio-package.json? - admin exists, content matches to
io-package.json?
- general check
- especially search for timeouts/intervals (also in lib files) and check that they are cleared in unload
- "schedule" not used for external communication; same for "scheduled adapters". They need to take care of randomization of the schedule to avoid "peak load" on the queried website!
- only needed event handlers are used (
stateChange/objectChange/message/unload)) - verify that no
strictObjectChecks: false is used unjustified - check used object roles
- verify no
setObject(ideally) onStateChangecheck ack handling- check parallelism of object/state creations and set calls
- rough check on error handling to give advices
- if
info.connectionis used verify that channel and object is defined in io-package or code - rough check/fly over rest