Skip to content

Known issue: describeType / "no remaining feed" error upgrading from v0.6.x to v0.7.0+ #32

Description

@line0

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:

  1. 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.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions