[skip ci] mesonwrap docs

- Add ambiguous naming documentation.
- Update branch request documentation.
- Add mesonwrap token documentation.
- Update review guidelines.
pull/7241/head
Lisa White 5 years ago committed by Lisa White
parent 6ecb716f9c
commit fcbff1de7c
  1. 33
      docs/markdown/Adding-new-projects-to-wrapdb.md
  2. 17
      docs/markdown/Wrap-maintainer-tools.md
  3. 42
      docs/markdown/Wrap-review-guidelines.md
  4. 1
      docs/sitemap.txt

@ -32,6 +32,8 @@ any source code from the original tarball into the wrap repository.
Wrapped subprojects are used much like external dependencies. Thus
they should have the same name as the upstream projects.
NOTE: Repo names must fully match this regexp: `[a-z0-9._]+`.
If the project provides a pkg-config file, then the repository name should be
the same as the pkg-config name. Usually this is the name of the
project, such as `libpng`. Sometimes it is slightly different,
@ -42,13 +44,16 @@ named plain `ogg`.
If there is no a pkg-config file, the name the project uses/promotes should be used,
lowercase only (Catch2 -> catch2).
If the project name is too generic or ambiguous (e.g. `benchmark`),
consider using `organization-project` naming format (e.g. `google-benchmark`).
## How to contribute a new wrap
If the project already uses Meson build system, then only a wrap file - `upstream.wrap`
should be provided. In other case a Meson build definition patch - a set of `meson.build`
files - should be also provided.
### Request a new repository or branch
### Request a new repository
Create an issue on the [wrapdb bug tracker](https://github.com/mesonbuild/wrapdb/issues)
using *Title* and *Description* below as a template.
@ -64,6 +69,9 @@ version: <version_you_have_a_wrap_for>
Wait until the new repository or branch is created. A link to the new repository or branch
will be posted in a comment to this issue.
NOTE: Requesting a branch is not necessary. WrapDB maintainer can create the branch and
modify the PR accordingly if the project repository exists.
### Add a new wrap
First you need to fork the repository to your own page.
@ -87,25 +95,24 @@ Now you should create a pull request on GitHub. Remember to create it against th
correct branch rather than master (`1.0.0` branch in this example). GitHub should do
this automatically.
If the branch doesn't exist file a pull request against master.
WrapDB maintainers can fix it before merging.
## What is done by WrapDB maintainers
[mesonwrap tools](Wrap-tools.md) must be used for the tasks below.
### Adding new project to the Wrap provider service
Each project gets its own repo. It is initialized like this:
```
git init
git add readme.txt
git add LICENSE.build
git commit -a -m 'Create project foobar'
git remote add origin <repo url>
git push -u origin master
mesonwrap new_repo --homepage=$HOMEPAGE --directory=$NEW_LOCAL_PROJECT_DIR $PROJECT_NAME
```
Note that this is the *only* commit that will ever be made to master branch.
All other commits are done to branches.
The command creates a new repository and uploads it to Github.
Repo names must fully match this regexp: `[a-z0-9._]+`.
`--version` flag may be used to create a branch immediately.
### Adding a new branch to an existing project
@ -133,12 +140,6 @@ to functionality. All such changes must be submitted to upstream. You
may also host your own Git repo with the changes if you wish. The Wrap
system has native support for Git subprojects.
## Creator script
The WrapDB repository has a
[helper script](https://github.com/mesonbuild/mesonwrap/blob/master/mesonwrap.py)
to generate new repositories, verify them and update them.
## Reviewing wraps
See [Wrap review guidelines](Wrap-review-guidelines.md).

@ -0,0 +1,17 @@
# Wrap maintainer 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>
```

@ -7,18 +7,30 @@ 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.
## Checklist
Reviewer: copy-paste this to MR discussion box and tick all boxes that apply.
- [ ] project() has version string
- [ ] project() has license string
- [ ] if new project, master has tagged commit as only commit
- [ ] if new branch, it is branched from master
- [ ] contains a readme.txt
- [ ] contains an upstream.wrap file
- [ ] download link points to authoritative upstream location
- [ ] wrap repository contains only build system files
- [ ] merge request is pointed to correct target branch (not master)
- [ ] wrap works
- [ ] repo does not have useless top level directory (i.e. libfoobar-1.0.0)
The review process is partially automated by the [mesonwrap](Wrap-maintainer-tools.md)
`review` tool.
```
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.

@ -72,6 +72,7 @@ index.md
Adding-new-projects-to-wrapdb.md
Using-the-WrapDB.md
Using-wraptool.md
Wrap-maintainer-tools.md
Wrap-best-practices-and-tips.md
Wrap-review-guidelines.md
Shipping-prebuilt-binaries-as-wraps.md

Loading…
Cancel
Save