🤝 Thank you for contributing! 🤝
If you have any further questions, feel free to contact maintainers.
- Fork this repository
- Create a new branch of
dev - Make your changes and when you're ready create a pull request
- We'll discuss everything and eventually squash and merge your PR
Every submitted PR must be formatted with cargo fmt.
If your PR introduces new features, modifies the configuration, or makes similar changes, you must update the documentation in README.md accordingly.
- Add config schema to
config/schema.rs. Just follow the example of existing module configs - adopt their derives, naming scheme, etc. Also, all properties must be optional. Finally, add your module config to theModulesstruct. It must be optional as well. Sort alphabetically. - Add your module as a new file to the
modulesdirectory. Follow the example of existing ones. Create a new struct and implement theModuletrait. - Add your module as a
modtomodules.rs. Then, add it to the list in theget_modulesfunction. Sort everything alphabetically.
For accessing config (for example for the is_active method of the Module trait) you should use the conf_unwrap_or!(config, or, path / to / config / property) macro.
- Avoid spawning child processes if possible. Prefer using the
sysinfocrate or a similar alternative. If spawning a process is unavoidable, please discuss it with the maintainers in the related issue and benchmark the command’s performance.