Files
zigbee2mqtt/CONTRIBUTING.md
T
Koen Kanters b6186623f0 feat!: The big cleanup (#24200)
* Remove `deviceGroupMembership`

* Fix controller.ts

* Remove `legacy_api` logic from non-legacy extensions.

* Fix network map coverage.

* Remove all `legacy` extensions.

* Remove `legacy_availability_payload`, `legacy_api`. Remove legacy from configure.

* Fix prettier.

* Remove some leftovers

* Renamed `updateAvailable` to `update_available`

* Remove emitPublishAvailability

* Remove `configuration.yaml`

* Switch to pnpm

* Remove direct mqtt-packet dependency.

* fix pretty

* fix `getDependencyVersion`

* fix pnpm publish

* fix(ignore): fix pnpm publish

* Remove deprecated bridge `config/*`

* Improve update script

* Improve update.sh

---------

Co-authored-by: Nerivec <62446222+Nerivec@users.noreply.github.com>
2024-12-01 20:06:49 +01:00

1.3 KiB

Contributing to Zigbee2MQTT

Everybody is invited and welcome to contribute to Zigbee2MQTT. Zigbee2MQTT is written in JavaScript and is based upon zigbee-herdsman and zigbee-herdsman-converters. Zigbee-herdsman-converters contains all device definitions, zigbee-herdsman is responsible for handling all communication with the adapter.

  • Pull requests are always created against the dev branch.
  • Easiest way to start developing Zigbee2MQTT is by setting up a development environment (aka bare-metal installation). You can follow this guide to do this.
  • You can run the tests locally by executing pnpm test. Zigbee2MQTT enforces 100% code coverage, in case you add new code check if your code is covered by running pnpm run test-with-coverage. The coverage report can be found under coverage/lcov-report/index.html. Linting is also enforced and can be run with pnpm run eslint.
  • When you want to add support for a new device no changes to Zigbee2MQTT have to be made, only to zigbee-herdsman-converters. You can find a guide for it here.