Releases: TypesettingTools/DependencyControl
DependencyControl v0.6.4
Notes
Aegisub builds for Windows with built-in DependencyControl support are available here. Using these builds is recommended not only because it takes care of the DependencyControl installation for you, but also because it contains the new Aegisub Lua modules required for DependencyControl and ASSFoundation to work correctly.
In case you want to install DependencyControl by yourself, please pick a binary release suitable for your platform from the Downloads section on this page and read the installation instructions before unpacking the archive in your user automation directory.
Binary releases are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- requireffi v0.1.2
- BadMutex v0.1.3
- PreciseTimer v0.1.6
- DownloadManager v0.5.0
You will also need the to download and install the proper Visual Studio 2017 CRT for your platform in case you're not using my Aegisub builds which will install the runtime automatically.
Changelog
Fixes
- Ensured the log files will always have a base name
- Messages will no longer be formatted when matching varargs are not supplied
- Fixed file handler calls to work properly, enabling usage on Linux
DependencyControl v0.6.3
Notes
Aegisub builds for Windows with built-in DependencyControl support are available here. Using these builds is recommended not only because it takes care of the DependencyControl installation for you, but also because it contains the new Aegisub Lua modules required for DependencyControl and ASSFoundation to work correctly.
In case you want to install DependencyControl by yourself, please pick a binary release suitable for your platform from the Downloads section on this page and read the installation instructions before unpacking the archive in your user automation directory.
Binary releases are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- requireffi v0.1.2
- BadMutex v0.1.3
- PreciseTimer v0.1.6
- DownloadManager v0.5.0
You will also need the to download and install the proper Visual Studio 2017 CRT for your platform in case you're not using my Aegisub builds which will install the runtime automatically.
Changelog
Fixes
- Fixed a v0.6.2 regression that caused DependencyControl to fail loading the first time after a scheduled self-update.
DependencyControl v0.6.2
Notes
Aegisub builds for Windows with built-in DependencyControl support are available here. Using these builds is recommended not only because it takes care of the DependencyControl installation for you, but also because it contains the new Aegisub Lua modules required for DependencyControl and ASSFoundation to work correctly.
In case you want to install DependencyControl by yourself, please pick a binary release suitable for your platform from the Downloads section on this page and read the installation instructions before unpacking the archive in your user automation directory.
Binary releases are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- requireffi v0.1.2
- BadMutex v0.1.3
- PreciseTimer v0.1.5
- DownloadManager v0.4.0
You will also need the to download and install the proper Visual Studio 2015 CRT for your platform in case you're not using my Aegisub builds which will install the runtime automatically.
Changelog
Fixes
- An issue was fixed that would cause DepCtrl initializer code in modules previously loaded with regular Lua loading mechanisms to be skipped when requested in a DependencyControl- context. This kept the requireffi DependencyControl record from being established, preventing any updates from taking place. The new SubInspector v0.7.0 release requires a more recent requireffi version than the one shipped with DependencyControl and thus requires this fix for the update to take place.
- UnitTestSuite: Fixed several broken assertions and related error messages, among them the
assertMatches
andassertErrorMatches
assertions always returningtrue
. Please make sure to rerun your tests after upgrading to confirm your tested actually return values whatever they were supposed to match. - Updater: Identical or duplicate feeds from different sources (user configuration, feeds and API use) are no longer being checked for updates multiple times.
- Several broken error messages/reports were fixed in the Updater and FileOps components.
DependencyControl v0.6.1
Notes
Aegisub builds for Windows with built-in DependencyControl support are available here. Using these builds is recommended not only because it takes care of the DependencyControl installation for you, but also because it contains the new Aegisub Lua modules required for DependencyControl and ASSFoundation to work correctly.
In case you want to install DependencyControl by yourself, please pick a binary release suitable for your platform from the Downloads section on this page and read the installation instructions before unpacking the archive in your user automation directory.
Binary releases are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- requireffi v0.1.1
- BadMutex v0.1.3
- PreciseTimer v0.1.5
- DownloadManager v0.4.0
You will also need the to download and install the proper Visual Studio 2015 CRT for your platform in case you're not using my Aegisub builds which will install the runtime automatically.
Changelog
Changes
- The Updater component now supports the DownloadManager v0.4.0 API changes.
Fixes
- Updater: A regression introduced in DependencyControl v0.6.0 was fixed that caused update or installation processes to fail when the feed contained deletion records (thanks @CoffeeFlux for the bug report)
- FileOps.mkdir() no longer falsely returns an error state when a path to an existing file is passed with the
isFile
flag set. - Toolbox: Trying to uninstall an unmanaged script no longer results in an error unrelated to the intended error message.
DependencyControl v0.6.0
Notes
Aegisub builds for Windows with built-in DependencyControl support are available here. Using these builds is recommended not only because it takes care of the DependencyControl installation for you, but also because it contains the new Aegisub Lua modules required for DependencyControl and ASSFoundation to work correctly.
In case you want to install DependencyControl by yourself, please pick a binary release suitable for your platform from the Downloads section on this page and read the installation instructions before unpacking the archive in your user automation directory.
Binary releases are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- requireffi v0.1.1
- BadMutex v0.1.3
- PreciseTimer v0.1.5
- DownloadManager v0.3.1
Changelog
Features
- A new UnitTestSuite module has been added that provides both script developers and users with a framework to automatically test whether automation scripts and modules are working correctly. DependencyControl automatically loads and registers external unit tests for automation scripts and modules, provided they reside in the
?user/automation/tests/DepUnit/[modules|macros]
directory. Comprehensive documentation for this feature is available in the source code for now. See here for an example of a test suite and here for an update feed that includes unit tests. - Macros can now be registered with custom submenu name.
Changes
- All DependencyControl macros are now available under a common automation submenu.
- The Logger:logEx() method now takes an additional optional
indent
parameter to specify a custom indentation level. - The FileOps.move() function no longer overwrite existing files by default.
- The FileOps.mkdir() function can now take paths relative to the current working directory as input (thanks @torque) and returns
true
on success,false
when the directory already exists ornil
if the operation failed. - The FileOps.remove() function now returns detailed results for every path specified in addition to overall success information.
Fixes
- The FileOps.move() function no longer fails to move files across file systems on *nix operating systems (thanks jabashque for reporting this one)and properly cleans up after itself if files could not be overwritten and were renamed instead.
- FileOps path validation is no longer broken on non-windows systems (thanks @torque).
DependencyControl v0.5.3
Notes
Aegisub builds for Windows with built-in DependencyControl support are available here. Using these builds is recommended not only because it takes care of the DependencyControl installation for you, but also because it contains the new Aegisub Lua modules required for DependencyControl and ASSFoundation to work correctly.
In case you want to install DependencyControl by yourself, please pick a binary release suitable for your platform from the Downloads section on this page and read the installation instructions before unpacking the archive in your user automation directory.
Binary releases are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- requireffi v0.1.1
- BadMutex v0.1.3
- PreciseTimer v0.1.5
- DownloadManager v0.3.1
The folder structure of these modules changed with the previous version. The following files can be safely deleted from your Aegisub user folder:
automation/include/DM/DownloadManager.dll
automation/include/DM/libDownloadManager.dylib
automation/include/BM/BadMutex.dll
automation/include/BM/libBadMutex.dylib
automation/include/PT/PreciseTimer.dll
automation/include/PT/libPreciseTimer.dylib
Fixes
- ConfigHandler: A host of longstanding issues related to config file corruption and concurrent access to config files from multiple DepCtrl-hosting automation scripts have been fixed.
- Error Reports of required modules loaded by DependencyControl now actually provide semi-useful stack traces.
- A bug was fixed that could cause DependencyControl to rerun the
__depCtrlInit
method on modules even though a prior DependencyControl record had already been initialized. - The DependencyControl self-update now runs through properly without throwing an error at the end of the process.
DependencyControl v0.5.2
Notes
Aegisub builds for Windows with built-in DependencyControl support are available here. Using these builds is recommended not only because it takes care of the DependencyControl installation for you, but also because it contains the new Aegisub Lua modules required for DependencyControl and ASSFoundation to work correctly.
In case you want to install DependencyControl by yourself, please pick a binary release suitable for your platform from the Downloads section on this page and read the installation instructions before unpacking the archive in your user automation directory.
Binary releases are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- requireffi v0.1.1
- BadMutex v0.1.3
- PreciseTimer v0.1.5
- DownloadManager v0.3.1
The folder structure of these modules changed with this version. The following files can be safely deleted from your Aegisub user folder:
automation/include/DM/DownloadManager.dll
automation/include/DM/libDownloadManager.dylib
automation/include/BM/BadMutex.dll
automation/include/BM/libBadMutex.dylib
automation/include/PT/PreciseTimer.dll
automation/include/PT/libPreciseTimer.dylib
Fixes
- Updates and installations no longer fail when no suitable version of a module marked as an optional dependency can be found.
- Fixed a bug that may have caused updates of unmanaged modules to throw an error after completion.
- DependencyControl initialization functions in modules with optional DepCtrl support are now expected to use the predefined name
__depCtrlInit
. This lifts the unreasonable requirement of having to specify the name of the function in the dependency tables of the loading scripts. By extension, this also fixes errors when trying to update the binary modules required by DependencyControl (such as DownloadManager).
Changes
- The Updater now checks for an active internet connection before going ahead with downloading feeds and packages.
- FileOps: added a copy function for files.
DependencyControl v0.5.1
Fixes
- Macros registered using DependencyControl now get passed the previously missing
active_line
paramter. - Fixed a bug that would cause an unrelated error to be thrown in place of the real error message when an updated module failed to load.
Notes
Binary releases are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- requireffi v0.1.0
- BadMutex v0.1.2
- PreciseTimer v0.1.4
- DownloadManager v0.2.1
DependencyControl v0.5.0
Features / Improvements
- DependencyControl does now auto-update itself and its dependencies.
- Provided Sub-Modules (Logger, ConfigHandler, ...) can now easily be accessed as class properties of the main DependencyControl module.
- The update feed format has been updated to v0.2.0 and introduces the template variable
@{feed:name}
to referenceknownFeeds
specified at the top level. - Toolbox:
- The Install, Uninstall and Update dialogs now sort scripts by name.
- In order to prevent accidents, DependencyControl and its requirements no longer appear in the uninstall menu.
Fixes
- A bug was fixed that caused macros always being registered with the overall script description, ignoring specific descriptions for the macro menu entries.
- The
\getConfigHandler()
method no longer ignores the defaults parameter. - FileOps: fixed a bug that would cause path validation to fail on paths relative to the working directory.
- ConfigHandler:
- Writes to the configuration table are no longer accidentally routed to the defaults table when a value is updated that only exists in the defaults.
- Looping over the configuration table is now completely transparent wrt which fields are user configuration or defaults.
- Fixed a bug that prevented a global lock on the config file from being released on certain error conditions.
Notes
- While DependencyControl can update its requirements, it can't initally fetch them from the internet. In other words, compatible versions of the modules listed below still need to be already installed in order for DependencyControl to load. If you're getting binary releases from this page or are using my Aegisub builds, this has already been taken care of.
- As always, big thanks to @torque for enabling DepCtrl to become our new Aegisub scripting overlord.
Binary releases are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- requireffi v0.1.0
- BadMutex v0.1.2
- PreciseTimer v0.1.4
- DownloadManager v0.2.1
DependencyControl v0.4.0
Features / Improvements
- API functions have been added/modified to support manual update, installation and removal of scripts. DependencyControl now ships with a macro that provides this functionality as well as configuration options to customize the behavior of DependencyControl.
- The FileOps library now provides two functions for file deletion.
rmdir
for recursively deleting directories andremove
for deleting files as well as directories with the option to reschedule failed deletions for the next Aegisub start / script reload. - The Updater can now also fetch/update scripts that are not managed by DependencyControl
- Outdated modules can now be updated without the user having to reload scripts/restart Aegisub.
- Several smaller additions and improvements have been made to the APIs to make using them more convenient.
- Several log messages had their severity reduced to TRACE, so they won't clutter the Aegisub log window anymore (unless you adjust your log level settings accordingly).
- Update feeds now use the DownloadManager eTag cache and no longer litter the user directory when dumping is enabled.
- Update feeds can now specify any number of other 'known' feeds, which can be used to discover available scripts.
Fixes
- Modules with circular dependencies (like Aegisub-Motion) can now be installed/updated without failing due to recursion issues.
- Update task can no longer be started when they are already running.
- Several issues related to config file corruption and the config file becoming out of sync with script data have been resolved.
- Numerous other fixes (check the changelog for details).
Notes
It's recommended to remove your old Dependency Control configuration file from your Aegisub user directory (%appdata%\Aegisub\config\l0.DependencyControl.json
on Windows) prior to installing this release.
Binary release are shipped with the following modules required for DependencyControl to work:
- luaJSON v1.3.3
- BadMutex v0.1.1
- PreciseTimer v0.1.3
- DownloadManager v0.2.0