Contributing to mwptools#
- Contributions are welcome
- Any contribution is governed by GPL3 (or later).
- AI / LLM usage. AI generated code is NOT encouraged, but is not explicitly banned. Any contributed code must be intelligible to the project owner. It may be necessary for you to explain your code; so please ensure you can so so. Be aware of (2) above. There may be significant delays in reviewing / merging what is (or appears to be) AI generated code.
- You are advised to discuss any proposed AI generated contributions with the project owner prior to submission, in order to avoid wasted effort or outright rejection.
- PRs should be in a separate branch, based off
development.
Musings#
Language#
mwp application#
- The
mwpapplication is written in Vala. OS specific low level interfaces may be written inC(or exceptionally,C++where needed for Windows -- anextern Centry point must be provided). AnyC/C++function must have avapidefinition. - User interface definitions may be provided as
blueprintUI definitions or as inline code.
Other applications and tools#
The following languages are considered acceptable:
- C
- Vala
- Go
- Zig
- Rust
- Ruby
- Bash
Build environment#
meson and ninja for things that are intended to be installed by default, otherwise a Makefile is also acceptable.
OS#
New features (other than obviously OS specific items (e.g.BLE)), shall be available for:
- Linux
- FreeBSD
- NetBSD
- OpenBSD
Optionally
- DragonflyBSD
- Illumos
Even more optionally
- MacOS (
homebrew) - Windows (
Msys2)
Note the specific environments for proprietary platforms.
Contributions that fail to build on all the above OS will be declined (OS specific extensions must be protected (#if, #ifdef etc.)).
Documentation#
mkdocsflavouredmarkdown(docs/manual/docs, the user guide)- Plain
markdoc/ text (docs). - AVIF is the preferred format for images in documentation.