|
1 | | -# Getting started |
| 1 | +!!! info "This guide covers contributing to both Pylon and Rebar, as the process is very similar." |
2 | 2 |
|
3 | | -Rebar is written in [Kotlin](https://kotlinlang.org/), a language similar to Java, but with more modern features and concise syntax. If you know Java, you'll be able to pick up Kotlin very quickly. |
| 3 | +## What should I contribute? |
4 | 4 |
|
5 | | -Pylon is written in Java. |
| 5 | +We generally welcome contributions for both Rebar and Pylon. |
6 | 6 |
|
7 | | -## How to get started |
| 7 | +We use GitHub issues to keep track of tasks. Good first issues are labelled with the 'good first issue' tag. You can view good first issues for Rebar [here](https://github.com/pylonmc/rebar/issues?q=state%3Aopen%20label%3A%22good%20first%20issue%22) and for Pylon [here](https://github.com/pylonmc/pylon/issues?q=state%3Aopen%20label%3A%22good%20first%20issue%22). Picking one of these issues is a great place to start. |
8 | 8 |
|
9 | | -1. Clone the `parallel-dev-repo` repository: `git clone https://github.com/pylonmc/parallel-dev-repo` (or use a GUI like Github Desktop) |
10 | | -2. If you're using IntelliJ, it'll set everything up automatically. If not, run `./gradlew`. This will clone the `rebar` and `pylon` repositories. |
11 | | -3. If you want to submit your changes to the master project, **delete the `rebar` or `pylon` directory (depending on which one you want to contribute to), fork the rebar or pylon repository, and clone your fork into the same directory.** Otherwise, you won't be able to open a pull request with your changes (unless you're a Rebar/Pylon developer and have access to the Rebar/Pylon repositories). |
| 9 | +If you'd like to do something which does not have an issue already (you can check this by searching for keywords in issues), we recommend you open an issue and assign yourself to it before completing the task. This helps avoid duplicate work and lets others know what you are doing. |
| 10 | + |
| 11 | +If you are planning on making a major change, we strongly recommend discussing with the team beforehand on the Pylon Discord server. |
12 | 12 |
|
13 | | -See the [The Parallel Dev Repo Project](master-project.md) page for more information about the master repository. |
| 13 | +If you have any questions about contributing, feel free to ask us on the Pylon Discord. |
14 | 14 |
|
15 | | -## Submitting your contributions |
| 15 | +## Prerequisites |
16 | 16 |
|
17 | | -We generally welcome contributions for both Rebar and Pylon, but it's best check with the Pylon team before making any major changes, because we might already have something planned out that won't fit well with your changes. Hop on our Discord server and have a chat with us if you're interested in doing anything major, or have any questions about contributing :) |
| 17 | +### Contributing to Rebar |
| 18 | +- A GitHub account |
| 19 | +- A Git/GitHub client such as [GitHub Desktop](https://github.com/apps/desktop) |
| 20 | +- Knowledge of [Kotlin](https://kotlinlang.org/) |
| 21 | +- A Kotlin IDE (such as IntelliJ) |
18 | 22 |
|
19 | | -Once you're done with your changes, open a pull request and give some information about what you did and why you did it. |
| 23 | +### Contributing to Pylon |
| 24 | +- A GitHub account |
| 25 | +- A Git/GitHub client such as [GitHub Desktop](https://github.com/apps/desktop) |
| 26 | +- Knowledge of Java |
| 27 | +- A Java IDE (such as IntelliJ) |
20 | 28 |
|
21 | | -## Tests |
| 29 | +!!! question "What is Kotlin?" |
| 30 | + Kotlin is a language similar to Java, but with more modern features and concise syntax. If you know Java, you'll be able to pick up Kotlin very quickly. |
22 | 31 |
|
23 | | -Rebar has a set of integration tests. Tests should only be added for critical functionality such as block storage and recipes. |
| 32 | +## How to get started |
| 33 | + |
| 34 | +We use the **parallel dev repository** to develop Rebar and Pylon in parallel. We recommend you use this repository when contributing to Pylon, Rebar, or both. |
24 | 35 |
|
25 | | -## Custom Dokka |
| 36 | +1. Clone the `parallel-dev-repo` repository: `git clone https://github.com/pylonmc/parallel-dev-repo` (or use a GUI like Github Desktop) |
| 37 | +2. If you're using IntelliJ, it should clone the `rebar` and `pylon` repositories into the project automatically. If not, run `./gradlew`. |
26 | 38 |
|
27 | | -Pylon uses a custom version of Dokka to generate Javadocs. This is because the default Dokka output is very buggy and doesn't look very good. Seggan has submitted pull requests to the Dokka project to fix the issues, but they haven't been merged yet, so in the meantime we use a custom version. If you wish to see the "fixed" doc output, here are the steps: |
| 39 | +See the [parallel dev repo docs page](parallel-dev-repo.md) for more information about the parallel dev repository. |
28 | 40 |
|
29 | | -1. Clone the `pylonmc/dokka` repository: `git clone https://github.com/pylonmc/dokka` |
30 | | -2. Checkout the `pylon` branch: `git checkout pylon` |
31 | | -3. In the root directory, execute `./gradlew publishToMavenLocal -Pversion=2.1.0-pylon-SNAPSHOT`. Note that as Dokka is a very large project, the first build will take a long time. On Seggan's decent-ish laptop, the first run took about 10 minutes. Subsequent builds will be much faster as long s you don't delete the build cache. |
32 | | -4. Now, in the Pylon master project, execute `./gradlew :rebar:rebar:dokkaGenerate -PusePylonDokka=true`. The generated output will be under `pylon/rebar/rebar/build/dokka`. |
| 41 | +### Contributing to Rebar |
| 42 | + |
| 43 | +3. [Fork Rebar](https://github.com/pylonmc/rebar/fork) on GitHub |
| 44 | +4. Delete the `rebar` directory |
| 45 | +5. Clone your fork in place of the `rebar` directory you just deleted |
| 46 | +6. Make your changes |
| 47 | +7. [Test your changes](testing-your-changes.md) |
| 48 | +8. Commit and push your changes to your fork |
| 49 | +9. Open a pull request |
| 50 | + |
| 51 | +### Contributing to Pylon |
| 52 | + |
| 53 | +3. [Fork Pylon](https://github.com/pylonmc/pylon/fork) on GitHub |
| 54 | +4. Delete the `pylon` directory |
| 55 | +5. Clone your fork in place of the `pylon` directory you just deleted |
| 56 | +6. Make your changes |
| 57 | +7. [Test your changes](testing-your-changes.md) |
| 58 | +8. Commit and push your changes to your fork |
| 59 | +9. Open a pull request |
33 | 60 |
|
34 | 61 | ## I'm stuck, what next? |
35 | 62 |
|
36 | | -1. If it's Pylon specific, check if it's in the docs. If it's not Pylon specific, google it. |
| 63 | +1. If it's Pylon/Rebar specific, check if it's in the docs. If it's not Pylon/Rebar specific, google it. |
37 | 64 | 2. Search issues on the relevant repository to see if it's been mentioned |
38 | 65 | 3. Search relevant terms on our Discord server to see if it's been discussed before |
39 | 66 | 4. Ask a question on our Discord server |
40 | 67 |
|
41 | | - |
42 | | -[comment]: <> (TODO make this easier to comprehend, maybe add screenshots etc, less experienced users will have no idea what the fuck is going on from these instructions) |
43 | | - |
|
0 commit comments