Skip to content

Commit

Permalink
[ci skip] Update CONTRIBUTING.md
Browse files Browse the repository at this point in the history
  • Loading branch information
LMBishop committed May 23, 2022
1 parent 075419c commit 7cea3ec
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 27 deletions.
51 changes: 36 additions & 15 deletions 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).
19 changes: 7 additions & 12 deletions README.md
Expand Up @@ -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.
Expand Down Expand Up @@ -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.

Expand Down

0 comments on commit 7cea3ec

Please sign in to comment.