diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2022-05-23 20:12:47 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2022-05-23 20:12:47 +0100 |
| commit | 7cea3ec42aa084763a88221047ed50fff56444cf (patch) | |
| tree | 0cc346c1785362a76d948fee75622591ebaca774 | |
| parent | 075419c5e73ee2e134705fb373a1c7477bb7b514 (diff) | |
[ci skip] Update CONTRIBUTING.md
| -rw-r--r-- | CONTRIBUTING.md | 51 | ||||
| -rw-r--r-- | README.md | 19 |
2 files changed, 43 insertions, 27 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ab931712..fe1a5510 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,19 +1,40 @@ -We welcome all contributions, we will check out all pull requests and determine if it should be added to Quests -### Guidance -* ensure Java 8 is installed on your machine -* fork this repository and clone it -* edit the source code as your please -* run ``gradlew build`` in the base directory to build Quests -* test your changes (the jar will be placed in build/libs/) -* push to your fork when ready & submit a pull request +We welcome all contributions, given they fit within the scope of Quests. If you're unsure, then ask me first! -### Contribution Guidelines +## Building and updating Quests +* Ensure Java is installed on your machine +* Clone this repository +* Edit the source code as your please +* Run ``./gradlew`` (Linux and macOS) or ``gradlew`` (Windows) in the base directory to build Quests + * The jar will be output in `/build/libs` + +## Project structure +* `/common`: contains interfaces and abstract classes that are used, should remain platform independent +* `/bukkit`: contains implementations of the interfaces in `/common` and most of the plugin code for Bukkit +* `/bungee`: for BungeeCord, this isn't a Quests plugin, see [this issue](https://github.com/LMBishop/Quests/issues/180) for more info + +### API +The best way to learn how the plugin works is to just look at the source code. +Start from the main class (`BukkitQuestsPlugin`) and see how the plugin initialises itself. +Most classes are self-explanatory, and the main class holds instances and provides getters for basically every module. + +## Contributing guidelines If you plan on contributing upstream please note the following: -* discuss **large** changes first -* indent the file with **4 spaces** -* take a look at how the rest of the project is formatted and follow that -* do not alter the version number in ``build.gradle``, that will be done when the release version is ready -* limit the first line of commit messages to ~50 chars and leave a space below that, with an optional extended description -* **test your changes** on the latest Spigot version before making a pull request +* Discuss **large** changes first + * A large change significantly changes API and behaviour, such as major refactoring +* Take a look at how the rest of the project is formatted and follow that (usually 4 spaces) +* Do not alter the version number in ``build.gradle``, that will be done when the release version is ready +* Limit the first line of commit messages to ~50 chars and leave a space below that, with an optional extended description +* **Test your changes** on the latest Spigot version before making a pull request + +## Guidance +If you have never contributed to an open source project, the general workflow is as follows: +1. Fork this repository +2. Clone your fork and make your changes +3. Test changes work +4. Commit your changes and rebase onto `upstream/master` if there have been updates since + * This to keep a linear commit history and prevent me having to resolve merge conflicts + * `upstream/master` refers to the original repository (LMBishop/Quests), you may have to add it as a remote yourself +5. Push local changes to any branch on your fork +6. Open a pull request from your branch to `master` By contributing to Quests you agree to license your code under the [GNU General Public License v3.0](https://github.com/LMBishop/Quests/blob/master/LICENSE.txt). @@ -20,12 +20,14 @@ The latest release version of Quests can be found on [Spigot](https://www.spigotmc.org/resources/▶-quests-◀-set-up-goals-for-players.23696/). The latest build of Quests (development version) can be found on [GitHub](https://github.com/LMBishop/Quests/actions). -Alternatively, you can build Quests via Gradle. Release versions of Quests are built using **Java 8**, you can change the target version in ``build.gradle``. -* ensure Java 8 is installed on your machine -* clone this repository -* run ``gradlew`` in the base directory +Alternatively, you can build Quests via Gradle. Release versions of Quests are built using **Gradle**, targeting **Java 8**. You can change the target version in ``build.gradle``. +* Ensure Java is installed on your machine +* Clone this repository +* Run ``./gradlew`` (Linux and macOS) or ``gradlew`` (Windows) in the base directory to build Quests + * The jar will be output in `/build/libs` + +*See [CONTRIBUTING.md](https://github.com/LMBishop/Quests/blob/master/CONTRIBUTING.md) for more information.* -The final jar will be in the `build/libs/` directory. #### 🧰 Custom Task Creating new Task Types within Quests is supported, [see the wiki](https://github.com/LMBishop/Quests/wiki/New-Task-Type) for help. @@ -65,13 +67,6 @@ See https://github.com/LMBishop/Quests/graphs/contributors #### 🤝 Contributing to Quests See [CONTRIBUTING.md](https://github.com/LMBishop/Quests/blob/master/CONTRIBUTING.md) -Quests is split into separate modules: -- **common** - contains abstract classes and common code used to create a Quests plugin -- **bukkit** - an implementation of Quests for Bukkit (this is where you will most likely make changes) -- **bungee** - for BungeeCord, this isn't a Quests plugin, see [this issue](https://github.com/LMBishop/Quests/issues/180) for more info - -For instructions on building Quests, see [Downloads / Building](#💾-Downloads-/-Building). - ## 📖 Wiki Quests provides a highly detailed and well maintained [wiki](https://github.com/LMBishop/Quests/wiki/). The information there is very useful to new users of the plugin. |
