1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- 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. Small changes can also be sent as
- patches as emails to the Meson mailing list.
- 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)
- Meson uses Flake8 for style guide enforcement. The Flake8 options for
- the project are contained in setup.cfg.
- To run Flake8 on your local clone of Meson:
- $ python3 -m pip install flake8
- $ cd meson
- $ flake8
- 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 should 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 generalized 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: http://mesonbuild.com/FAQ.html
- 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.
|