AIO 1.76: messaging fixes, module split, tests, and CI - #27
Open
Rochet2 wants to merge 67 commits into
Open
Conversation
Correct server cache timing, stored-byte accounting, sethook cleanup, reset persistence, and Windows path basenames; add aio_util helpers, unit tests, Luacheck CI, and SECURITY/DEPENDENCIES docs.
Ubuntu Noble has no luacheck apt package; install with luarocks instead. Bump actions/checkout to v5 for Node.js 24 runner support.
Example addons use many WoW globals and are not plain Lua; scope luacheck to core modules and tests.
Lint core modules and tests strictly; run syntax-only checks on the AIO monolith. Pin luarocks to Lua 5.1 and rename a time-diff parameter for parser compatibility.
CRLF files caused luacheck trailing-whitespace failures on Linux CI runners.
Install Lua 5.1 and luacheck via leafo actions; lint queue/aio_util strictly and syntax-check AIO.lua and tests with lua -p.
Ubuntu Noble has no luacheck apt package; use luarocks instead. Use project config so scoped lint passes (no-config treated warnings as failures).
Per-file globals replaced the std allowlist and flagged string/table/etc. Also silence unused self arg in Queue.__index.
Same changes as PR #23, applied directly to the example server script.
Vendors Rochet2/lualzw 6cbf8ab (release 1.1.0). Default export uses
skip = { [0] = true } so wire format matches the former zeros branch.
Adds lualzw round-trip tests; documents version in DEPENDENCIES.md.
Remove unused curmsg (timeout text lives in AIO.lua now), drop unreachable return after error, and use _G.unpack for Lua 5.1 luacheck compatibility.
Luacheck rejects local assert/print/type/select aliases (W122).
Luacheck warns when using length operator on tables with an n field.
Avoid shadowing globals (NewQueue, Smallfolk, lualzw), fix reassembler part counting, and print luacheck output on failure in CI.
Bump AIO_VERSION to 1.76 with CHANGELOG upgrade notes. Add aio_rpc unit tests, CI queue.lua sync check, FUTURE_WORK backlog, and README testing or config docs. Fix unpack in aio_rpc for Lua 5.4 test hosts.
Load server and client AIO.lua outside WoW to exercise Send, pipeline Init, slash help, and AIO.Handle. Allow table mock players when AIO_TEST_ALLOW_TABLE_PLAYERS is set for the test harness only.
Server integration runs on 5.1-5.4; client integration on 5.1 only. Add CI matrix jobs for 5.2-5.4 server coverage and skip reporting in run.lua.
Keep test-server-lua matrix to run.lua on 5.2-5.4 without duplicate lint steps.
Point stored-byte tests at aio_reassembler, wire isMessageExpired into expiry sweeps, centralize Luacheck paths (including AIO.lua), sync-check vendored twins, and correct changelog/README claims.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Maintenance release 1.76 (
AIO_VERSIONwas 1.75).Queue.clear, server cache TTL (ms vs seconds), per-peerstoredbyte accounting, hole-safe long-message reassembly, Windows path basenames,debug.sethookcleanup on timeout paths, client version-mismatch no longer permanently disables handlersaio_framing,aio_reassembler,aio_rpc,aio_util,aio_core) kept in sync server/client; asymmetricaio_server_pipeline/aio_client_ui; identicalAIO.luaon both sidesAIO_FORCE_RELOAD_ON_STARTUPdefaulttruescripts/ci_luacheck.sh, syncdifffor shared modules + vendored lualzw/SmallfolkCHANGELOG.md,SECURITY.md,DEPENDENCIES.md,FUTURE_WORK.md; README testing notes for Lua 5.1–5.4Merge notes
master(noisy CI-fix commit history on the branch)v1.76with a changelog excerptTest plan
lua tests/run.lualocally (unit + server integration; client suite on Lua 5.1 only)/aio reset, ForceReset from serverAIO_FORCE_RELOAD_ON_STARTUP