lovr/CONTRIBUTING.md

60 lines
2.4 KiB
Markdown
Raw Normal View History

2017-08-28 01:12:53 +00:00
Contributing
===
You want to contribute to LÖVR? That's awesome!
Submitting Issues
---
2017-08-28 01:19:49 +00:00
Feel free to file an issue if you notice a bug. Make sure you search before filing an issue, as it
may have already been asked.
2017-08-28 01:12:53 +00:00
Issues are okay for feature requests and questions about the development of LÖVR as well, but
2017-08-28 01:18:55 +00:00
usually you'll get a better response by asking in
[Slack](https://join.slack.com/ifyouwannabemylovr/shared_invite/MTc5ODk2MjE0NDM3LTE0OTQxMTIyMDEtMzdhOGVlODFhYg).
2017-08-28 01:19:49 +00:00
Questions about how to use LÖVR belong in Slack.
2017-08-28 01:12:53 +00:00
Contributing Documentation
---
If you see any typos or inconsistencies in the docs, submitting an issue or pull request in the
2018-03-01 16:33:08 +00:00
[lovr-docs repo](https://github.com/bjornbytes/lovr-docs) would be greatly appreciated! The `api`
folder has Lua files for each function, the `guides` folder contains tutorials in markdown format,
and the `examples` folder has source code for sample projects and other demos.
2017-08-28 01:12:53 +00:00
Contributing Code
---
2018-11-08 06:49:03 +00:00
To contribute patches, fork LÖVR, commit to a branch, and submit a pull request. Note that
contributions to the repository will be released under the terms in LICENSE. For larger changes, it
can be a good idea to engage in initial discussion via issues or Slack before submitting. Try to
stick to the existing coding style:
2017-08-28 01:12:53 +00:00
- 2 space indentation.
- 100 character wrapping (ish, sometimes it's more readable to just have a long line).
- Use descriptive, camelCased names when possible.
If you modify the embedded `boot.lua` script, you can compile it into a C header by doing this:
```sh
2017-12-10 20:29:29 +00:00
pushd src/resources; xxd -i boot.lua > boot.lua.h; popd
2017-08-28 01:12:53 +00:00
```
2017-08-28 01:18:55 +00:00
Organization
---
An overview of the folder structure:
- `deps` contains submodules for external dependencies. Some smaller dependencies are also included
in the `src/lib` folder.
- `src/api` contains Lua bindings. There's a file for each module in there, and a `types` folder
with a file for each type of object.
2017-12-10 20:29:29 +00:00
- `src/resources` contains embedded resources. These are compiled to binary headers using `xxd`.
2017-12-10 20:36:22 +00:00
- `src/data` has stuff for loading various file formats into LÖVR data structures.
2017-08-28 01:18:55 +00:00
- Each module has a folder in `src`.
2019-03-13 16:43:32 +00:00
Note that currently the internal C API may change at any time. The Lua API will change less
frequently but breaking changes will still occur before version 1.0.
Branches other than master will be force-pushed during development to organize commit history.