Thanks for your interest in contributing!
This project aims to help beginners learn Discord bot development, so contributions that make the template more accessible and useful are especially welcome.
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- A clear title and description
- Steps to reproduce the bug
- Expected vs actual behavior
- Your Python and discord.py versions
- Open an issue with the
enhancementlabel - Describe the feature and why it would be useful
- If possible, provide examples of how it would work
-
Fork the repository
-
Create a branch (see Branch Naming Convention below)
git checkout -b feat/your-feature-name
-
Make your changes
- Write clean, readable code
- Follow existing code style and structure
- Add comments for complex logic
- Keep it beginner-friendly!
-
Test your changes
- Make sure the bot runs without errors
- Test your new features/commands
-
Commit your changes (see Commit Message Convention below)
git commit -m "feat: add user authentication command" -
Push to your fork
git push origin feat/your-feature-name
-
Open a Pull Request
- Describe what you changed and why
- Reference any related issues
Good Contributions:
- New example commands that demonstrate Discord.py features
- Bug fixes and improvements
- Better error handling
- Documentation improvements
- Code simplification for beginners
Please Avoid:
- Breaking changes without discussion
- Overly complex code that's hard for beginners to understand
- Dependencies that aren't necessary
- Removing existing functionality
- Use clear, descriptive variable names
- Add comments explaining what code does (remember, beginners will read this!)
- Follow PEP 8 style guidelines
- Keep functions simple and focused
This project follows the Conventional Commits specification.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
| Type | Description |
|---|---|
feat |
A new feature |
fix |
A bug fix |
docs |
Documentation only changes |
style |
Changes that don't affect code meaning (formatting, whitespace) |
refactor |
Code change that neither fixes a bug nor adds a feature |
perf |
Performance improvement |
test |
Adding or correcting tests |
build |
Changes to build system or dependencies |
ci |
Changes to CI configuration files and scripts |
chore |
Other changes that don't modify src or test files |
feat: add new /ban command
fix: resolve memory leak in event handler
docs: update README with setup instructions
feat(commands): add user profile lookup
fix!: change API response formatIndicate breaking changes by:
- Adding
!after the type/scope:feat!: change command prefix - Adding a
BREAKING CHANGE:footer in the commit body
This project follows the Conventional Branch naming convention.
<type>/<description>
| Prefix | Purpose | Example |
|---|---|---|
feat/ |
New features | feat/add-moderation-commands |
fix/ |
Bug fixes | fix/reaction-handler-crash |
hotfix/ |
Urgent production fixes | hotfix/security-vulnerability |
docs/ |
Documentation updates | docs/update-readme |
refactor/ |
Code refactoring | refactor/simplify-event-handlers |
test/ |
Test additions/changes | test/add-command-tests |
chore/ |
Maintenance tasks | chore/update-dependencies |
release/ |
Release preparation | release/v1.2.0 |
- Use lowercase letters, numbers, and hyphens only
- Use hyphens to separate words:
feat/add-new-command - Keep descriptions concise but descriptive
- Include issue numbers when applicable:
feat/issue-123-add-logging - No consecutive, leading, or trailing hyphens
git checkout -b feat/add-music-player
git checkout -b fix/command-cooldown-bug
git checkout -b docs/api-documentation
git checkout -b chore/upgrade-discord-pyFeel free to open an issue if you have questions about contributing!
By contributing, you agree that your contributions will be licensed under the MIT License.