mirror of https://codeberg.org/topola/topola.git
92 lines
2.7 KiB
Markdown
92 lines
2.7 KiB
Markdown
# Contributing to Topola
|
|
|
|
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.
|
|
|
|
Clone the [repository](https://codeberg.org/topola/topola):
|
|
|
|
git clone https://codeberg.org/topola/topola.git
|
|
|
|
Topola currently requires nightly Rust to build. Enable it with
|
|
|
|
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
|
|
|
|
Finally, run Topola by executing
|
|
|
|
cargo run --features egui --bin topola-egui
|
|
|
|
##### 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:
|
|
|
|
cargo binstall trunk
|
|
|
|
To build and open Topola in your browser, run
|
|
|
|
trunk serve
|
|
|
|
#### 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.
|