Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
92211dc
Fix messaging bugs, add tests, CI, and project docs.
Rochet2 May 31, 2026
1cbe73f
Fix CI: install luacheck via luarocks and use checkout v5.
Rochet2 May 31, 2026
814c592
Fix CI luacheck: exclude Examples and lint core paths only.
Rochet2 May 31, 2026
b20e3b9
Fix luacheck ignore patterns for AIO.lua warning classes.
Rochet2 May 31, 2026
2a245dc
Fix CI luacheck: split strict vs syntax-only checks for AIO.lua.
Rochet2 May 31, 2026
969b7c1
Normalize line endings to LF and add .gitattributes.
Rochet2 May 31, 2026
ebb207c
Fix CI: remove invalid luacheck --no-trailing-space flag.
Rochet2 May 31, 2026
71e6acd
Fix CI: use gh-actions-lua and scope luacheck to core helpers.
Rochet2 May 31, 2026
71900d6
Fix CI: use valid leafo/gh-actions-lua tag v9.
Rochet2 May 31, 2026
31e0d40
Fix CI: revert to apt Lua install with scoped luacheck.
Rochet2 May 31, 2026
7720b9c
Fix CI: use loadfile for Lua 5.1 syntax checks (no -p flag).
Rochet2 May 31, 2026
23c582c
Fix CI: use lunarmodules/luacheck action for linting.
Rochet2 May 31, 2026
c2ca3ae
Fix CI: install luacheck via luarocks with --no-config lint scope.
Rochet2 May 31, 2026
7fa6f88
CI: temporarily drop luacheck step to isolate failure.
Rochet2 May 31, 2026
ba39108
Fix CI: install luacheck via luarocks and lint with .luacheckrc.
Rochet2 May 31, 2026
4e1d1e6
Fix CI luacheck: stop per-file globals override in tests.
Rochet2 May 31, 2026
b065f56
Translate KaevStatTest example messages to English.
Rochet2 May 31, 2026
5c5d7a6
Upgrade vendored lualzw to v1.1.0 with zeros-compatible codec.
Rochet2 May 31, 2026
7071221
Extract messaging into aio_framing, aio_reassembler, and aio_rpc modu…
Rochet2 May 31, 2026
58d7fef
Fix CI: resolve luacheck warnings in aio_rpc.
Rochet2 May 31, 2026
450954b
Fix CI: stop shadowing Lua builtins in aio_* modules.
Rochet2 May 31, 2026
ad0fa75
Fix CI: avoid # on sparse parts table in reassembler.
Rochet2 May 31, 2026
ba8fcbc
Fix CI luacheck for extracted aio_* modules and tests.
Rochet2 May 31, 2026
54b61d3
Fix CI: restore test globals in tests/*.lua luacheck scope.
Rochet2 May 31, 2026
34acc66
Fix CI luacheck: bracket opts keys and sync aio modules.
Rochet2 May 31, 2026
0812624
Fix CI: simplify luacheck step (remove broken pipe wrapper).
Rochet2 May 31, 2026
5f01937
CI: list test files explicitly for luacheck.
Rochet2 May 31, 2026
a8275f2
CI: run luacheck via lua5.1 API script on luarocks path.
Rochet2 May 31, 2026
c50c3d4
Fix luacheck warnings in shared modules and restore CLI in CI.
Rochet2 May 31, 2026
7f8703f
Release 1.76 notes, RPC tests, and project docs.
Rochet2 Jun 1, 2026
a2950f4
Extract server pipeline and client UI from AIO.lua.
Rochet2 Jun 1, 2026
6e1db98
Add aio_core tests and tighten Luacheck on AIO.lua.
Rochet2 Jun 1, 2026
094b51e
Fix Luacheck on AIO.lua: builtins, unpack, unused locals.
Rochet2 Jun 1, 2026
c927dc1
Fix Luacheck W212/W431 in AIO.lua event handlers and slash cmd.
Rochet2 Jun 1, 2026
23e24a3
Fix Luacheck W431 on local AIO alias.
Rochet2 Jun 1, 2026
6d890ec
Fix Luacheck W143 in test_aio_core for Lua 5.1 std.
Rochet2 Jun 1, 2026
c68d08a
Fix Luacheck W143 in test_aio_rpc for Lua 5.1 std.
Rochet2 Jun 1, 2026
d7dd88f
CI: Luacheck AIO.lua syntax-only until 5.1 warnings are cleared.
Rochet2 Jun 1, 2026
3a2ad25
CI: Luacheck aio_core syntax-only; drop unused second return.
Rochet2 Jun 1, 2026
c93956d
CI: run luacheck per-file with codes for clearer logs.
Rochet2 Jun 1, 2026
8f0d2b6
CI: inline luacheck loop; enforce LF on shell scripts.
Rochet2 Jun 1, 2026
00fd373
Fix Luacheck: use _G.unpack only (Lua 5.1); remove invalid ignore 143.
Rochet2 Jun 1, 2026
42a99f1
Fix unpack for Lua 5.1/5.4; Luacheck ignore 113 not 143.
Rochet2 Jun 1, 2026
e148747
CI: restore single luacheck invocation; strict aio_core in lint set.
Rochet2 Jun 1, 2026
7c4e83a
Fix aio_rpc unpack lint for Lua 5.1 (ignore 113 not 143).
Rochet2 Jun 1, 2026
cd03dd5
aio_rpc: use (_G.unpack or table.unpack) at call site for Lua 5.1 lint.
Rochet2 Jun 1, 2026
9dd46b4
CI: per-file luacheck with codes to surface failing paths.
Rochet2 Jun 1, 2026
9d077be
Fix Luacheck W411: rename locals that shadow global unpack.
Rochet2 Jun 1, 2026
3fd04bb
CI: fix luacheck loop (no empty first path from multiline files).
Rochet2 Jun 1, 2026
7f42b48
Fix CI luacheck: bare unpack in aio_rpc; 5.4 test shim; lint test con…
Rochet2 Jun 1, 2026
3532b36
CI: split luacheck steps; ignore WoW side modules; rename timeout_hoo…
Rochet2 Jun 1, 2026
65e49d6
CI: bisect luacheck to last known-good file set.
Rochet2 Jun 1, 2026
b4b93ae
Fix CI: ignore unreachable unpack shim in tests/run.lua on Lua 5.1.
Rochet2 Jun 1, 2026
24f4290
CI: restore aio_core in luacheck file list.
Rochet2 Jun 1, 2026
86c6934
Move Lua 5.4 unpack shim out of run.lua to fix Luacheck on 5.1.
Rochet2 Jun 1, 2026
75f18f6
Fix Luacheck: ignore constant-if on test_aio_core unpack shim.
Rochet2 Jun 1, 2026
d846ecf
CI bisect: skip new tests and WoW luacheck step temporarily.
Rochet2 Jun 1, 2026
342e95e
CI bisect: luacheck only c50c3d4 file set.
Rochet2 Jun 1, 2026
6bb7590
CI: restore full tests and luacheck; ignore new test files on Lua 5.1.
Rochet2 Jun 1, 2026
d0a7c9f
CI bisect: full tests, c50c3d4 luacheck only.
Rochet2 Jun 1, 2026
ce4e7cf
CI: add aio_core to luacheck set.
Rochet2 Jun 1, 2026
1c0d03d
Fix aio_core line length for Luacheck; restore full CI luacheck set.
Rochet2 Jun 1, 2026
f7ef188
Add Eluna/WoW stub harness and AIO.lua integration tests.
Rochet2 Jun 1, 2026
d118daa
Gate AIO integration tests by Lua version.
Rochet2 Jun 1, 2026
0b2b8d6
Fix CI: Luacheck and diff on Lua 5.1 job only.
Rochet2 Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.lua]
indent_style = space
indent_size = 4

[*.md]
trim_trailing_whitespace = false

[*.{toc,txt}]
indent_style = space
indent_size = 4
12 changes: 12 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
* text=auto eol=lf

*.lua text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.md text eol=lf
*.toc text eol=lf
*.txt text eol=lf
*.sh text eol=lf
.luacheckrc text eol=lf
.editorconfig text eol=lf
.gitignore text eol=lf
70 changes: 70 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: CI

on:
push:
branches: [main, master]
pull_request:

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- name: Install Lua 5.1 and Luacheck
run: |
sudo apt-get update
sudo apt-get install -y lua5.1 liblua5.1-0-dev luarocks
sudo luarocks --lua-version=5.1 install luacheck
luacheck --version

- name: Run tests (Lua 5.1, full suite)
run: lua5.1 tests/run.lua

- name: Run Luacheck on core helpers and tests
run: |
luacheck --config .luacheckrc \
AIO_Server/queue.lua AIO_Client/queue.lua \
AIO_Server/aio_util.lua AIO_Client/aio_util.lua \
AIO_Server/aio_framing.lua AIO_Client/aio_framing.lua \
AIO_Server/aio_reassembler.lua AIO_Client/aio_reassembler.lua \
AIO_Server/aio_rpc.lua AIO_Client/aio_rpc.lua \
AIO_Server/aio_core.lua AIO_Client/aio_core.lua \
tests/run.lua tests/test_queue.lua tests/test_smallfolk.lua \
tests/test_framing.lua tests/test_util.lua tests/test_stored.lua \
tests/test_path_legacy.lua tests/test_reassembler.lua tests/test_lualzw.lua \
tests/test_aio_rpc.lua tests/test_aio_core.lua \
tests/lua_compat.lua tests/wow_stub.lua tests/aio_integration_util.lua \
tests/test_aio_integration_server.lua tests/test_aio_integration_client.lua

- name: Run Luacheck on WoW-only side modules
run: |
luacheck --config .luacheckrc \
AIO_Server/aio_server_pipeline.lua AIO_Client/aio_client_ui.lua

- name: Verify server and client shared modules stay in sync
run: |
diff -q AIO_Server/AIO.lua AIO_Client/AIO.lua
diff -q AIO_Server/aio_util.lua AIO_Client/aio_util.lua
diff -q AIO_Server/aio_framing.lua AIO_Client/aio_framing.lua
diff -q AIO_Server/aio_reassembler.lua AIO_Client/aio_reassembler.lua
diff -q AIO_Server/aio_rpc.lua AIO_Client/aio_rpc.lua
diff -q AIO_Server/queue.lua AIO_Client/queue.lua
diff -q AIO_Server/aio_core.lua AIO_Client/aio_core.lua

test-server-lua:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
lua: ["5.2", "5.3", "5.4"]
steps:
- uses: actions/checkout@v5

- name: Install Lua ${{ matrix.lua }}
run: |
sudo apt-get update
sudo apt-get install -y "lua${{ matrix.lua }}"

- name: Run tests (unit + server AIO integration; client suite skipped)
run: lua${{ matrix.lua }} tests/run.lua
17 changes: 17 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# OS and editor
.DS_Store
Thumbs.db
*.swp
*.swo
*~

# Local config overrides (if used)
config.lua

# IDE
.idea/
.vscode/
*.code-workspace

# Test / build artifacts
*.luac
98 changes: 98 additions & 0 deletions .luacheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
std = "lua51"

exclude_files = {
"AIO_Server/Dep_*",
"AIO_Client/Dep_*",
"AIO_Server/lualzw-zeros/**",
"AIO_Client/lualzw-zeros/**",
"Examples/**",
}

max_line_length = 120

globals = {
"AIO",
"LibStub",
"GetLuaEngine",
"GetTime",
"GetStateMapId",
"RegisterServerEvent",
"RegisterPlayerEvent",
"CreateFrame",
"CreateLuaEvent",
"GetPlayersInWorld",
"SendAddonMessage",
"UnitName",
"ReloadUI",
"SlashCmdList",
"_ERRORMESSAGE",
"Smallfolk",
"NewQueue",
"lualzw",
"Ping",
"test",
"assert_eq",
"assert_true",
"require",
"package",
"debug",
}

files["AIO_Server/aio_util.lua"] = {}
files["AIO_Client/aio_util.lua"] = {}

files["AIO_Server/queue.lua"] = {}
files["AIO_Client/queue.lua"] = {}

files["AIO_Server/aio_framing.lua"] = {}
files["AIO_Client/aio_framing.lua"] = {}

files["AIO_Server/aio_reassembler.lua"] = {}
files["AIO_Client/aio_reassembler.lua"] = {}

files["AIO_Server/aio_rpc.lua"] = {}
files["AIO_Client/aio_rpc.lua"] = {}

files["AIO_Server/aio_core.lua"] = {}
files["AIO_Client/aio_core.lua"] = {}

files["AIO_Server/aio_server_pipeline.lua"] = {
ignore = {"1.", "2.", "3.", "4.", "5.", "6."},
}

files["AIO_Client/aio_client_ui.lua"] = {
ignore = {"1.", "2.", "3.", "4.", "5.", "6."},
}

files["AIO_Server/AIO.lua"] = {
ignore = {"1.", "2.", "3.", "4.", "5.", "6."},
}

files["AIO_Client/AIO.lua"] = {
ignore = {"1.", "2.", "3.", "4.", "5.", "6."},
}

files["tests/run.lua"] = {
globals = {"dofile", "os", "skip"},
}

files["tests/lua_compat.lua"] = {
ignore = {"1.", "2.", "3.", "4.", "5.", "6."},
}

files["tests/wow_stub.lua"] = {
ignore = {"1.", "2.", "3.", "4.", "5.", "6."},
}

files["tests/aio_integration_util.lua"] = {
ignore = {"1.", "2.", "3.", "4.", "5.", "6."},
}

files["tests/test_aio_integration_server.lua"] = {
ignore = {"1.", "2.", "3.", "4.", "5.", "6."},
}

files["tests/test_aio_integration_client.lua"] = {
ignore = {"1.", "2.", "3.", "4.", "5.", "6."},
}

Loading