Use this checklist when preparing a release build.
- Update addon version in
CombatMode/CombatMode.toc(and any mirrored version fields). - Verify
## Interfacetargets current Retail build. - Confirm addon title/notes/author metadata are accurate.
- Confirm
CombatMode/CombatMode.tocaddon folder/name metadata still matchesCombatModepackaging expectations.
- GitHub release packaging and publishing is handled by
.github/workflows/release-package.ymlusingBigWigsMods/packager@v2. - Required repository secret:
CF_API_KEY: CurseForge API token used for upload.
- Required repository variable:
CURSEFORGE_PROJECT_ID: numeric CurseForge project ID.
- Wago upload is intentionally not configured yet.
- Root
.pkgmetasetspackage-as,ignore, andmanual-changelog(packager uses-t CombatMode -m .pkgmeta). - Maintain
CombatMode/CHANGELOG.mdmanually and commit it before tagging/publishing a release; the packager includes it in the zip via.pkgmeta(manual-changelog: CHANGELOG.mdunder-t CombatMode). - Regenerate the in-game viewer copy by running
scripts/sync-changelog-to-lua.ps1(or VS Code task Sync CHANGELOG.md to ConfigChangelogData.lua) soCombatMode/Config/ConfigChangelogData.lua(CM.Config.ChangelogText) stays aligned withCHANGELOG.md.
- MCP-first (preferred):
- Validate new/changed WoW API calls (
lookup_api). - Check deprecated APIs and replacements (
list_deprecated). - Confirm enums/events where relevant (
get_enum,get_event).
- Validate new/changed WoW API calls (
- Manual fallback (no MCP available):
- Verify each changed API/event on warcraft.wiki.gg API docs.
- Confirm events used in
CM.Constants.BLIZZARD_EVENTShave correct payload expectations for handlers. - Manually review protected-action APIs (
SetBinding,SetOverrideBinding*,SetMouselookOverrideBinding, CVar writes) for combat guards/deferred handling.
- Prefer Mainline-safe behavior unless explicitly shipping cross-version logic.
- Confirm
CombatMode/Embeds.xmlload order still matches module dependencies. - Ensure new files are included in
CombatMode/Embeds.xmland/orCombatMode/CombatMode.tocas needed. - Verify no accidental dev-only artifacts are referenced.
- GitHub source archives (
Source code (zip/tar.gz)) include the full repository and are not addon-ready packaging. - Confirm the published release includes the workflow-generated asset
CombatMode-<version>.zip(for exampleCombatMode-3.1.6.zip) and use that as the distributable.
- Run quick pass from
TESTING.md:- core mouselook toggle/lock/unlock flow
- reticle + targeting CVar behavior
- click-casting base/modifier paths
- healing radial open/cast flow
- slash commands and keybind sanity
- Confirm no combat-lockdown errors and no new Lua errors.
- If MCP was unavailable during implementation, run an additional manual API spot-check for each changed WoW API call before tagging release.
- Run full lint/format gate for release prep:
pre-commit run --all-files.
- Verify new settings have defaults and correct DB scope (
globalorchar). - Reload UI and ensure values persist and re-apply correctly.
- Confirm reset/default flows remain valid.
- Summarize user-visible changes first (features/fixes/behavior changes).
- Note any keybind, CVar, or migration-impacting changes explicitly.
- Include known limitations or follow-up items if any.
- Publish a GitHub release tag (draft/prerelease is fine for validation).
- Confirm the
Release Packageworkflow run succeeds in GitHub Actions. - Confirm the GitHub release has the workflow-generated package asset attached.
- Confirm a new file appears on CurseForge for
CURSEFORGE_PROJECT_IDwith the expected version/tag.
## x.y.z
- Feature: ...
- Fix: ...
- Improvement: ...
- Notes: (migrations, known caveats)