Start contributing
In this guide you will learn all the necessary things to start contributing to SteelMC.
Before start
Section titled “Before start”Before even start to prepare you need to know some key concepts of Steel’s philosophy.
Code philosophy
Section titled “Code philosophy”When you are writting code for Steel you have to have in mind that we want complete solutions not half-baked ones, an investigation about how should it work in vanilla and how to make it better is required for medium-big systems. We are building with good foundations in mind, which means that all the code must be readable, documented, cohesionated, and production ready. If you are working in a system with possibility of modding in the future, you should prepare it for the future.
AI politics
Section titled “AI politics”We don’t mind what use are you giving to the AI as long as you can ensure that you understand all the code in your pr, you can explain all decisions made while development, and what alternatives you didn’t take before making the pull request.
Code standards
Section titled “Code standards”You should also take a look at our code standards.
Preparations
Section titled “Preparations”Now that you know about our philosophy is time to start working on your pr, but first…
Selecting what to do
Section titled “Selecting what to do”To know what to do there’s many methods, but we encourage to do this steps:
- Check our open PRs to know what’s been worked by others
- Check our open issues to see what can be fixed (Filter by the
good first issuelabel is recommended) - Check our tracker to see what’s missing
- Ask inside #dev-work in our discord to confirm if you can implement something
Creating a new branch
Section titled “Creating a new branch”First, if you don’t have a fork of SteelMC in your GitHub account, go here to fork it.
Once in your fork, make a new branch specifiying in the name what feature are you implementing.
Clone that branch into your device to start working.
Coding
Section titled “Coding”Since this guide is agnostic to what are you implementing we cannot guide you much here, but in any case you will need to learn how to work with the minecraft java codebase.
We have multiple guides to help you with implementing some parts of the code:
- How to work with the registries
- How to register blocks and items
- How to work with blocks
- How to work with items
- How to debug the network
- How to work with our extractor
Once finished
Section titled “Once finished”Once your feature is completly implemented in the code, tested by you, ensured that all is updated to the last commit, and uploaded to your GitHub branch, you should open a PR with your branch to our original repository, but first let’s make sure your code is ready to be reviewed.
Fullfill your pull request name, and description following our template.
Adittionaly you can request a review from our maintainers directly on GitHub, or post the link of your PR in our prs-ready-for-review discord channel, to notify our lovely maintainers to review your code.
Our maintainers can request changes to you, if that happens you should change the requested code, or explain why you think it’s better that way.
Eventually your code will be merged into our code, when that moment comes remember:
“Thank you and congratulations for your code”
SteelMC logo by colonthreeing.