Skip to content

Contributing to mwptools#

  1. Contributions are welcome
  2. Any contribution is governed by GPL3 (or later).
  3. AI "slop". Any contributed code must be intelligible to the project owner. It may be necesasry for you to explain your code; so please ensure you can so so. Be aware of (2) above.
  4. PRs should be in a separate branch, based off development.

Musings#

Language#

mwp application#

  • The mwp application is written in Vala. OS specific low level interfaces may be written in C (or exceptionally, C++ where needed for Windows -- an extern C entry point must be provided). Any C / C++ function must have a vapi definition.
  • User interface definitions may be provided as blueprint UI 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 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#

  • mkdocs flavoured markdown (docs/manual/docs, the user guide)
  • Plain markdoc / text (docs).