Thank you for your interest in contributing!
# Fork the repository on GitHub, then:
git clone https://github.com/qaz111ex/The_Bazaar_Gate.git
cd The_Bazaar_GateWe use a feature branch workflow. Never commit directly to main.
git checkout -b feat/your-feature-name
# or
git checkout -b fix/your-bug-fix- Write clean, readable code following PEP 8
- Add/update translations in
dist/language.csvif needed - Test your changes thoroughly
- Keep commits small and focused
We use Conventional Commits format:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting, etc.)refactor:Code refactoringperf:Performance improvementstest:Adding or updating testschore:Maintenance tasks
Examples:
git commit -m "feat(ui): add language switcher component"
git commit -m "fix(core): handle missing game directory gracefully"
git commit -m "docs(readme): update installation instructions"git push origin feat/your-feature-nameThen create a Pull Request on GitHub.
Use descriptive titles with conventional commit format:
feat: add dark mode supportfix: prevent crash on missing settings filedocs: update language contribution guide
Include the following sections:
## Summary
Brief description of changes.
## Changes
- Change 1
- Change 2
## Testing
How was this tested?
## Screenshots (if applicable)- Code follows project style
- Translations added/updated if needed
- No hardcoded strings (use language.csv)
- Error handling is appropriate
- Tests pass (if applicable)
- All PRs require at least one review
- Address reviewer feedback
- Ensure all checks pass
- Squashed merge to main
We use these labels:
| Label | Description |
|---|---|
bug |
Bug reports |
enhancement |
New features |
documentation |
Docs improvements |
good first issue |
Beginner-friendly |
help wanted |
Seeking contributors |
priority: high |
High priority |
status: in progress |
Being worked on |
Open issues with:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Environment info (OS, version)
Open issues with:
- Problem you're solving
- Proposed solution
- Alternatives considered
- Python 3.9+
- Windows OS
- Git
pip install -r requirements.txtpython dist/launcher_tool.pypython build_exe.pyOutput: dist/TheBazaarGate.exe
Note: The language file (dist/language.csv) is embedded in the executable during build. Users only need the single .exe file.
- Follow PEP 8
- Use type hints where helpful
- Prefer explicit over implicit
- Use context managers for resources
- Catch specific exceptions
- All user-facing text must be in
dist/language.csv - Use translation keys, never hardcode strings
- Include emoji indicators for visual consistency
- Maintain placeholder positions (
{}) for format strings
- Use conventional commit format
- Keep messages concise (under 72 chars)
- Reference issues where applicable (#123)
- Edit
dist/language.csvin the source code - Add a new column with the language code (e.g.,
frfor French) - Translate all values in the new column
- Test by running from source:
python dist/launcher_tool.py - Rebuild the executable:
python build_exe.py - The new language will appear in the program's dropdown
- Keep emoji indicators (📁, 🚀, 🎮, etc.) for visual consistency
- Maintain placeholder positions (
{}) for format strings - Ensure every row has a translation for the new language
- Test the translation in the application before submitting
Feel free to open an issue for questions!