Contributing to Seasonalbot
Before contributing, please ensure you read the contributing guidelines in full.
- Install requirements
- Setup a test server and a bot account
- Fork the project repository
- Configure the development environment
- Run the project
- Work with git to make changes
You will need your own test server and bot account on Discord to test your changes to the bot.
- Create a test server.
- Create a bot account and invite it to the server you just created.
- Create the following text channels:
- Create the following roles:
- Note down the IDs for your server, as well as any channels and roles created.
You will need your own remote (online) copy of the project repository, known as a fork.
You will do all your work in the fork rather than directly in the main repository.
- Once you have your fork, you will need to clone the repository to your computer.
- After cloning, proceed to install the project's dependencies.
- After installing dependencies, you will have to setup the following environment variables:
|Environment Variable||Description||Default Values|
|SEASONALBOT_DEBUG||Debug mode of the bot||False|
|SEASONALBOT_GUILD||ID of the Discord Server|
|SEASONALBOT_ADMIN_ROLE_ID||ID of the role @Admins|
|CHANNEL_ANNOUNCEMENTS||ID of the #announcements channel|
|CHANNEL_DEVLOG||ID of the #dev-log channel|
|CHANNEL_SEASONALBOT_COMMANDS||ID of the #seasonalbot-commands channel|
|CYCLE_FREQUENCY||Amount of days between cycling server icon||3|
Additionally, you may find the following environment variables useful during development:
|MONTH_OVERRIDE||Interger in range
|GITHUB_TOKEN||Personal access token for GitHub, raises rate limits from 60 to 5000 requests per hour|
To run the project, use the pipenv command
pipenv run start in the project root.
$ pipenv run start
Now that you have everything setup, it is finally time to make changes to the bot! If you have not yet read the contributing guidelines, now is a good time. Contributions that do not adhere to the guidelines may be rejected.
Notably, version control of our projects is done using Git and Github. It can be intimidating at first, so feel free to ask for any help in the server.