Updating DependencyControl from v0.6.x to the current release (v0.8.0 or v0.7.0) can leave the Toolbox update looking like it failed, even though DependencyControl itself installed fine. Running a macro may have triggered an auto-update and presented you with an error like:
update of module 'DependencyControl' succeeded, but an error occured while loading the module:
[string ".../l0/DependencyControl/Enum.moon"]:100: attempt to call method 'describeType' (a nil value)
(stack traceback …)
If that macro was from the DependencyControl Toolbox, retrying in the same session only makes it look worse:
No remaining feed available to update module 'DependencyControl' from.
Error: one or more of the modules required by DependencyControl Toolbox are outdated on your system:
l0.DependencyControl (Installed: v0.6.3; Required: v0.7.0)
Reason: No remaining feed available to update module 'l0.DependencyControl' from.
Please update the modules in question manually and reload your automation scripts.
Couldn't update macro 'DependencyControl Toolbox' because its requirements could not be satisfied
Despite what the error may suggest, the new version installs to disk correctly . The trouble starts when the new v0.8.0 copy tries to load with some of the old v0.6.3 components still being loaded.
Technical details
Lua keeps every loaded module in a per-session cache (`package.loaded`). That cache still holds the **old** version's sub-modules from when Aegisub started, so the new code ends up running against stale copies. Here, the new `Enum` calls `Logger:describeType` — a method that only exists in the new `Logger`. The cache still hands back the old `Logger`, which doesn't have it, so the load aborts.
The incompatibility between the loaded components causes the updater to incorrectly assume the install a failure, with no way to fulfill the requirements for the v0.7.0 of the toolbox.
To complete the upgrade, reload your automation scripts and trigger another update by hand:
- In Aegisub, open Automation → Automation… and click Rescan Autoload Dir. This reloads everything into a fresh Lua state with an empty module cache, so the new DependencyControl loads cleanly. Alternatively, just restart Aegisub.
- Run the Update Script macro (under Automation → DependencyControl), pick DependencyControl Toolbox, and let it update.
Step 2 runs the update right away. Left alone, the Toolbox would fix itself on its next scheduled check anyway — but that's a few days out by default. Once it updates, its macros run without error, and a new Global Configuration macro appears that only exists in the new version.
Updating DependencyControl from v0.6.x to the current release (v0.8.0 or v0.7.0) can leave the Toolbox update looking like it failed, even though DependencyControl itself installed fine. Running a macro may have triggered an auto-update and presented you with an error like:
If that macro was from the DependencyControl Toolbox, retrying in the same session only makes it look worse:
Despite what the error may suggest, the new version installs to disk correctly . The trouble starts when the new v0.8.0 copy tries to load with some of the old v0.6.3 components still being loaded.
Technical details
Lua keeps every loaded module in a per-session cache (`package.loaded`). That cache still holds the **old** version's sub-modules from when Aegisub started, so the new code ends up running against stale copies. Here, the new `Enum` calls `Logger:describeType` — a method that only exists in the new `Logger`. The cache still hands back the old `Logger`, which doesn't have it, so the load aborts.The incompatibility between the loaded components causes the updater to incorrectly assume the install a failure, with no way to fulfill the requirements for the v0.7.0 of the toolbox.
To complete the upgrade, reload your automation scripts and trigger another update by hand:
Step 2 runs the update right away. Left alone, the Toolbox would fix itself on its next scheduled check anyway — but that's a few days out by default. Once it updates, its macros run without error, and a new Global Configuration macro appears that only exists in the new version.