1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79# Contributing
## Governance and maintenance
This project is maintained by the WasmX team at [Kong](https://konghq.com). We
have a commitment to producing a high-quality [open source](LICENSE) module
extending Nginx with newer features (such as WebAssembly support). This module
is meant for use in Kong products such as the [Kong API
Gateway](https://github.com/kong/kong), but at the same time its design is not
restricted to those use-cases: this module is maintained as a general-purpose
Nginx module, of which the Kong Gateway is one possible user.
With the above context in mind, please understand that our feature set, roadmap
prioritization, and PR acceptance criteria are all informed by a combination of
the above goals. This also affects our available bandwidth for outside
contributions.
## What kind of contributions are we looking for?
1. *Bug reports* - if you hit any bug in this module, we are eager to hear about
them! Do not hesitate to open an issue; ideally with steps on how to
reproduce the bug along with, if possible, a minimally-reproducible example
(or test case).
2. *Bug fixes* - if you did hit a bug and found a way to fix it, that's even
better! If you have a bugfix you'd like to contribute please open a PR;
ideally with a regression test (see [DEVELOPER.md]). If you were not able to
produce a regression test, at the very least we would like a description of
how to reproduce the bug so we can verify it on our end. Also note that we
might find a different way to fix the bug that is more in-line with the rest
of the codebase, so please do not get upset if we end up applying our own fix
to the bug you found instead of your PR -- the report of the bug is still
greatly appreciated.
3. *Documentation feedback* - if you found a typo, missing instructions in
[DEVELOPER.md], or any other section of the documentation requiring
clarification, please open an issue and let us know about it. You may also
suggest these changes in a PR, in which case we *may* also merge an updated
version of your patch; nevertheless such feedback is greatly appreciated.
4. We do have a [significant roadmap](#roadmap) laid out ahead of us, so right
now we are not actively looking for feature contributions outside of the
roadmap nor do we have the resources to perform extensive code reviews on
unexpected features. Also, we might just not intend to get a certain feature
integrated. In any case please do contact us before working on a new feature
or any other behavioral change. We encourage you to do so even if it is
something from our roadmap, as our team may already be working on it and some
context is likely required.
## Roadmap
This module's roadmap is documented via [GitHub
projects](https://github.com/Kong/ngx_wasm_module/projects).
Beyond our immediate roadmap, here is a non-exhaustive list of improvements and
ideas WasmX wishes to explore:
- Improve Nginx's telemetry reporting.
- Improve Nginx's hot-reloading capabilities.
- Abstract Nginx inter-worker communication facilities.
- Load Wasm bytecode at runtime (consider a dedicated Nginx process type?).
- Support for Envoy's [xDS
API](https://www.envoyproxy.io/docs/envoy/latest/api/api_supported_versions).
- Consider multiplexing & routing connections at a lower level than currently
offered by stock Nginx modules.
- Consider a build process with [Bazel](https://bazel.build/).
## TODOs
List the annotated "TODOs" in the sources and test cases with:
```
make todo
```
## Building from source
See [DEVELOPER.md] for developer resources on building this module from source
and other general development processes.
[DEVELOPER.md]: docs/DEVELOPER.md