Compare commits

..

3 commits

Author SHA1 Message Date
0c5dd38839 chore: toc version/path nits + drop stale smoke-test TODO
- Version 1.04.2-coa1 -> 1.04.2 (release tags carry the -coa.N suffix)
- fix FuBarPlugin-2.0.lua path case to match on-disk file
- README-CoA: remove 'not yet loaded against the Ascension client'
  TODO; load-tested in-game (a8ea642, 330a6cf)
2026-06-10 02:16:51 +02:00
9e3caf71df ci(release): sync release.yml from coa-template
hide_archive_links is only honored by Gitea on release edit, not create —
add the PATCH step after create/lookup so auto-generated source archive
links actually stay hidden (coa-template 90874c5).
2026-06-10 02:11:47 +02:00
a8ea6429e1 fix: restore table.getn/setn for Ace2 stack so VanillaGuide loads on 3.3.5 Lua 5.1
All checks were successful
release / release (push) Successful in 2s
WoW 3.3.5 Lua 5.1 runtime has table.setn as an error stub ("'setn' is obsolete")
and table.getn missing/erroring. The embedded Ace2 libs (AceLibrary, AceOO, AceEvent,
AceConsole, AceDebug, AceDB, Tablet-2.0) all assign table_setn = table.setn at module
scope when GetBuildInfo() does not start with "2." — causing AceOO-2.0 to crash at
line 546 before any library can register, then cascading to AceConsole/FuBarPlugin.

Add Lua50Compat.lua as the first TOC entry to unconditionally overwrite table.setn
(no-op) and table.getn (returns #t) before any lib loads. Also shims
table.foreach/foreachi in case future libs need them. Verified with LuaJIT 5.1:
AceLibrary + AceOO load cleanly; all other libs stop only at WoW-API boundaries
(not at obsolete-call errors).
2026-05-30 06:57:25 +02:00
4 changed files with 109 additions and 66 deletions

View file

@ -37,10 +37,14 @@ jobs:
RID=$(curl -sf -X POST -H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
"$API/repos/$REPO/releases" \
-d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false}')" \
-d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false,hide_archive_links:true}')" \
| jq -r '.id')
fi
echo "release id: $RID"
# Gitea honors hide_archive_links only on edit, not create — PATCH it
# so the auto-generated Source Code (zip/tar.gz) links stay hidden.
curl -sf -X PATCH -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \
"$API/repos/$REPO/releases/$RID" -d '{"hide_archive_links":true}' >/dev/null || true
# Upload every dist/*.zip. Per-asset failures don't fail the job —
# we want partial releases to still publish rather than block the
# whole pipeline on one big file.

View file

@ -63,10 +63,6 @@ crashed on the very first guide load with
What is still TODO
------------------
- **In-game smoke test.** The addon has not yet been loaded against
the Ascension client. Expect further small breakage (frame APIs,
`GetAddOnInfo` signature, possibly map-zone coords) once we drive it
through `/vguide`.
- **MetaMapBWP integration.** MetaMap doesn't exist on 3.3.5. The
hooks in `Settings.lua` and `Frame_SettingsFrame.lua` are gated
behind `IsAddOnLoaded("MetaMap")` so they're effectively dead, but

View file

