12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- Contributing to the Meson build system
- There are two simple ways to submit your patches. The preferred way is to
- send a github pull request. You can also send patches as emails to the Meson
- mailing list. Remember to add your name to the list of contributors
- in authors.txt.
- Python Coding style
- Meson follows the basic Python coding style. Additional rules are the
- following:
- - indent 4 spaces, no tabs ever
- - indent meson.build files with two spaces
- - try to keep the code as simple as possible
- - contact the mailing list before embarking on large scale projects
- to avoid wasted effort
- - all new features must come with a test (or several if it is
- a big feature)
- C/C++ coding style
- Meson has a bunch of test code in several languages. The rules for
- those are simple.
- - indent 4 spaces, no tabs ever
- - brace always on the same line as if/for/else/function definition
- External dependencies
- The goal of Meson is to be as easily usable as possible. The user
- experience thould be "get Python3 and Ninja, run", even on
- Windows. Unfortunately this means that we can't have dependencies on
- projects outside of Python's standard library. This applies only to
- core functionality, though. For additional helper programs etc the use
- of external dependencies may be ok. If you feel that you are dealing
- with this kind of case, please raise the issue on the mailing list
- first.
- What not to contribute?
- There are a few things that people seem to want to add to Meson but which
- are not there by design and will not be added either.
- The first one is defining your own functions or a generalised for loop.
- These are bad because they would make Meson's DSL Turing complete. The
- second feature is a Make backend.
- The FAQ has specific information why these two features will not be
- added to Meson: https://github.com/mesonbuild/meson/wiki/FAQ
- Merge requests adding either of these two features will be automatically
- rejected. Please save everyone's time (especially your own) and don't start
- working on these features.
- Do I need to sign a CLA?
- No. All contributions are welcome.
|