Thank you for your interest in FalconMC. We look forward to collaborating with you.
This guide will provide an overview of our development guidelines and contribution workflow.
This guide assumes an understanding of Git and common development tools. Some resources if you need to brush up:
- Finding ways to contribute to open source on GitHub
- Set up Git
- GitHub flow
- We require all branches to follow the format described in the Branch format section.
- Collaborating with pull requests
We recommend using Visual Studio Code, but any editor supporting rust-analyzer do just fine. If you do use VSCode, be sure to install the appropriate extensions:
- rust-analyzer
- We recommend using the pre-release version, unless you run in to problems. (Procedural macro tooling is still in active development and frequently has ABI breakages)
- (RECOMMENDED) Even Better TOML
- (OPTIONAL) Rust Macro Expand
- Requires cargo-expand (
cargo install cargo-expand
) - Requires Rust nightly (
rustup toolchain install nightly
)
- Requires cargo-expand (
An overview of project architecture can be found in the wiki, on the architecture wiki page.
If you find a problem with FalconMC, search if an issue already exists. If a related issue exists, please comment any information about your experience which you believe may be useful for solving the issue. If a related issue does not exist, we welcome you to open a new issue using the relevant issue format.
Find an issue that interests you by searching our existing issues. Don't be discouraged by an issue if it is assigned to someone; you are always welcome to contribute. If you have any questions about the status of an issue, add a comment or ask on our Discord.
-
Using GitHub Desktop:
- Getting started with GitHub Desktop will guide you through setting up Desktop.
- Once Desktop is set up, you can use it to fork the repo!
-
Using the command line:
- Fork the repo so that you can make your changes without affecting the original project until you're ready to merge them.
We require all branches to follow a semantic naming scheme. Your branch can have any name while you are developing on your fork, but to submit a pull request, we require it abide by the following format:
- Features/Enhancements:
feature/<short feature description>
- Bug Fixes:
bugfix/<short bug description>
For most changes, one of these two categories will make the most sense. If you find that your changes don't quite fall in line with either, feel free to prefix your branch how you see fit.
-
Using GitHub Desktop:
- The Managing branches page is a good resource for learning branches on GitHub Desktop.
-
Using the command line:
git branch <new-branch> [base-branch]
In order to fully utilize Git, we recommend frequently committing your changes. Commit messages are an art we don't expect you to have mastered, but we do encourage you to follow Atom's contribution guide when writing them.
TODO: CREATE A PULL REQUEST TEMPLATE
Once you have finished your changes, it is time to create a pull request (aka. PR).
- Using Github Desktop or the Github website, create a pull request from your forked branch into FalconMC's
develop
branch. - If your PR resolves any issues, be sure to link them to the PR.
- Enable the checkbox to allow maintainer edits so we can make any necessary changes to your branch.
Once you have submitted your PR, we will review your changes. We may have questions or request for additional information.
- We may ask for changes to be made before a PR can be merged, either using suggested changes or pull request comments. You can apply suggested changes directly through the UI. You can make any other changes in your fork, then commit them to your branch.
- As you update your PR and apply changes, mark each conversation as resolved.
- If you run into any merge issues, checkout this git tutorial to help you resolve merge conflicts and other issues.
We sincerely thank you for your contribution to FalconMC. If you have any questions or concerns about our development cycle or how to contribute, please ask us on our Discord server.