Thank you for your interest in contributing to the official repuls.io bot! This guide will help you participate effectively in development.
Open an issue specifying:
- Expected vs. Observed bot behavior
- Steps to reproduce the bug
- Screenshot if relevant
- Bot version (commit executed)
The bot and everything that composes it (icon, code, etc.) are under the MIT license (see LICENSE.txt file). By contributing (whether it be code, graphics, links, or anything else), you agree to publish it under the same license.
- Python 3.12+ (dependencies in pyproject.toml)
- UV (modern and fast replacement for
pip), - Discord account with developer portal enabled,
- Fork the repository and clone it locally with:
git clone https://github.com/pandaroux007/RepulsBot.git
cd RepulsBot- Install dependencies with
uv: The required modules will be installed automatically withuv run main.py.
uv venv- Configure your environment:
- Create a
.envfile indatain the format specified in.env.example - Change all the dev IDs in
data/constants.py
- Create a
- Develop new features, fix bugs 🙏
- Test the bot by launching it with
uv run main.py
-
Development:
- Use
snake_casenotation for variables and files. - Structure your code into modules (
cogs/) and adhere to the established directory structure. - Use the static analysis tool RUFF.
- Use
-
Test before submitting
- Use Mockoon for endpoints (video system, game interaction, or anything else).
- Verify the integrity of the database after adding your features/fixes.
- Plan a database migration schema if you add or modify storage.
-
Submitting pull requests
- Use the Pull Request template and provide the requested information.
- Store secret data (tokens, endpoints, etc.) in the
.envfile.
Important
During review, any contribution containing unmasked sensitive information will be systematically rejected (this demonstrates a lack of rigor on the part of the developer).
uv lock --upgrade-package discord.py
uv syncuv pip list --outdated
uv lock --upgrade
uv sync