Skip to content

Latest commit

 

History

History
54 lines (38 loc) · 4.29 KB

CONTRIBUTING.md

File metadata and controls

54 lines (38 loc) · 4.29 KB

Contributing

Before you contribute

Setting up a development environment

Software configuration

  • Fork the SkyBlock-Core repository using the fork button on top right of the page and name the repository SkyBlock-Core
  • Clone the forked repository using git clone https://github.com/<YourUsername>/SkyBlock-Core.
    • After you've committed all the necessary changes, make a pull request to the main branch of SkyBlock-Core
    • Use the main branch as a way to pull the latest changes from the main repository.
    • Set your project SDK and Gradle JVM to your JDK 17.
      • For gradle, this can be done by searching for gradle jvm in the CTRL + SHIFT + A dialog in IntelliJ.
      • For your project SDK, this can be done in the module settings (CTRL + ALT + SHIFT + S) in IntelliJ.
    • If you don't have the minecraft sources installed, you can run the genSources gradle task.
    • Run the Minecraft Client task to make sure everything works.
      • Note: If IntelliJ tells you there's an error in the configuration, set the module to SkyBlock-Core.main.

Logging into Hypixel in a development environment

Use DevAuth. You do not need to download the jar, just follow the configuration instructions in the DevAuth README

Hot Reloading

Hot reloading is possible, to do that, you can run the Minecraft Client task with the IntelliJ debugger. Though hot-reloading can sometimes cause issues, so restarting will sometime be required.

Requirements For Pull Requests To Be Merged

  • Every pull request requires at least 2 approvals before it is able to be merged.
  • Only contributors (people added as a contributor - would previously have been able to merge commits) are able to approve pull requests.
  • If you push to someone else's fork after reviewing their PR, someone else must review your changes before the PR is able to be merged.
  • All conversations must be resolved before the PR is mergeable. These can be resolved by any contributor. Conversations are explicitly comments on code, not in the main pull request thread.
  • If a new commit is added to a pull request, all approvals are dismissed, and new approvals are needed before it can be merged (this prevents unreviewed code being added after approvals).

Implications

  • Maintainer (or contributor) does not allow anyone to write directly to the codebase.
  • Any code change will have been seen (and approved) by at least 3 pairs of eyeballs (including the original writer) before it is able to be merged.
  • Contributor role is able to be given freely to (somewhat competent) developers without worrying about potential ramifications - reviews are still required, contributor just allows them to approve changes and merge once 2+ reviews have been given to the final PR.

These are not advisories - GitHub will not allow you to merge a pull request without these being met. If you're confused about why you can't merge a PR, GitHub gives you a nice step-by-step breakdown of what you need to do at the bottom of the PR's page.


© 2023 SkyBlock-Central. Subject to the Apache License 2.0.