First off, thank you for considering contributing to Anno 117 Mod Manager! It's people like you that make this tool great for the entire Anno 117 community.
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
Bug Report Template:
**Describe the bug**
A clear description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '...'
3. See error
**Expected behavior**
What you expected to happen.
**Screenshots**
If applicable, add screenshots.
**Environment:**
- OS: [e.g. Windows 11, macOS 14, Ubuntu 22.04]
- Python Version: [e.g. 3.11.5]
- Mod Manager Version: [e.g. 1.0]
**Additional context**
Any other context about the problem.
Feature suggestions are welcome! Please provide:
- Clear description of the feature
- Use case - why would this be useful?
- Examples - how would it work?
- Mockups - if you have visual ideas
- Fork the repo and create your branch from
main - Make your changes:
- Follow existing code style
- Add comments for complex logic
- Test thoroughly
- Update documentation if needed
- Write clear commit messages
- Submit a pull request
- Use 4 spaces for indentation (not tabs)
- Follow PEP 8 for Python code
- Use descriptive variable names
- Add docstrings for functions
- Keep functions focused and concise
Example:
def calculate_mod_priority(mod_name: str, load_order: List[str]) -> int:
"""
Calculate the priority of a mod based on its position in load order.
Args:
mod_name: Name of the mod
load_order: Current load order list
Returns:
Priority value (higher = loads first)
"""
# Implementation here# Clone your fork
git clone https://github.com/your-username/anno117-mod-manager.git
cd anno117-mod-manager
# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python anno117_mod_manager.pyBefore submitting:
- Manual testing: Test your changes thoroughly
- Edge cases: Try unusual inputs
- Different platforms: If possible, test on Windows/macOS/Linux
- Error handling: Ensure errors are handled gracefully
Write clear commit messages:
Good:
✅ "Fix conflict detection ignoring language files"
✅ "Add keyboard shortcut for backup manager (Ctrl+B)"
✅ "Improve empty state with helpful guidance"
Bad:
❌ "Fix bug"
❌ "Update"
❌ "Changes"
- Be respectful and considerate
- Be patient with reviewers
- Accept feedback gracefully
- Help others in discussions
- Keep it professional
Don't hesitate to ask questions in the issues section. We're here to help!
Contributors will be:
- Listed in the project README
- Credited in release notes
- Appreciated by the community!
Thank you for contributing! 🎉