Skip to content

MQTT Broker Project

Francois Normandin edited this page Oct 28, 2020 · 1 revision

Welcome to the LV-MQTT-Broker wiki!

How to install a released version

  1. Open the VI Package Manager (comes installed with LabVIEW)
  2. Search for MQTT Broker, or "LabVIEW Open Source Project". The package is released on the VIPM Community repository. Installing the package from VIPM will install all dependencies along with the released package
  3. Alternatively, you can download the "MQTT Broker.vipc" file in the root folder of this project, and "Apply the package configuration" using VI Package Manager. This step is not necessary if you follow step #2.
  4. You will find the MQTT Broker in the palette under Addons/LabVIEW Open Source Project.

How to install the source code for development

  1. Fork the project to create a copy on your own Github account. If you just want to browse the source, you can forego this step and move to the next.
  2. Clone the project on your local computer, using your favorite Git client
  3. Before you open the lvproj file, make sure to locate the VIPC (Package Configuration) file at the root of the repository
  4. "Apply the package configuration" using VI Package Manager. This step is required to setup your IDE with the proper dependencies for the project
  5. Open the lvproj file.

How to contribute

  1. Fork the project to create a copy on your own Github account.
  2. Follow the same steps as for opening the source code, but from your own repository.
  3. This is a Test-Driven Development project. This means a few extra things. Please read the next section before you submit pull requests.
  4. Code is kept in LabVIEW 2013 SP1 to provide broad compatibility with older versions
  5. Separate Compile Code is mandatory
  6. The Broker project is where all the requirements for MQTT are kept up to date, but all the dependent projects (Client, Control Packets, Sessions, Subscriptions, Connection Handler) will follow the same rules.

Pull Requests

As mentioned before, this is a project that is maintained with a TDD approach. It is sometimes a pain to add new features quickly, but it ensures that the overall project remains stable as new features are added. Pull requests are welcome, but must comply with the following conditions:

  • Any contributions that do not pass all the previous tests will be rejected.
  • Any contributions that add new features will need at least one unit test to be written which demonstrates compliance
  • Any commit logs that fulfill a requirement of the MQTT standard will reference the requirement with its proper reference (ex: [MQTT-6.0.0-3] Client send mqtt as subprotocol)
  • Pull requests should be targeted to only change the necessary files
  • Changes should be made in the correct sub-project to keep dependencies clean of cross-linkage