diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..04a5f7b --- /dev/null +++ b/CONTRIBUTING.md @@ -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.