mirror of
https://github.com/Nighthawk42/wow_bejeweled.git
synced 2026-08-30 04:30:22 +00:00
3.5 KiB
3.5 KiB
Contributing to Bejeweled for World of Warcraft
Thank you for helping maintain and improve Bejeweled for World of Warcraft! This guide explains our multi-client branch architecture and workflow for contributing bug fixes, features, and compatibility updates.
🌿 Multi-Client Branch Architecture
Each active World of Warcraft client flavor is maintained in its own dedicated Git branch:
| Branch | Client Flavor | Interface Version | Purpose |
|---|---|---|---|
mainline |
Retail / Mainline | 120100, 120001 |
Default development branch (Midnight / Retail) |
mists |
Mists of Pandaria Classic | 50504 |
Classic Progression |
tbc |
TBC Classic / Anniversary | 20506, 20505 |
Classic Anniversary Edition |
vanilla |
Classic Era / Vanilla | 11509, 11508 |
World of Warcraft Classic Era |
wrath |
Wrath of the Lich King | 38002, 30405 |
Titan Reforged / Wrath |
cata |
Cataclysm Classic | 40402, 40400 |
Cataclysm Classic |
archive |
Historical | N/A | Pre-branch snapshot of the legacy codebase |
🛠️ Development & Contribution Workflow
1. General Fixes & Features (Cross-Client)
- Most game logic, UI fixes, sound triggers, and score synchronization apply equally across all WoW flavors.
- Workflow:
- Base your feature or bug fix on
mainline. - Test in the game client (or simulation).
- Submit a Pull Request targeting
mainline. - Once merged into
mainline, changes can be propagated (cherry-picked or rebased) to the flavor branches (mists,tbc,vanilla, etc.).
- Base your feature or bug fix on
2. Flavor-Specific Fixes (API Differences)
- If an issue or feature only applies to a specific client version (e.g., legacy FrameXML APIs or modern UI deprecations):
- Submit your Pull Request directly against that client's branch (e.g.,
vanillaormists). - Note in the PR description why the change is flavor-specific.
- Submit your Pull Request directly against that client's branch (e.g.,
3. TOC & Versioning Conventions
- Single TOC & Lua File: Each branch must only contain
Bejeweled.tocandBejeweled.luainside theBejeweled/directory. Do not introduce flavor suffixes (Bejeweled_Mainline.*, etc.). - TOC Interface Numbers: Ensure
## Interface:matches the latest patch interface value for that client flavor. - Version Strings: Update the version in:
Bejeweled.toc:## Version: X.Y.ZBejeweled.lua:Bejeweled.version = "Version X.Y.Z"and default profile version.
📜 Licensing & Asset Attribution
- All new community contributions, bug fixes, and maintenance code are licensed under the MIT License.
- Original game design, art, sounds, and base code remain copyright PopCap Games, Inc. / Electronic Arts.
- Please credit any original ideas, patches, or third-party tools in ACKNOWLEDGEMENT.md.
🧪 Testing Guidelines
- Whenever possible, test changes live in-game on the appropriate client version before submitting a PR.
- Use a Lua error reporting addon (e.g., BugSack / BugGrabber) to ensure no silent errors or frame leaks occur during gameplay, score syncing, flight paths, or game transitions.