Commit Graph

9 Commits

Author SHA1 Message Date
florian.berthold cdc3429882 fix(AceGUI-3.0): pcall the OnGamePadButtonDown SetScript (retail-only script type, crashes on 3.3.5)
release / release (push) Successful in 3s
52e5f2c-coa.2
2026-05-29 20:23:32 +02:00
florian.berthold 28b13a85fa ci: respect GITHUB_REPOSITORY + tolerate per-asset upload failures
release / release (push) Successful in 2s
52e5f2c-coa.1
2026-05-25 12:16:03 +02:00
florian.berthold edcf9bb0aa ci: add Gitea Actions release workflow (per-addon git-archive zip)
release / release (push) Successful in 2s
2026-05-25 12:00:24 +02:00
florian.berthold 827a5bdc60 chore: move bundle into Ace3/ subfolder + standard .gitignore
Matches the Exiles fork-layout convention (one folder per addon). README
and tools/sweep.py updated for the new path; tools/sweep.py stays at repo
root since it's dev tooling, not part of the shipped bundle.
2026-05-25 10:59:24 +02:00
florian.berthold a96308ff2c tools: add canonical sweep.py with explicit coa-elvui exclusion
Two failures that compounded in the last round of ElvUI breakage:

  1. The sweep script only lived in /tmp during a session — re-derived
     from scratch each time, so the EXCLUDE_FORKS knowledge wasn't
     anywhere reviewable.
  2. The old filename-only filter ('if -ElvUI in name skip') missed
     ElvUI's customizations inside otherwise-stock-named files AND
     rsync --delete killed -ElvUI suffixed widgets that exist only in
     ElvUI's bundle (e.g. AceGUIWidget-Button-ElvUI.lua).

This tool fixes both:

  - Lives in the repo (tools/sweep.py), so the exclusion list is
    visible in version control and reviewable.
  - EXCLUDED_FORKS = {'coa-elvui'} hardcoded with an in-source comment
    explaining why.
  - --exclude='*-ElvUI*' passed to every rsync as belt-and-braces, so
    even if a future fork accidentally carries an ElvUI-namespaced
    file we never wanted to overwrite, the sweep won't touch it.
  - Refuses to add new lib dirs — only updates ones already present
    in the fork.
  - --dry-run flag for safe verification.

README updated with a 'Forks excluded from sweep' section documenting
the same.
2026-05-25 10:06:41 +02:00
florian.berthold 9583952806 fix(AceDB): backport PR #10 — falsy defaults read back as themselves
Upstream AceDB-3.0's simple-value defaults metatable uses
`function(t,k2) return k2~=nil and v or nil end` — when `v` is itself
falsy (`false`, `0`, `""`), the `and` short-circuits to that falsy
value and the trailing `or nil` then collapses it to nil, so any
`['*'] = false` (or similar) default silently reads back as nil.

Backport of https://github.com/WoWUIDev/Ace3/pull/10 (open upstream since
2023-11-04, not merged). Documented as CoA-compat patch #4 in README;
drop it when upstream finally merges.
2026-05-24 19:30:28 +02:00
florian.berthold 3ec2009f54 fix(compat): guard retail-only InterfaceOptions globals and Settings.* API
AceGUI-3.0/widgets/AceGUIContainer-BlizOptionsGroup.lua: the Constructor
parented its frame to the global InterfaceOptionsFramePanelContainer, which
is nil at AceGUI widget-construction time on the CoA reworked FrameXML.
Guard with 'local _parent = InterfaceOptionsFramePanelContainer or UIParent'
and pass _parent to CreateFrame so addons that register a Blizzard Interface
Options panel don't error out during load.

AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua: :AddToBlizOptions
used the Dragonflight+ Settings.* API (GetCategory, RegisterCanvasLayoutCategory,
RegisterCanvasLayoutSubcategory, RegisterAddOnCategory). The Settings table
doesn't exist on the 3.3.5-based CoA client, so every AceConfig-driven options
panel errored the moment it was registered. Wrap the whole Settings.* block in
'if Settings and Settings.GetCategory then ... else ... end' and fall back to
the WotLK-era InterfaceOptions_AddCategory(group.frame) after stamping the
category name via group:SetName(name or appName, parent).

Both retail and CoA paths now work; behaviour on retail is unchanged. luac -p
passes on both files. README CoA-compat patches table updated (entries 2 and 3).

This bundle is the source-of-truth for the Exiles/coa-* forks; the propagation
to bartender / quartz / shadowedunitframes / ai-voiceover / etc. bundled Ace
copies is handled separately.
2026-05-24 17:38:30 +02:00
florian.berthold d422ad36b8 fix(compat): convert FileDataID Set*Texture() calls to string paths
WoW 3.3.5 / CoA does not support numeric FileDataIDs in Set(*)Texture —
only string paths. Upstream Ace3 uses FDIDs in 42 places across
AceGUI-3.0/widgets and AceConfigDialog-3.0, which silently fail and
render as red placeholders (visible as solid-red squares where color
swatches, checkboxes, and window chrome should be).

Substituted each FDID with the string path documented in the trailing
comment. Files touched:

  AceGUI-3.0/widgets/AceGUIContainer-Frame.lua             (5)
  AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua         (4)
  AceGUI-3.0/widgets/AceGUIContainer-Window.lua           (12)
  AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua             (9)
  AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua          (3)
  AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua       (3)
  AceGUI-3.0/widgets/AceGUIWidget-Heading.lua              (2)
  AceGUI-3.0/widgets/AceGUIWidget-Icon.lua                 (1)
  AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua (3)

Documented as patch #1 in README.md.
2026-05-23 14:03:09 +02:00
florian.berthold 15079007e7 Initial commit: WoWUIDev/Ace3 master @ 52e5f2c (2026-05-17)
Canonical Ace3 bundle for the Exiles addon forks. See README.md for
versions and consumption guidance.
2026-05-23 06:24:19 +02:00