diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d2af37b..7877791 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,50 +1,91 @@ -## Prerequisites +# Contributing to Topola -Building Topola from source requires [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) to be installed on your system. +Literally anyone can contribute to Topola, including you. + +Contributions can be of any kind: documentation, organization, +tutorials, blog posts, bug reports, issues, feature requests, feature +implementations, pull requests, helping to manage issues, etc.. Many of +these tasks do not require specialized programming knowledge, or writing +software at all. + +## Chat + +You are encouraged to join our [Matrix +chatroom](https://matrix.to/#/%23topola:tchncs.de) or [IRC +channel](https://webchat.oftc.net/?channels=#topola) to talk with us +before you contribute. Both chatrooms are bridged, so it does not matter +which one you join. + +## Reporting issues + +If you believe you have found a defect in Topola or its documentation, +please report it on our [issue tracker](https://codeberg.org/topola/topola/issues). + +Under normal operation, crashes and panics are always considered +reportable bugs. + +## Code contribution + +We welcome code contributions from anyone regardless of skill or +experience level. We're friendly to newcomers. We will help you with +your contribution if there are any problems. + +Topola accepts contributions using pull requests. For a step-by-step +guide on how to use these, refer to Codeberg's +[documentation](https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/). + +Before you submit a pull request, make sure Topola actually builds with +your changes. Follow the build instructions from the next section. + +### Building + +#### Prerequisites + +Building Topola from source requires +[git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and +[cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) +to be installed on your system. -## Installation - Clone the [repository](https://codeberg.org/topola/topola): - git clone https://codeberg.org/topola/topola.git - + git clone https://codeberg.org/topola/topola.git + Topola currently requires nightly Rust to build. Enable it with - rustup override set nightly - -### egui port - -After cloning, change your working directory to your clone of Topola's repository: + rustup override set nightly + +#### Egui port + +Change your working directory to your clone of Topola's repository: cd topola Then build the project with - cargo build --features egui --bin topola-egui - + cargo build --features egui --bin topola-egui + Finally, run Topola by executing - cargo run --features egui --bin topola-egui + cargo run --features egui --bin topola-egui -#### Running Topola in a Web browser +##### Running Topola in a Web browser -Topola can be built to run in a Web browser using [Trunk](https://trunkrs.dev/), which will be installed with the following command: +Topola can be built to run in a Web browser using +[Trunk](https://trunkrs.dev/), which will be installed with the +following command: cargo binstall trunk To build and open Topola in your browser, run trunk serve - -### SDL2 demo -For shorter build times you may use the SDL2 demo instead of the egui port: +#### SDL2 demo - cargo build --features sdl2 --bin topola-sdl2-demo - cargo run --features sdl2 --bin topola-sdl2-demo +Optionally, for shorter build times you may build the SDL2 demo instead +of the Egui port: + + cargo build --features sdl2 --bin topola-sdl2-demo + cargo run --features sdl2 --bin topola-sdl2-demo The downside is that the SDL2 demo's user interface is highly incomplete. - -## Contributing - -Topola project accepts contributions using pull requests. For a step-by-step guide on how to use these, refer to Codeberg's [documentation](https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/). \ No newline at end of file