Thanks for your interest in contributing. This document covers the workflow and conventions used in this project.
- Fork the repository and clone your fork
- Run the install script to set up local testing:
./install.sh
- Make sure luacheck is installed:
luarocks install luacheck
- Create a branch from
main:git checkout -b your-branch-name
- Make your changes in the
AutoSellPlus/source directory - Test in-game by running
./install.shand/reload - Run the linter before committing:
luacheck AutoSellPlus/
- Commit and push your branch
- Open a pull request against
main
- Lua 5.1 — WoW uses Lua 5.1. Do not use features from later versions.
- No external libraries — the addon has zero dependencies and should stay that way.
- Namespace — all addon code lives under the
nsnamespace table passed by WoW. Do not create new globals. - Naming —
PascalCasefor functions,camelCasefor local variables,UPPER_SNAKEfor constants. - Indentation — 4 spaces, no tabs.
- Line length — no hard limit, but keep lines readable.
| File | Purpose |
|---|---|
Config.lua |
Default settings, saved variable initialization |
Helpers.lua |
Utility functions (item level, transmog checks, money formatting) |
UI.lua |
Settings panel registered under Options > AddOns |
Popup.lua |
The merchant popup frame, filters, item rows, sell action |
Core.lua |
Sell queue, slash commands, event handling |
Files are loaded in the order listed in AutoSellPlus.toc. If you add a new file, add it to the .toc in the correct load order.
The project uses luacheck for static analysis. Configuration is in .luacheckrc.
- WoW API globals go in
read_globals - Globals the addon writes to go in
globals - The CI pipeline will fail on any warning or error
If you use a new WoW API function, add it to the appropriate list in .luacheckrc.
- Use the imperative mood: "Add feature" not "Added feature"
- Keep the first line under 72 characters
- Reference issue numbers where applicable:
Fix item scan crash (#12)
- Keep PRs focused on a single change
- Describe what the change does and why
- Make sure luacheck passes with zero warnings
- Test in-game before submitting
- Do not bump the version in the
.tocfile. The packager handles this automatically using git tags. - Do not add files to the
.tocwithout testing load order. - Do not add external library dependencies.
- Do not modify
.github/workflows/without discussing it first.
Only maintainers can create releases. See the Releasing section of the README for details.
Open an issue if you have questions or want to discuss a change before starting work.