You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`.pkgmeta`: BigWigs packager metadata for release packaging.
18
+
19
+
## 🔁 CI/CD
20
+
The project uses GitHub Actions for linting and release packaging.
21
+
22
+
### Workflow (`.github/workflows/release.yml`)
23
+
-**Push to `main`:** Runs `luacheck` on all Lua files via `nebularg/actions-luacheck@v1`.
24
+
-**Push a `v*` tag:** Runs luacheck, then runs `BigWigsMods/packager@v2` which creates a GitHub Release with the addon zip attached. Uses the built-in `GITHUB_TOKEN` — no additional secrets required.
25
+
26
+
### Luacheck (`.luacheckrc`)
27
+
-`std = "lua51"` covers standard Lua globals.
28
+
- WoW API globals (`CreateFrame`, `GetTime`, `C_Timer`, `Settings`, etc.) are declared in `read_globals`.
29
+
- Addon-owned globals (`CooldownTrackerDB`, slash command vars) are declared in `globals`.
30
+
-**When adding new WoW API calls:** if luacheck starts reporting an undefined global, add it to `read_globals` in `.luacheckrc`.
31
+
32
+
### Packager (`.pkgmeta`)
33
+
- Dev-only files (`AGENTS.md`, `.github/`, `.luacheckrc`, `.gitignore`) are listed under `ignore` so they are excluded from the release zip.
34
+
-**When adding new dev-only files** (e.g. test scripts, editor config), add them to the `ignore` list in `.pkgmeta`.
35
+
36
+
### Releasing
37
+
```bash
38
+
git tag -a v1.2.0 -m "Version 1.2.0"
39
+
git push origin v1.2.0
40
+
```
41
+
Also update `## Version:` in `CooldownTracker.toc` to match the tag before tagging.
15
42
16
43
## 📜 Coding Standards & Conventions
17
44
1.**Private Namespace:** Always use the addon's private namespace passed by the WoW client on load. Do not pollute the global environment.
Releases are built automatically by GitHub Actions using the [BigWigs packager](https://github.com/BigWigsMods/packager).
95
+
96
+
-**Push to `main`** — runs [luacheck](https://github.com/mpeterv/luacheck) static analysis on all Lua files.
97
+
-**Push a version tag** — runs luacheck, packages the addon, and publishes a GitHub Release with a downloadable zip.
98
+
99
+
To ship a release:
100
+
101
+
```bash
102
+
git tag -a v1.2.0 -m "Version 1.2.0"
103
+
git push origin v1.2.0
80
104
```
81
105
106
+
The zip will appear on the [Releases](../../releases) page within a minute or two.
107
+
82
108
## Compatibility
83
109
84
110
Tested on **World of Warcraft: Midnight** (Interface 120001). Fully compliant with Midnight's addon restrictions — no combat log reading, no addon messaging.
0 commit comments