aboutsummaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md75
1 files changed, 75 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..c12c695
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,75 @@
+# Contributing to Rapier
+
+Thank you for wanting to contribute! Contribution can take many forms, including:
+- Reporting a bug.
+- Submitting a fix.
+- Fixing typos.
+- Improving the docs.
+- [Donations on GitHub Sponsors](https://github.com/sponsors/dimforge).
+
+It is strongly recommended to [open an issue](https://github.com/dimforge/rapier/issues) or to discuss
+with us [on Discord](discord) before fixing complicated issues, or implementing new
+features.
+
+
+## Contributing to the Rust code
+The Rust source code of the Rapier physics engines is available on our `rapier` repository
+[on GitHub](https://github.com/dimforge/rapier.rs).
+
+1. Fork our `rapier` repository [on GitHub](https://github.com/dimforge/rapier).
+2. Clone the repository and make the necessary changes.
+3. In order to debug your changes and check that it works, do the following:
+ - Run the tests `cargo test`
+ - Run the 2D examples and see if they behave as expected: `cargo run --release --bin all_examples2`
+ - Run the 3D examples and see if they behave as expected: `cargo run --release --bin all_examples3`
+ - Run the 2D examples with the `parallel` and `simd-stable` features enabled: `cd all_examples2; cargo run --release --features parallel,simd-stable`
+ - Run the 3D examples with the `parallel` and `simd-stable` features enabled: `cd all_examples3; cargo run --release --features parallel,simd-stable`
+4. Once you are satisfied with your changes, submit them by [opening a Pull Request](https://github.com/dimforge/rapier/pulls) on GitHub.
+5. If that Pull Request does something you need urgently, or if you think it has been forgotten, don't hesitate
+ to ask **@sebcrozet** directly [on Discord](discord) for a review.
+6. Iterate with the reviewer until the PR gets merged.
+
+## Contributing to the user-guide [rapier](https://rapier.rs)
+The [official website](https://rapier.rs) for Rapier is built with [Docusaurus 2](https://docusaurus.io/).
+Its source code can be found on our `rapier.rs` repository [on GitHub](https://github.com/dimforge/rapier.rs).
+If you find a typo or some outdated information on the website, please don't hesitate to reach
+out! We can't stress enough how helpful it is for you to report (or fix) typo errors.
+
+If you would like to fix it yourself, here is the procedure:
+
+1. Fork our `rapier.rs` repository [on GitHub](https://github.com/dimforge/rapier.rs).
+2. Clone the repository and make the necessary changes.
+3. In order to debug your changes and check that it works, do the following:
+ - `cd website; yarn install; yarn start;` This will open the website on your browser locally.
+ The default local address is http://localhost:3000 .
+4. Once you are satisfied with your changes, submit them by [opening a Pull Request](https://github.com/dimforge/rapier.rs/pulls) on GitHub.
+5. If that Pull Request does something you need urgently, or if you think it has been forgotten, don't hesitate
+ to ask **@sebcrozet** directly [on Discord](discord) for a review.
+6. Iterate with the reviewer until the PR gets merged.
+
+## Contributing to the JavaScript/TypeScript bindings
+The source code of the official JavaScript/TypeScript bindings for Rapier are available
+on our `rapier.js` repository [on GitHub](https://github.com/dimforge/rapier.rs).
+
+You will have to make sure that you have [wasm-pack](https://github.com/rustwasm/wasm-pack) installed because
+it is responsible for generating the low-level bindings. In order to modify the bindings and test your
+changes you may:
+
+1. Fork our `rapier.js` repository [on GitHub](https://github.com/dimforge/rapier.js).
+2. Clone the repository and make the necessary changes.
+3. In order to debug your changes and check that it works, do the following for the 3D version of rapier (the procedure
+ for the 2D version is similar):
+ - `cd rapier3d; npm install; ./build_all.sh`. This will build the JS bindings, TS type definitions, and generate
+ the documentation. This will take several minutes to complete.
+ - After making changes to the Rust code on that repository, you need to run `./build_rust.sh`.
+ - After making changes to the TypeScript code on that repository, you need to run `./build_typescript.sh`.
+ - To test your changes, go back to the repository's root directory, and do: `cd testbed3d; npm install; npm link ../rapier3d/pkg; npm run start`.
+ This will open the 3D examples on your browser.
+ - Our build system for these JS bindings is still a bit messy right now. If you have any trouble, don't
+ hesitate to contact us [on Discord](discord).
+4. Once you are satisfied with your changes, submit them by [opening a Pull Request](https://github.com/dimforge/rapier.js/pulls) on GitHub.
+5. If that Pull Request does something you need urgently, or if you think it has been forgotten, don't hesitate
+ to ask **@sebcrozet** directly [on Discord](discord) for a review.
+6. Iterate with the reviewer until the PR gets merged.
+
+[discord]: https://discord.gg/vt9DJSW \ No newline at end of file