@ -0,0 +1,42 @@
-- Lua50Compat.lua
-- Loaded FIRST (see VanillaGuide.toc) to restore Lua 5.0 table functions that
-- the WoW 3.3.5 / Project Ascension Lua 5.1 runtime has made obsolete.
--
-- table.setn existed in 5.0 to manually hint the array length; in 5.1 the
-- length operator (#) is authoritative and table.setn is a stub that raises
-- "attempt to call a nil value" or "'setn' is obsolete". Overwrite it with a
-- no-op unconditionally so Ace2 libs (AceOO, AceEvent, AceConsole, AceDebug,
-- AceLibrary, AceDB, Tablet-2.0) can assign the local alias at module load
-- time without erroring.
--
-- table.getn existed in 5.0 as the canonical length function; in 5.1 it was
-- removed (or kept as an error stub on some runtimes). Replace it with the
-- equivalent # operator.
--
-- table.foreach / table.foreachi were removed in 5.1 as well; guard them in
-- case any lib uses them (none currently do, but safe to shim anyway).
-- Unconditional overwrite -- even if these slots exist they may raise.
table.setn = function() end
table.getn = function(t)
return #t
end
if not table.foreach then
table.foreach = function(t, f)
for k, v in pairs(t) do
local ret = f(k, v)
if ret then return ret end
end
end
end
if not table.foreachi then
table.foreachi = function(t, f)
for i = 1, #t do
local ret = f(i, t[i])
if ret then return ret end
end
end
end

View file

@ -1,61 +1,62 @@
## Interface: 30300
## Title: VanillaGuide |cff7fff7f -Ace2-|r |cffff7f7f(CoA)|r
## Notes: Step-by-Step 1-60 Guides (CoA fork: Ascension 3.3.5 port, Joana H/A paths)
## Author: mrmr
## Version: 1.04.2-coa1
## DefaultState: enabled
## LoadOnDemand: 0
## X-Credits: Joana/Mancow and Brian Kopps for the guides. mrmr for the Joana addon. Kira and Cdlp for the Brian Kopps' guide. Velenran for Profession guides. CoA Guild 'Exiles' for the 3.3.5 port.
## X-Category: Quests
## X-Date: 2026-05-11
## X-ReleaseDate: 2012-xx-xx
## X-Email: rsheep@gmail.com
## X-Website: https://git.sub-net.at/Exiles/coa-vanillaguide
## X-Embeds: Ace2, FuBar-Plugin-2.0, Tablet-2.0
## OptionalDeps: Ace2, FuBar, Tablet-2.0
## SavedVariables: VanillaGuideDB
## SavedVariablesPerCharacter: VanillaGuideDBPC
libs\AceLibrary\AceLibrary.lua
libs\AceOO-2.0\AceOO-2.0.lua
libs\AceConsole-2.0\AceConsole-2.0.lua
libs\AceEvent-2.0\AceEvent-2.0.lua
libs\AceAddon-2.0\AceAddon-2.0.lua
libs\AceDB-2.0\AceDB-2.0.lua
libs\AceDebug-2.0\AceDebug-2.0.lua
Core.lua
Settings.lua
GuideTables\001_Introduction.lua
GuideTables\Horde\002_Mulgore.lua
GuideTables\Horde\002_TirisfalGlades.lua
GuideTables\Horde\002_Durotar.lua
GuideTables\Horde\003_Horde_12to20.lua
GuideTables\Horde\003_Horde_20to30.lua
GuideTables\Horde\003_Horde_30to40.lua
GuideTables\Horde\003_Horde_40to50.lua
GuideTables\Horde\003_Horde_50to60.lua
GuideTables\Alliance\002_ElwynnForest.lua
GuideTables\Alliance\002_Teldrassil.lua
GuideTables\Alliance\002_DunMorogh.lua
GuideTables\Alliance\003_Alliance_12to20.lua
GuideTables\Alliance\003_Alliance_20to30.lua
GuideTables\Alliance\003_Alliance_30to40.lua
GuideTables\Alliance\003_Alliance_40to50.lua
GuideTables\Alliance\003_Alliance_50to60.lua
GuideTables\004_Professions.lua
GuideTable.lua
Display.lua
SlashCommands.lua
Frame_MainFrame.lua
Frame_AboutFrame.lua
Frame_SettingsFrame.lua
UI.lua
libs\Tablet-2.0\Tablet-2.0.lua
libs\Dewdrop-2.0\Dewdrop-2.0.lua
libs\FuBarPlugin-2.0\FubarPlugin-2.0.lua
VGuideFu.lua
## Interface: 30300
## Title: VanillaGuide |cff7fff7f -Ace2-|r |cffff7f7f(CoA)|r
## Notes: Step-by-Step 1-60 Guides (CoA fork: Ascension 3.3.5 port, Joana H/A paths)
## Author: mrmr
## Version: 1.04.2
## DefaultState: enabled
## LoadOnDemand: 0
## X-Credits: Joana/Mancow and Brian Kopps for the guides. mrmr for the Joana addon. Kira and Cdlp for the Brian Kopps' guide. Velenran for Profession guides. CoA Guild 'Exiles' for the 3.3.5 port.
## X-Category: Quests
## X-Date: 2026-05-11
## X-ReleaseDate: 2012-xx-xx
## X-Email: rsheep@gmail.com
## X-Website: https://git.sub-net.at/Exiles/coa-vanillaguide
## X-Embeds: Ace2, FuBar-Plugin-2.0, Tablet-2.0
## OptionalDeps: Ace2, FuBar, Tablet-2.0
## SavedVariables: VanillaGuideDB
## SavedVariablesPerCharacter: VanillaGuideDBPC
Lua50Compat.lua
libs\AceLibrary\AceLibrary.lua
libs\AceOO-2.0\AceOO-2.0.lua
libs\AceConsole-2.0\AceConsole-2.0.lua
libs\AceEvent-2.0\AceEvent-2.0.lua
libs\AceAddon-2.0\AceAddon-2.0.lua
libs\AceDB-2.0\AceDB-2.0.lua
libs\AceDebug-2.0\AceDebug-2.0.lua
Core.lua
Settings.lua
GuideTables\001_Introduction.lua
GuideTables\Horde\002_Mulgore.lua
GuideTables\Horde\002_TirisfalGlades.lua
GuideTables\Horde\002_Durotar.lua
GuideTables\Horde\003_Horde_12to20.lua
GuideTables\Horde\003_Horde_20to30.lua
GuideTables\Horde\003_Horde_30to40.lua
GuideTables\Horde\003_Horde_40to50.lua
GuideTables\Horde\003_Horde_50to60.lua
GuideTables\Alliance\002_ElwynnForest.lua
GuideTables\Alliance\002_Teldrassil.lua
GuideTables\Alliance\002_DunMorogh.lua
GuideTables\Alliance\003_Alliance_12to20.lua
GuideTables\Alliance\003_Alliance_20to30.lua
GuideTables\Alliance\003_Alliance_30to40.lua
GuideTables\Alliance\003_Alliance_40to50.lua
GuideTables\Alliance\003_Alliance_50to60.lua
GuideTables\004_Professions.lua
GuideTable.lua
Display.lua
SlashCommands.lua
Frame_MainFrame.lua
Frame_AboutFrame.lua
Frame_SettingsFrame.lua
UI.lua
libs\Tablet-2.0\Tablet-2.0.lua
libs\Dewdrop-2.0\Dewdrop-2.0.lua
libs\FuBarPlugin-2.0\FuBarPlugin-2.0.lua
VGuideFu.lua