The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.1 KiB
94 lines
3.1 KiB
# Wrap review guidelines |
|
|
|
In order to get a package in the Wrap database it must be reviewed and |
|
accepted by someone with admin rights. Here is a list of items to |
|
check in the review. If some item is not met it does not mean that the |
|
package is rejected. What should be done will be determined on a |
|
case-by-case basis. Similarly meeting all these requirements does not |
|
guarantee that the package will get accepted. Use common sense. |
|
|
|
## Setting up the tools |
|
|
|
The [mesonwrap repository](https://github.com/mesonbuild/mesonwrap) |
|
provides tools to maintain the WrapDB. Read-only features such can be |
|
used by anyone without Meson admin rights. |
|
|
|
## Personal access token |
|
|
|
Some tools require access to the Github API. A [personal access |
|
token](https://github.com/settings/tokens) may be required if the |
|
freebie Github API quota is exhausted. `public_repo` scope is required |
|
for write operations. |
|
|
|
``` |
|
$ cat ~/.config/mesonwrap.ini |
|
[mesonwrap] |
|
github_token = <github token> |
|
``` |
|
|
|
## Setting up the review tooling |
|
|
|
The [Mesonwrap](https://github.com/mesonbuild/mesonwrap/) repository |
|
contains review tooling. It is used to do the actual review, but |
|
submitters can also use it to check their MRs. All issues reported by |
|
the tool must be fixed, so using the tool can speed up the review |
|
process considerably. |
|
|
|
The tool has some dependencies that are not available in all Linux |
|
distributions. Thus using a Python |
|
[Virtualenv](https://virtualenv.pypa.io/en/stable/). The tool can be |
|
installed with the following commands. |
|
|
|
``` |
|
git clone https://github.com/mesonbuild/mesonwrap.git |
|
cd mesonwrap |
|
python3 -m venv venv |
|
bash |
|
source venv/bin/activate |
|
pip install -r requirements.txt |
|
# You may need to install Meson and Ninja here as well depending on your setup |
|
python3 setup.py install |
|
mesonwrap review <see arguments below> |
|
exit <when you are finished> |
|
``` |
|
|
|
## Reviewing code |
|
|
|
``` |
|
mesonwrap review zlib --pull-request=1 [--approve] |
|
``` |
|
|
|
Since not every check can be automated please pay attention to the |
|
following during the review: |
|
|
|
- Download link points to an authoritative upstream location. |
|
- Version branch is created from master. |
|
- Except for the existing code, `LICENSE.build` is mandatory. |
|
- `project()` has a version and it matches the source version. |
|
- `project()` has a license. |
|
- Complex `configure_file()` inputs are documented. |
|
If the file is a copy of a project file make sure it is clear what was changed. |
|
- Unit tests are enabled if the project provides them. |
|
- There are no guidelines if `install()` is a good or a bad thing in wraps. |
|
- If the project can't be tested on the host platform consider using the `--cross-file` flag. |
|
See [the issue](https://github.com/mesonbuild/mesonwrap/issues/125). |
|
|
|
Encourage wrap readability. Use your own judgement. |
|
|
|
## Approval |
|
|
|
If the code looks good use the `--approve` flag to merge it. |
|
The tool automatically creates a release. |
|
|
|
If you need to create a release manually (because, for example, a MR |
|
was merged by hand), the command to do it is the following: |
|
|
|
```shell |
|
mesonwrap publish reponame version |
|
``` |
|
|
|
An example invocation would look like this: |
|
|
|
```shell |
|
mesonwrap publish expat 2.2.9 |
|
```
|
|
|