-
-
Notifications
You must be signed in to change notification settings - Fork 90
Contributing
First off, thank you for considering contributing to TJ-Bot. 🎉
TJ-Bot is an open-source project, and we love to receive contributions from our community — you! There are many ways to contribute, from writing tutorials, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into TJ-Bot itself.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open-source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
- Create issues for any major changes and enhancements that you wish to make, as well as for reporting any sort of bugs. For more light-hearted talks, you can use discussions. Discuss things transparently and get community feedback.
- Be welcoming to newcomers and encourage diverse new contributors from all backgrounds.
Unsure where to begin contributing to TJ-Bot? You can start by looking through these labels!
- good first issue - issues which should only require a few lines of code, and a test or two.
- help wanted - issues which should be a bit more involved than good first issues.
Working on your first Pull Request? You can check these resources:
At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first! 🎉
Most code changes originate in creation of an issue, where you describe what you would like to change. While this step is generally recommended, it is not necessary.
Then, you either create a feature/name_of_your_feature
branch for your changes or a fork of the repository.
The repository has two main branches:
-
master
, a stable branch mostly used for releases that receives changes only occasionally -
develop
, the branch where the active development takes place; receives changes frequently
Your work will be based off the develop
branch.
When you are done, you will create a pull request to request feedback from the rest of the community. At this point, your code will be automatically tested against our code guidelines (Spotless, SonarCloud, CodeQL, and more).
Each pull request should be clear, concise and informative. Please consider checking these resources: writing a great pull request and unwritten guide to pull requests.
A pull request should only implement one feature or bugfix. If you want to add or fix more than one thing, please submit another pull request.
Once your code passed those checks and has been reviewed and accepted by at least two members of the community, you can merge it to the develop
branch.
We require a linear history, that means you have two options to get your code merged:
-
squash
, merges all your commits together into a single commit, which will then be merged into the project's history -
rebase
, puts your changes aside, updates the original code base you worked with and then puts your changes back on top of it, all your commits will be preserved and land in the project's history
From there on, it will lead to an automatic re-deployment of the bot on a test environment, where you can test out your changes live.
After a while, the master
branch will be synced with develop
again, leading to your changes finally being live on the real server!
Make sure to head over to the Wiki as a general entry point to the project. It provides lots of tutorials, documentation and other information, for example
- creating a discord bot and a private server;
- setting up the project locally;
- adding your own custom commands;
- a technology overview;
- guidance about how to maintain the bot (e.g. VPS, logs, databases, restart).
You can chat with the TJ-Bot users and devs in our discord server!
Enjoy and have fun 👍