Add CONTRIBUTING.md

This commit is contained in:
Jeremy 2023-11-08 20:15:56 -05:00
parent 2f8e1a5ff7
commit 336a4ac7bb
No known key found for this signature in database
GPG Key ID: BE03111EB7ED6E2E

33
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,33 @@
# Contributing
Welcome, thank you for your interest in the project!
## Getting started
Contributions are always welcome. If you have not already, consider joining the community discord
(linked in the README). There is discussion about library development there as well as a development
roadmap. Github issues are also a good place to start.
I'm happy to merge fixes, improvements, and features as well as help with getting pull requests
(PRs) over the finish line. That being said, I can't merge stylistic changes,
premature-optimizations, or micro-optimizations.
When contributing, please try to match the current code style in the codebase. Style doesn't matter
too much ultimately but consistency within a codebase is important.
## Local development
To build the project make a `build/` folder and run `cmake ..`, along with any cmake configurations
you desire. Then run `make -j` or `msbuild cpptrace.sln`.
Some useful configurations:
- `-DCMAKE_BUILD_TYPE=Debug|Release|RelWithDebInfo`: Build in debug / release / etc.
- `-DBUILD_SHARED_LIBS=On`: Build shared library
- `-DCPPTRACE_SANITIZER_BUILD=On`: Turn on sanitizers
- `-DCPPTRACE_BUILD_TEST=On`: Build a small test program
- `-DCPPTRACE_BUILD_DEMO=On`: Build a small demo program
## Testing
Unfortunately because this library is so platform-dependent the best way to test thoroughly is with
github's CI. This will happen automatically when you open a PR.