Contributing to Sir Lancebot

Before contributing, please ensure you read the contributing guidelines in full.

Setup Instructions

  1. Install requirements
  2. Setup a test server and a bot account
  3. Fork the project repository
  4. Configure the development environment
  5. Run the project
  6. Work with git to make changes


Test Server and Bot Account

You will need your own test server and bot account on Discord to test your changes to the bot.

  1. Create a test server.
  2. Create a bot account and invite it to the server you just created.
  3. Create the following text channels:
    • #announcements
    • #dev-log
    • #sir-lancebot-commands
  4. Create the following roles:
    • @Admin
  5. Note down the IDs for your server, as well as any channels and roles created.

Fork the Project

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.

Development Environment

  1. Once you have your fork, you will need to clone the repository to your computer.
  2. After cloning, proceed to install the project's dependencies.
  3. After installing dependencies, you will have to setup environment variables:

The following variables are needed for running Sir Lancebot:

Environment Variable Description
BOT_TOKEN Bot Token from the Discord developer portal
BOT_GUILD ID of the Discord Server
BOT_ADMIN_ROLE_ID ID of the role @Admins
ROLE_HELPERS ID of the role @Helpers
CHANNEL_ANNOUNCEMENTS ID of the #announcements channel
CHANNEL_DEVLOG ID of the #dev-log channel
CHANNEL_COMMUNITY_BOT_COMMANDS ID of the #sir-lancebot-commands channel

Full environment variable reference for this project.

Run the project

To run the project, use the pipenv command pipenv run start in the project root.

$ pipenv run start

Working with Git

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.

Click here to see the basic Git workflow when contributing to one of our projects.

Have fun!